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

他のユーザーのコンソールパスワードを変更する権限を制限してください。

説明

広範なiam:UpdateLoginProfile権限があると、他のIAMユーザーのコンソールパスワードを変更できます。対象が高い権限を持ち、他のサインイン制御がアクセスを許す場合、そのアカウントから強い権限を使えるおそれがあります。パスワード変更権限自体がMFAを解除するわけではありません。

想定される影響

  • パスワード変更によって、正当なユーザーのコンソール利用が妨げられるおそれがあります。
  • サインインに成功したプリンシパルは、対象ユーザーに許可された操作を実行できます。

対処方法

パスワードを管理しないユーザーからiam:UpdateLoginProfile権限を削除してください。必要な管理権限は承認された対象ユーザーに限定し、パスワード変更と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:UpdateLoginProfile",
        ]
        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 = "*"
      },
    ]
  })
}

参考資料