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

사용자가 변경할 수 있는 그룹 정책의 범위를 제한하세요.

설명

IAM 사용자의 iam:AttachGroupPolicy 권한이 지나치게 넓으면 그룹에 강한 관리형 정책을 연결해 구성원의 권한을 바꿀 수 있습니다. 자신이 속한 그룹에 연결할 수 있다면 자신의 권한도 확대될 수 있습니다.

대상은 같은 계정의 IAM 그룹입니다. 그룹에 정책을 연결하는 권한만으로 그룹 구성원을 바꾸거나 다른 AWS 계정을 관리할 수 있는 것은 아닙니다.

잠재적 영향

  • 한 사용자의 잘못된 연결이 여러 그룹 구성원의 권한을 확대할 수 있습니다.
  • 승인되지 않은 고권한 정책은 리소스 접근과 변경 위험을 키울 수 있습니다.

해결 방법

불필요한 iam:AttachGroupPolicy 권한을 제거하고 관리 작업을 승인된 역할로 분리하세요. 필요한 경우 대상 그룹 ARN을 Resource에 지정하고 iam:PolicyARN 조건으로 연결할 정책을 제한하세요. 구성원과 다른 권한 제한을 확인하며 정상 작업과 미승인 연결 거부를 시험하세요.

예시

같은 사용자와 인라인 정책을 변경하는 비교입니다. 별도 정책 연결 리소스는 이 인라인 허용에 필요하지 않습니다.

변경 전

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:AttachGroupPolicy",
        ]
        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 조회 작업으로 바꿉니다. 다른 정책에서 같은 연결 권한을 받는지도 확인하세요.

참조