IAM 그룹의 iam:CreatePolicyVersion 권한 점검

그룹 구성원이 생성·활성화할 수 있는 관리형 정책 버전을 제한하세요.

설명

IAM 그룹에 iam:CreatePolicyVersion을 광범위하게 허용하면 구성원이 고객 관리형 정책의 새 버전을 만들고 기본 버전으로 지정할 수 있습니다. 자신이 속한 그룹 등에 연결된 정책을 더 강한 내용으로 바꾸면 권한 상승으로 이어질 수 있습니다.

기본 버전이 실제 적용되는 버전입니다. 인라인 정책은 이 버전 관리 대상이 아니며, 새 버전 생성 요청에서 기본값으로 지정할 때 별도의 iam:SetDefaultPolicyVersion 권한은 필요하지 않습니다.

잠재적 영향

  • 공유 정책의 변경이 여러 사용자나 역할의 접근 권한을 확대할 수 있습니다.
  • 승인 없는 정책 내용 변경으로 권한 부여 절차가 무력화될 수 있습니다.

해결 방법

일반 그룹에 불필요한 iam:CreatePolicyVersion을 제거하고 필요한 관리 작업은 승인된 역할로 수행하세요. Resource를 대상 고객 관리형 정책 ARN으로 제한하세요. iam:SetDefaultPolicyVersion 권한도 함께 검토하고 정책 내용과 사용 대상을 확인하며 미승인 변경이 차단되는지 시험하세요.

예시

같은 그룹의 인라인 정책으로 관리형 정책 버전 생성 권한을 부여하는 비교입니다.

변경 전

hcl
resource "aws_iam_group" "example" {
  name = "cosmic"
}

resource "aws_iam_group_policy" "example" {
  name  = "test_inline_policy"
  group = aws_iam_group.example.name

  policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Action = [
          "iam:CreatePolicyVersion",
        ]
        Effect   = "Allow"
        Resource = "*"
      },
    ]
  })
}

구성원에게 고객 관리형 정책 전반의 새 버전을 만들 수 있는 권한을 허용합니다.

변경 후

hcl
resource "aws_iam_group" "example" {
  name = "cosmic"
}

resource "aws_iam_group_policy" "example" {
  name  = "test_inline_policy"
  group = aws_iam_group.example.name

  policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Action = [
          "ec2:Describe*",
        ]
        Effect   = "Allow"
        Resource = "*"
      },
    ]
  })
}

이 허용문에는 EC2 조회만 남습니다. 다른 정책의 버전 관리 권한과 실제 필요한 조회 범위도 확인하세요.

참조