IAM 그룹의 iam:SetDefaultPolicyVersion 권한 점검

그룹 구성원이 기본값으로 지정할 수 있는 관리형 정책 버전을 제한하세요.

설명

IAM 그룹에 iam:SetDefaultPolicyVersion을 광범위하게 허용하면 구성원이 고객 관리형 정책의 기존 버전을 기본값으로 지정할 수 있습니다. 자신에게 적용되는 정책에 더 많은 권한을 허용하는 이전 버전이 남아 있다면 이를 활성화해 권한을 확대할 수 있습니다.

이 작업은 새로운 정책 내용을 만들지 않고 기존 버전을 선택합니다. 영향은 선택한 버전의 내용과 정책의 적용 대상에 따라 달라지며, 다른 적용 가능한 제한과 명시적 거부도 유지됩니다.

잠재적 영향

  • 과거에 제거한 권한이 정책을 공유하는 여러 주체에 다시 적용될 수 있습니다.
  • 승인된 권한 축소가 이전 버전으로의 변경 때문에 무효화될 수 있습니다.

해결 방법

일반 그룹에 불필요한 iam:SetDefaultPolicyVersion을 제거하고 Resource를 승인된 고객 관리형 정책 ARN으로 제한하세요. 기본값으로 전환할 버전의 내용과 적용 대상을 검토하세요. 새 버전을 기본값으로 만들 수 있는 iam:CreatePolicyVersion도 함께 제한하고, 승인된 변경은 작동하며 미승인 변경은 차단되는지 시험하세요.

예시

같은 그룹의 인라인 정책으로 관리형 정책의 기본 버전 변경 권한을 부여하는 비교입니다. 인라인 정책 자체의 버전을 변경하는 예시는 아닙니다.

변경 전

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:SetDefaultPolicyVersion",
        ]
        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 조회만 남습니다. 다른 정책의 버전 관리 권한과 필요한 조회 범위도 확인하세요.

참조