説明
IAM ユーザーに広い iam:PutGroupPolicy を許可すると、グループのインラインポリシーを追加または上書きして、メンバーの権限を拡大できます。対象グループに自身も所属していれば、自身の権限昇格にも利用できるおそれがあります。
グループポリシーは、そのグループの IAM ユーザーに適用されます。アクセス許可の境界、組織ポリシー、明示的な拒否を自動的に回避するものではありません。
想定される影響
- 承認された権限付与の手続きを経ずに、複数のユーザーのアクセス範囲が広がる可能性があります。
- グループメンバーの認証情報が悪用された場合、被害が広がるおそれがあります。
対処方法
一般ユーザーに不要な iam:PutGroupPolicy を削除してください。必要な作業は承認済みの管理ロールで行い、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:PutGroupPolicy",
]
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 の参照操作だけを残します。他のポリシーを通じたグループ変更権限と、実際に必要な参照範囲も確認してください。