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

グループメンバーの管理ポリシーのアタッチ権限を必要な範囲に限定してください。

説明

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 の参照操作に置き換えます。他のポリシーにアタッチ権限が残っていないかと、実際に必要な参照範囲も確認してください。

参考資料