설명
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 = "*"
},
]
})
}