iam:CreateLoginProfile 권한이 과도한 IAM 사용자

다른 사용자의 콘솔 로그인 프로필 생성 권한을 제한하세요.

설명

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

참조