IAM 사용자의 iam:PutUserPolicy 권한 점검

사용자가 자신이나 다른 사용자의 인라인 정책을 바꿀 수 있는 범위를 제한하세요.

설명

IAM 사용자의 iam:PutUserPolicy 권한이 넓으면 자신이나 다른 사용자의 인라인 정책을 추가하거나 덮어쓸 수 있습니다. 대상 사용자에 더 강한 권한을 부여하면 다른 제한으로 차단되지 않는 범위에서 권한 상승으로 이어질 수 있습니다.

정책 변경은 권한 경계, 조직 정책이나 명시적 거부를 자동으로 없애지 않습니다. 실제 사용자와 다른 정책을 함께 검토하세요.

잠재적 영향

  • 사용자가 승인 없이 자신의 리소스 접근·변경 권한을 키울 수 있습니다.
  • 다른 사용자에게 과도한 권한을 부여해 자격 증명 오용 시 피해가 커질 수 있습니다.

해결 방법

일반 사용자에 불필요한 iam:PutUserPolicy를 제거하고 관리 작업은 승인된 역할로 수행하세요. 필요한 경우 Resource를 대상 사용자 ARN으로 제한하세요. 자신의 권한을 바꿀 수 있는 경로와 변경 로그를 검토하며 정상 작업과 미승인 변경 차단을 확인하세요.

예시

같은 사용자와 인라인 정책에서 허용 작업만 변경합니다.

변경 전

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:PutUserPolicy",
        ]
        Effect   = "Allow"
        Resource = "*"
      },
    ]
  })
}

사용자에게 자신을 포함한 전체 사용자의 인라인 정책을 추가하거나 갱신할 수 있는 권한을 부여합니다.

변경 후

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 = [
          "ec2:Describe*",
        ]
        Effect   = "Allow"
        Resource = "*"
      },
    ]
  })
}

이 허용문에는 EC2 조회만 남습니다. 다른 정책의 사용자 정책 수정 권한과 불필요한 조회 권한도 검토하세요.

참조