説明
IAM ユーザーの iam:AttachGroupPolicy 権限が広すぎると、グループに強い管理ポリシーをアタッチしてメンバーの権限を変更できる場合があります。自分が所属するグループを対象にできれば、自身の権限も拡大するおそれがあります。
対象は同じアカウントの IAM グループです。グループポリシーのアタッチ権限だけで、所属メンバーの変更や他の AWS アカウントの管理ができるわけではありません。
想定される影響
- 一人のユーザーによる誤ったアタッチが、複数メンバーの権限を拡大する可能性があります。
- 未承認の強いポリシーは、リソースへのアクセスや変更のリスクを高めるおそれがあります。
対処方法
不要な iam:AttachGroupPolicy 権限を削除し、管理操作は承認済みのロールで行ってください。必要な場合は対象グループ ARN を Resource に指定し、iam:PolicyARN 条件でアタッチ可能なポリシーを制限してください。メンバーと他の権限制限を確認し、正常な操作と未承認のアタッチの拒否を試験してください。
例
同じユーザーとインラインポリシーを変更する比較です。このインライン許可に、別のポリシーアタッチリソースは不要です。
変更前
hcl
resource "aws_iam_user" "example" {
name = "cosmic"
}
resource "aws_iam_user_policy" "example" {
name = "test_inline_policy"
user = aws_iam_user.example.name
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = [
"iam:AttachGroupPolicy",
]
Effect = "Allow"
Resource = "*"
},
]
})
}
ユーザーに、グループ全体への管理ポリシーのアタッチを許可します。
変更後
hcl
resource "aws_iam_user" "example" {
name = "cosmic"
}
resource "aws_iam_user_policy" "example" {
name = "test_inline_policy"
user = aws_iam_user.example.name
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = [
"ec2:Describe*",
]
Effect = "Allow"
Resource = "*"
},
]
})
}
この許可を EC2 の参照操作に置き換えます。他のポリシーから同じアタッチ権限を受けていないかも確認してください。