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

사용자의 그룹 인라인 정책 수정 권한을 승인된 대상으로 제한하세요.

설명

IAM 사용자에게 광범위한 iam:PutGroupPolicy를 허용하면 그룹 인라인 정책을 새로 추가하거나 덮어써 구성원들의 권한을 높일 수 있습니다. 사용자 자신이 그 그룹의 구성원이라면 자신의 권한 상승에도 이용할 수 있습니다.

그룹 정책은 해당 그룹의 IAM 사용자에게 적용됩니다. 권한 경계, 조직 정책과 명시적 거부를 자동으로 우회하지는 않습니다.

잠재적 영향

  • 그룹 기반 권한 부여 절차 없이 여러 사용자의 접근 범위가 확대될 수 있습니다.
  • 그룹 구성원의 자격 증명 오용 시 피해 범위가 커질 수 있습니다.

해결 방법

일반 사용자에 불필요한 iam:PutGroupPolicy를 제거하세요. 필요한 작업은 승인된 관리 역할로 수행하고 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:PutGroupPolicy",
        ]
        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 조회만 남깁니다. 다른 정책을 통한 그룹 수정 권한과 실제 필요한 조회 범위도 확인하세요.

참조