社内向けバケットのバケットポリシー。指摘として正しいものは?
{ "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::internal-docs/*" }正答
- Action が s3:GetObject だけでは読み取れないので、s3:* にする必要があります。
- Resource の末尾の /* を外さないと、オブジェクトに適用されません。
- Principal が * なので、匿名を含む全員に読み取りを許可してしまいます。
- Effect を Deny にしないと、社内のユーザーも読み取れません。
解説
バケットポリシーの Principal は「誰に許可するか」を表し、* を指定すると AWS アカウントを持たない匿名ユーザーを含む全員が対象になる。社内向けなら特定のアカウントやロールの ARN を書く。s3:GetObject はオブジェクトの読み取りそのものなので、s3:* に広げるのは逆効果。Resource の /* はバケット内のオブジェクトを指す正しい書き方で、外すとバケット自体を指して GetObject が効かなくなる。
この問題を含む AWS のテストを制限時間つきで解く
AWSクイズへ