2017-01-30 5 views
1

に署名しました。の関係は、だから私は、CloudFrontのとS3のガイドを追ってきたと私はURLの署名付きまだ起源アクセスアイデンティティとCloudFrontをとの関係での情報のコア部分が欠けイムように感じるのURL

私が欲しいもの:オーディオスニペット(長さ数秒)と低解像度画像をホストするプライベートCDN。私は特定のドメイン(Webアプリケーションがオンに生きるドメイン)と、おそらくテストサーバーから要求されたときにこれらのファイルがアクセスできるようにします。だから、私のWebアプリがファイルを取得することができますが、人は単にWebアプリケーションを経由せずにアクセスすることはできません

何イムについて混乱:CloudFrontのオリジンアクセスアイデンティティの間に、私は(いずれかをがある場合)の関係にあいまいです署名されたCloudFront Urls。

私は現在、私のCloudFrontの配信のためにプライベートS3、OAIを作成している、とCloudFrontを介して画像を符号付きのURLを生成しています。しかし、私は、彼らは(彼らが検査し、要素と署名したURLを取得行うことができた場合)CDNファイルへのアクセスを他の誰かを防ぐどのようにこれらの事が関係しているとどのように表示されません。

が署名したURLのすぐに期限切れを確認するために全体のポイントですか?もしそうなら、OAIはどのようにその役割を果たしていますか?これはCORSに設定されていますか?

答えて

0

は、あなたのCloudFrontのドメインを指す新しいCNAMEエントリを追加します。このエントリは、CloudFrontコンソール内の「代替ドメイン名」に入力したものと一致する必要があります。デフォルトCloudFrontのことで

enter image description here

は、自動的にドメイン名を生成する(例えばd3i29vunzqzxrt.cloudfront.net)いますが、代替ドメイン名を定義することができます。

また、あなたは、元のアクセスIDが はバケット内のオブジェクトにアクセスするためのバケットポリシーによって許可できることをCloudFrontは内部実体であるCloudFrontは Serving Private Content through CloudFront

+0

CDNだけがURLを変更するのではないでしょうか?指定されたドメイン以外の誰かがCDNの項目にアクセスできるようにするにはどうすればよいですか? – crazyCoder

+1

オプションでAmazon S3バケットのコンテンツを保護して、ユーザーがCloudFrontからアクセスできますが、Amazon S3 URLを使用して直接アクセスすることはできません。これにより、CloudFrontを迂回し、Amazon S3のURLを使用してアクセスを制限したいコンテンツを取得することを防ぐことができます。この手順では、署名付きのURLを使用する必要はありません --AWS –

4

を確保することができます。 CloudFrontがオリジンアクセスIDを使用してバケット内のコンテンツにアクセスする場合、CloudFrontはOAIの資格情報を使用して署名付きリクエストを生成し、これをバケットに送信してコンテンツを取得します。この署名は視聴者がアクセスできない。

ここで使用されている「起源」という単語の意味は、CORSなどの他のコンテキストで使用されている「起源」という単語と混同しないでください。ここで、「起源」とはコンテンツにアクセスできるサイト。アクセスアイデンティティがアクセスとは何の関係もありません

起源は、特定のOriginまたはRefererヘッダを含むリクエストに制限されています。

AWSアカウント(または信頼できる署名者として指定された別のアカウント)に関連付けられたCloudFront署名鍵と一致するCloudFrontによって署名付きURLが検証されると、そのオブジェクトは、どのアクセス権を使用してもバケットからフェッチされますIDはバケツで許可されています。

署名されたURLの有効期限がすごく切れることを確認してください。

本質的には、はい。

リンクが見つかったサイトに基づいてアクセスを制限しようとする要求の認証と許可は、ではなく、実行可能なセキュリティ手段です。他のサイトからのホットリンクを防ぎますが、要求ヘッダーを偽造できるユーザーは何も保護しません。そのような尺度を破るのは簡単です。

これに対して、署名されたURLは、計算上不可能な点に対して非常に耐タンパーです。

署名済みURLは、有効期限が切れるまで有効ですが、custom policyを使用する場合は、ポリシー文書に含まれているものと同じIPアドレスを持つ人物へのアクセスを制限することもできます。署名されると、URLへの変更(ポリシーステートメントを含む)により、URL全体が使用不能になります。

OAIは、CloudFrontの署名付きURLにのみ間接的に接続されています。これらは個別に、または一緒に使用できますが、OAIなしでCloudFrontはバケットからオブジェクトを要求する権限があることを証明できません。バケットは公開されている必要があり、CloudFrontで署名されたURLの目的の多くを無効にします。

+0

入手しました。だから私のサイトだけが良いアプローチではないcdnファイルにアクセスできるようにアクセスを制限しようとしていますか?私はちょうどIPを私のサイト(ドメイン)へのアクセスを許可することを制限するカスタムポリシーで合理的な有効期限やURLのURLを作成するより良いですか? – crazyCoder

+0

あなたのサイトが魔法のように、ウェブブラウザ*があなたのサイトからのリクエストであるという事実によって、コンテンツを保護する原始的な方法であることを制限しようとしています。はい、期限切れのURLが良いです。 *ユーザーの* IPに制限された署名付きURLは、ユーザーがURLを「共有」することを懸念する場合にも役立ちます。 IPはユーザーのIPであり、サイトのIPではありません。一般に、このアイデアは、ページがレンダリングされるときに署名されたURLを生成することです。この答えを知ってもらうと、より詳細な説明が必要になります。 –

+0

ありがとうございます。ウェブアプリケーション(オーディオファイルや画像)上の素材のホットリンクを使用してURLを共有するユーザーは、私の懸念事項が少なくなりました。帯域幅の使用はさておき、それらのファイルはWebアプリケーションの外部にアクセスしないでください。 – crazyCoder

関連する問題