AWS4 択難易度 標準

社内向けバケットのバケットポリシー。指摘として正しいものは?

{ "Effect": "Allow",  "Principal": "*",  "Action": "s3:GetObject",  "Resource": "arn:aws:s3:::internal-docs/*" }

正答

  1. Action が s3:GetObject だけでは読み取れないので、s3:* にする必要があります。
  2. Resource の末尾の /* を外さないと、オブジェクトに適用されません。
  3. Principal が * なので、匿名を含む全員に読み取りを許可してしまいます。
  4. Effect を Deny にしないと、社内のユーザーも読み取れません。

解説

バケットポリシーの Principal は「誰に許可するか」を表し、* を指定すると AWS アカウントを持たない匿名ユーザーを含む全員が対象になる。社内向けなら特定のアカウントやロールの ARN を書く。s3:GetObject はオブジェクトの読み取りそのものなので、s3:* に広げるのは逆効果。Resource の /* はバケット内のオブジェクトを指す正しい書き方で、外すとバケット自体を指して GetObject が効かなくなる。

参考: docs.aws.amazon.com

iampolicys3bucket-policy

この問題を含む AWS のテストを制限時間つきで解く

AWSクイズへ