特定バケットの読み取りだけを許可したいポリシー。指摘として正しいものは?
{ "Effect": "Allow", "Action": "s3:GetObject", "Resource": "*"}正答
- Action を s3:* にしないと、読み取りに失敗する
- Resource が * なので、全バケットのオブジェクトが読める
- Effect を Deny にしないと、最小権限にならない
- Resource の * はこのバケット内だけを指すので問題ない
解説
Resource に * を書くと、そのアクションが使えるすべてのリソース、つまりアカウントがアクセスできる全バケットの全オブジェクトが読み取り可能になる。特定のバケットに絞るなら "arn:aws:s3:::report-bucket/*" のように ARN で指定する。Action の s3:GetObject は読み取りに必要な最小の操作で、s3:* に広げる必要はない。Effect を Deny にすると読み取り自体ができなくなる。* が「このバケット内」を意味するという誤解は多く、Action だけでなく Resource も必ず確認する。
この問題を含む AWS のテストを制限時間つきで解く
AWSクイズへ