説明
iam:PutGroupPolicy を持つロールを使う主体は、対象グループのインラインポリシーを追加または上書きし、メンバーである IAM ユーザーの権限を拡大できます。複数のユーザーに不要なアクセス権限を与え得る管理権限です。
IAM ロールはグループメンバーになれないため、この操作で呼び出し元ロール自身の権限が直接拡大するわけではありません。対象ユーザーの境界、組織ポリシー、明示的な拒否も実際のアクセスを制限します。
想定される影響
- 自動化ロールによる誤った変更で、複数のユーザーに過剰な権限が付与されるおそれがあります。
- 未承認のグループポリシー変更により、アカウント内のアクセス制御が弱まる可能性があります。
対処方法
ロールに不要な iam:PutGroupPolicy を削除してください。必要な変更は承認済みの管理ロールに許可し、Resource を対象グループ ARN に限定してください。ポリシー内容と変更履歴を確認し、正常な管理操作が機能し、未承認の変更が阻止されることを試験してください。
例
同じロールとインラインポリシーの抜粋です。省略したロールの信頼ポリシーは、実際の構成に別途定義してください。
変更前
hcl
resource "aws_iam_role" "example" {
name = "cosmic"
}
resource "aws_iam_role_policy" "example" {
name = "test_inline_policy"
role = aws_iam_role.example.name
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = [
"iam:PutGroupPolicy",
]
Effect = "Allow"
Resource = "*"
},
]
})
}
このロールを使う主体が、グループ全体のインラインポリシーを追加・更新できます。
変更後
hcl
resource "aws_iam_role" "example" {
name = "cosmic"
}
resource "aws_iam_role_policy" "example" {
name = "test_inline_policy"
role = aws_iam_role.example.name
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = [
"ec2:Describe*",
]
Effect = "Allow"
Resource = "*"
},
]
})
}
この許可文を EC2 の参照操作に絞ります。他のグループ管理権限と不要な参照権限も確認してください。