2016-10-01 10 views
2

私は、CloudFront(CF)Webディストリビューションをセットアップしてs3バケットからプライベートコンテンツを提供するためのドキュメントに従ってきましたが、 s3バケットファイルはまだs3.amazonaws.com/bucket-name/file-name.extでアクセス可能です。なぜ私はCF Origin Access Identityを作成したときに、私はYes, Update Bucket Policyを選択しました。これは、私のs3バケツのURLを介して読み込みアクセスを閉鎖することになると思っていましたが、まだありません。私は調整が必要なのを忘れましたか?私は、CF上で行う設定でs3バケットを調整し、GETリクエストでアクセスできないようにしなければならないと思っていました。しかし、私は個々のファイルのアクセス許可を気づいたが、それらが関連していたかわからなかったS3バケットはまだ公開CloudFront Origin Identityアクセスポリシーにもかかわらず

{ 
    "Version": "2008-10-17", 
    "Id": "PolicyForCloudFrontPrivateContent", 
    "Statement": [ 
     { 
      "Sid": "1", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity *My-Key-ID*" 
      }, 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::bucket-name/*" 
     } 
    ] 
} 

は、ここに私のS3バケットポリシーです。ここで

enter image description here

は私のCFの設定です:

分布:

enter image description here

原産地:(初期IDの作成には、私が選んだ "はい、更新バケットポリシー")

enter image description here

行動(上半分):

enter image description here

行動(下半分):

enter image description here

答えて

3

バケットポリシーとオブジェクトのACLは、一緒に働きます。 ポリシーまたはのいずれかのオブジェクトのACLによって許可さ

何がまだ明示的にバケットポリシーによって拒否されたときを除いて...許可されています。

お客様のポリシーでは、CloudFrontによるダウンロードが許可されています。

オブジェクトACLを「すべてのユーザー」が「開く/ダウンロード」できるようにするため、匿名でバケット内のオブジェクトへのアクセスは許可されます。

最も適切な解決策は、匿名ユーザーがS3からオブジェクトにアクセスできないようにするには、「Everyone」を「開く/ダウンロード」する機能を削除するためにオブジェクトACLを変更することです。コンソールで、オブジェクトの「Everyone」エントリの×をクリックし、「保存」をクリックします。これで問題が解決されるはずです。

将来のオブジェクトは、一般に読めるようにアップロードしないでください。

カスタムバケットポリシーを使用してオブジェクトACLをオーバーライドすることもできますが、これは高度な設定であり、正しく実行されないとコンソール上のオブジェクトを操作できなくなり、不必要に複雑になります。

+0

ありがとうございました! – cphill

関連する問題