IAMユーザーに過剰なiam:CreateLoginProfile権限がある

他のユーザーのコンソールログインプロファイルを作成する権限を制限してください。

説明

iam:CreateLoginProfileでは、ログインプロファイルがまだないIAMユーザーにコンソールパスワードを設定できます。対象が高い権限を持ち、他のサインイン制御がアクセスを許す場合、新しいログイン経路からそのユーザーの権限を使えるおそれがあります。

想定される影響

  • 意図しない利用者が、高い権限を持つアカウントのコンソールにアクセスするおそれがあります。
  • 承認されたアカウント管理手順を経ずに、認証情報が発行されるおそれがあります。

対処方法

ログインプロファイルを管理しないユーザーからiam:CreateLoginProfile権限を削除してください。必要な場合は対象ユーザーを限定し、作成イベントを監査して、MFAなど他のサインイン制御を維持してください。

例

以下は、同じユーザーのログインプロファイル作成権限をEC2の情報取得権限に置き換える例です。このポリシーの変更だけでは、作成済みのプロファイルやパスワードは削除されません。

変更前

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:CreateLoginProfile",
        ]
        Effect   = "Allow"
        Resource = "*"
      },
    ]
  })
}

変更後

hcl
resource "aws_iam_user" "example" {
  name = "cosmic"
}

resource "aws_iam_user_policy" "example" {
  name = "inline_policy_read_only"
  user = aws_iam_user.example.name

  policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Action = [
          "ec2:Describe*",
        ]
        Effect   = "Allow"
        Resource = "*"
      },
    ]
  })
}

参考資料