説明
IAM グループを通じて広い iam:AttachGroupPolicy 権限を与えると、メンバーが同じアカウントのグループに強い管理ポリシーをアタッチできる場合があります。対象グループに呼び出し元が所属していれば、そのユーザーと他のメンバーの権限が拡大するおそれがあります。
アタッチとその後の権限には、ポリシー条件、明示的な拒否、アクセス許可の境界、組織ポリシーなどの制限も適用されます。
想定される影響
- メンバーに業務上不要なリソースへのアクセス権限が追加される可能性があります。
- 一度のグループポリシー変更が複数の IAM ユーザーに影響することがあります。
対処方法
不要な iam:AttachGroupPolicy の許可を削除してください。必要な場合は 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:AttachGroupPolicy",
]
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 の参照操作に置き換えます。他のポリシーにアタッチ権限が残っていないかと、実際に必要な参照範囲も確認してください。