IAMポリシーは、「誰が」ではなく、「何を」「どのリソースに」「許可する(または拒否する)か」を書きます。
読み方の基本
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject"],
"Resource": "arn:aws:s3:::example-bucket/reports/*"
}
]
}
-
Effect: Allow(許可)か、Deny(拒否) -
Action: できる操作。ここでは、S3のオブジェクトの「読み取り」だけ -
Resource: 対象。ここでは、example-bucketのreports/以下だけ
「広すぎる」例と比べる
{ "Effect": "Allow", "Action": "s3:*", "Resource": "*" }
こちらは、すべてのS3の、すべての操作を許可しています。必要な作業は、読み取りだけなら、最初の例が「最小権限」です。
試験での見方
- 最小権限の原則: 必要な作業ができる、最小限の権限だけを与える
- ユーザーに直接つけるより、グループやロールでまとめる
- ルートユーザーは、日常の作業では使わず、MFAで守る
注意
サービスの仕様や名称は、変わることがあります。最新の情報は、AWS公式のドキュメントで確認してください。
この記事の文章作成には、AIを活用しています(コードの結果は、筆者が実行して確認しています)。
やさしい言葉で読みたい方は、こちらもどうぞ(無料)。