説明
広範な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 = "*"
},
]
})
}