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