IAM 그룹의 iam:AttachUserPolicy 권한 점검

그룹 구성원이 사용자에게 부여할 수 있는 관리형 정책을 제한하세요.

설명

IAM 그룹을 통해 iam:AttachUserPolicy를 광범위하게 허용하면 구성원이 자신이나 다른 IAM 사용자에게 강한 관리형 정책을 연결할 수 있습니다. 연결이 허용되고 다른 제한으로 차단되지 않으면 대상 사용자의 권한이 확대될 수 있습니다.

관리형 정책을 연결하는 작업은 대상 사용자의 권한을 바꿉니다. 권한 경계나 명시적 거부를 자동으로 우회하는 것은 아닙니다.

잠재적 영향

  • 그룹 구성원이 승인 없이 자신의 리소스 접근 권한을 늘릴 수 있습니다.
  • 다른 사용자에게 불필요한 관리 권한을 부여해 사고 범위가 커질 수 있습니다.

해결 방법

일반 그룹에 불필요한 iam:AttachUserPolicy를 제거하세요. 필요한 경우 Resource를 대상 사용자 ARN으로 제한하고 iam:PolicyARN 조건으로 승인된 정책만 연결하도록 하세요. 다른 권한 제한을 유지하며 정상 관리 작업과 미승인 연결 거부를 확인하세요.

예시

같은 그룹의 인라인 정책에서 정책 연결 권한을 제거하는 비교입니다. 실제 구성원과 다른 연결 정책도 별도로 검토하세요.

변경 전

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:AttachUserPolicy",
        ]
        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 조회 작업만 남습니다. 다른 정책을 통해 같은 연결 권한이 남아 있지 않은지 확인하세요.

참조