説明
広い iam:AttachRolePolicy 権限を持つグループメンバーは、ロールに強い管理ポリシーをアタッチできる場合があります。対象ロールを引き受けるか、そのロールを使うワークロードを制御できれば、拡大した権限を利用できるおそれがあります。
ポリシーのアタッチはロールの信頼ポリシーを変更せず、それ自体でロールを引き受ける権限も与えません。アタッチとその後の操作には、他の権限制限も適用されます。
想定される影響
- サービスやユーザーセッションに、必要以上のロール権限が与えられる可能性があります。
- 未承認のアタッチが、ロールを使う複数のワークロードに影響するおそれがあります。
対処方法
グループに不要な iam:AttachRolePolicy を削除してください。必要な場合は Resource に対象ロール ARN を指定し、iam:PolicyARN 条件で管理ポリシーを制限してください。ロールの引き受けやワークロードの制御権限も確認し、正常な操作と未承認のアタッチの拒否を試験してください。
例
同じグループとインラインポリシーを維持する比較です。ロール管理が不要なメンバー向けに権限を減らします。
変更前
hcl
resource "aws_iam_group" "example" {
name = "cosmic"
}
resource "aws_iam_group_policy" "example" {
name = "test_inline_policy"
group = aws_iam_group.example.name
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = [
"iam:AttachRolePolicy",
]
Effect = "Allow"
Resource = "*"
},
]
})
}
メンバーに、ロール全体への管理ポリシーのアタッチを許可します。
変更後
hcl
resource "aws_iam_group" "example" {
name = "cosmic"
}
resource "aws_iam_group_policy" "example" {
name = "test_inline_policy"
group = aws_iam_group.example.name
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = [
"ec2:Describe*",
]
Effect = "Allow"
Resource = "*"
},
]
})
}
この許可文には EC2 の参照操作だけを含めます。他のポリシーのロール管理権限と、実際に必要な参照範囲も確認してください。