#アクセス許可の境界とは
IAMにはアクセス許可の境界という機能があります。
Aさんに以下のポリシーをアクセス許可の境界として設定します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:*",
"cloudwatch:*",
"ec2:*"
],
"Resource": "*"
}
]
}
ポリシーを使用してユーザーのアクセス許可の境界を設定する場合、このポリシーではユーザーのアクセス許可は制限しますが、それ自体のアクセス許可は提供しません。この例のポリシーでは、Aさんのアクセス許可の上限を Amazon S3、CloudWatch、および Amazon EC2 のすべてのオペレーションに設定します。Aさんは、IAM など、他のどのサービスでもオペレーションを実行することはできません。実行を許可するアクセス許可ポリシーが適用されている場合でも同様です。たとえば...(以下略)
少しわかりにくいですね。
#ポリシーの評価ロジックを理解することによってアクセス許可の境界が分かります
-例1- IAMプリンシパルにアクセス許可の境界を設定していてS3,cloudwatch,ec2のAllowが存在し、Identity-based policyでもS3,cloudwatch,ec2のAllowが存在する場合
→ IAMプリンシパルはS3,cloudwatch,ec2に対してのみアクセスできます。
-例2- IAMプリンシパルにアクセス許可の境界を設定していてS3,cloudwatch,ec2のAllowが存在するが、Identity-based policyではS3,cloudwatch,ec2のAllowが存在しない場合
→ IAMプリンシパルはS3,cloudwatch,ec2に対してアクセスできません。
-例3- Identity-based policyではS3,cloudwatch,ec2のAllowが存するがIAMプリンシパルにアクセス許可の境界を設定していてAllowが存在しない場合
→IAMプリンシパルはS3,cloudwatch,ec2に対してアクセスできません。
-例4- IAMプリンシパルにアクセス許可の境界を設定していてAllowが存在しないが、リソースポリシーにAllowが存在する場合
→ IAMプリンシパルはS3,cloudwatch,ec2に対してアクセスできます。