IAM グループの iam:PutGroupPolicy 権限の確認

グループメンバーのインラインポリシー変更権限を必要な対象に限定してください。

説明

IAM グループに広い iam:PutGroupPolicy 権限を付与すると、メンバーがグループのインラインポリシーを追加または上書きできます。自身が所属するグループに強い権限を付与すると、権限昇格につながるおそれがあります。

グループポリシーは、メンバーである IAM ユーザーに適用されます。ユーザーのアクセス許可の境界、組織ポリシー、明示的な拒否も実際のアクセスを制限します。

想定される影響

  • 一度のポリシー変更で、複数のメンバーに不要な管理権限が付与される可能性があります。
  • 未承認の変更により、グループ単位のアクセス制御が弱まるおそれがあります。

対処方法

一般のグループに不要な iam:PutGroupPolicy を削除してください。必要な場合は専用の管理ロールと承認手続きを使い、Resource を対象グループ ARN に限定してください。変更内容を確認して CloudTrail で監視し、正常な管理操作が機能し、未承認の変更が阻止されることを確認してください。

例

同じグループとインラインポリシーで、許可する操作だけを減らす比較です。

変更前

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:PutGroupPolicy",
        ]
        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 の参照操作だけを残します。他のポリシーに同じ変更権限が残っていないかと、実際に必要な参照範囲も確認してください。

参考資料