IAM 그룹의 iam:AddUserToGroup 권한 점검

구성원이 다른 IAM 그룹에 사용자를 추가할 수 있는 범위를 제한하세요.

설명

IAM 그룹에 iam:AddUserToGroup을 광범위하게 허용하면 구성원이 자신이나 다른 IAM 사용자를 같은 계정의 다른 그룹에 추가할 수 있습니다. 대상 그룹이 더 많은 유효 권한을 부여하면 이를 권한 상승에 이용할 수 있습니다.

Resource에는 추가 대상 그룹의 ARN을 지정합니다. 그룹 범위를 제한하는 것만으로 추가할 사용자가 제한되지는 않으므로 사용자와 대상 그룹을 함께 승인해야 합니다. 권한 경계, 조직 정책과 명시적 거부는 추가된 사용자의 접근을 계속 제한할 수 있습니다.

잠재적 영향

  • 승인되지 않은 사용자가 권한이 높은 그룹의 접근 권한을 얻을 수 있습니다.
  • 그룹 구성원 변경을 통한 권한 부여가 기존 승인 절차를 우회할 수 있습니다.

해결 방법

일반 그룹에서 불필요한 iam:AddUserToGroup을 제거하고 구성원 관리는 승인된 관리 역할로 수행하세요. Resource를 승인된 대상 그룹 ARN으로 제한하고 추가할 사용자도 검토하세요. 필요한 변경은 작동하고 미승인 그룹 추가는 차단되는지 시험하며 구성원 변경 로그를 확인하세요.

예시

같은 그룹의 인라인 정책에서 사용자 추가 권한을 제거하는 비교입니다.

변경 전

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:AddUserToGroup",
        ]
        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 조회로 제한합니다. 다른 정책의 구성원 관리 권한과 조회 범위도 검토하세요.

참조