2017-10-25 7 views
0

バケットのアクセス権 - >アクセス制御 - >パブリックアクセスを経由すると、「Everyone」オプションにチェックを付けることができます。AWS s3 "パブリックアクセス"

これは、文字通りだと誰もががこのバケットファイル(URLを指定)にアクセスできることを意味しますか?

どのように私は関係なく、ファイルの所有者かどうかという私のユーザー・プールを介して接続されたすべての人へのアクセスを与えることができますか?

答えて

1

はいアクセス制御を公開すると、世界中からアクセスできるはずです。バケットポリシーを設定してバケットへのアクセスを制限することができます。バケットポリシーでは、接続するユーザーを指定できます。あなたは(カンマ区切り)接続したいユーザーに言及し、「校長」セクションで

{ 
 
\t "Version": "2012-10-17", 
 
\t "Id": "Policy12345", 
 
\t "Statement": [ 
 
\t \t { 
 
\t \t \t "Sid": "Stmt12345", 
 
\t \t \t "Effect": "Allow", 
 
\t \t \t "Principal": "*", //* means public . Specify your users here 
 
\t \t \t "Action": "s3:GetObject", 
 
\t \t \t "Resource": "arn:aws:s3:::BUCKETNAME/*" 
 
\t \t } 
 
\t ] 
 
}

を以下のサンプルバケットポリシーをご覧ください。あなたは、その後、校長に

"Principal" : {"AWS": ["arn:aws:iam::111122223333:root","arn:aws:iam::444455556666‌​:root"]} 

、その後、1つだけの場合を追加するARNSに持っている場合、あなたがしたい場合はバケットポリシーhere

の詳細をご覧ください

"Principal" : {"AWS" : "arn:aws:iam::111122223333:root"} 

、例えば言いますバケットレベルのパーミッションの代わりにオブジェクトレベルのパーミッションを使用し、アクセスコントロールリストに移動します。詳細をご覧くださいhere

+0

ありがとうございました! ユーザプールへのアクセスを制限したい場合、私は 'Pool ARN'を使用する必要があると思いますが、それを私のユーザプールのグループにさらに制限したいのですが? (彼らはどんな役割も持っていません) – Niavart

+1

そのグループにはARNがありますので、そこにグループARNを指定するとうまくいくはずです。グループARNの例は 'arn:aws:iam :: 123456789012:group/Developers' –

+0

のようになります。自分のグループに役割ARNを追加しました(リスト、読み込み、s3への書き込み)。しかし、上記のコードを追加してバケット名でARNとBUCKETNAMEというgroupeロールで '*'を置き換えようとしたところ、プリンシパルから「無効なバケットポリシーの構文」が出てきました...? – Niavart