説明
IAM ユーザーに広い iam:AddUserToGroup を許可すると、自身や他の IAM ユーザーを同じアカウントのグループに追加できます。追加先のグループによって実効権限が増える場合、自身や制御可能な他のユーザーの権限昇格に利用されるおそれがあります。
Resource は追加先のグループ ARN を指定するもので、追加するユーザーの ARN を指定する範囲ではありません。ユーザーと追加先の両方を確認する必要があります。アクセス許可の境界、組織のポリシー、明示的な拒否は、付与された権限を引き続き制限できます。
想定される影響
- ユーザーが承認を受けずに、権限の強いグループのアクセス権限を得る可能性があります。
- 他のユーザーに不要な権限が付与され、機密リソースへのアクセスが拡大するおそれがあります。
対処方法
一般ユーザーから不要な iam:AddUserToGroup を削除し、メンバー変更は承認済みの管理ロールで行ってください。Resource を必要な追加先グループ ARN に限定し、変更の承認手順で追加するユーザーを確認してください。必要な変更が機能し、未承認の追加が阻止されることを試験し、変更ログを確認してください。
例
同じユーザーとインラインポリシーを維持し、グループメンバーの変更権限を削除する比較です。
変更前
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:AddUserToGroup",
]
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 の参照操作だけを残します。他のポリシーによるグループメンバーの変更権限と参照範囲も確認してください。