설명
iam:AddUserToGroup을 가진 역할을 사용하는 주체는 같은 계정의 IAM 사용자를 그룹에 추가할 수 있습니다. 제어 가능한 사용자를 더 많은 유효 권한을 부여하는 그룹에 추가하면 그 사용자를 통한 권한 상승 경로가 될 수 있습니다.
역할 자체는 IAM 그룹 구성원이 될 수 없으며, 사용자를 추가한다고 호출 역할의 권한이 바뀌거나 그 사용자로 로그인할 수 있는 것은 아닙니다. Resource는 대상 그룹을 제한하므로 추가할 사용자도 별도로 승인해야 합니다.
잠재적 영향
- 권한이 높은 그룹에 미승인 사용자가 추가되어 접근 범위가 확대될 수 있습니다.
- 관리 자동화 역할이 침해되면 사용자 권한을 부여하는 경로로 악용될 수 있습니다.
해결 방법
역할에 불필요한 iam:AddUserToGroup을 제거하고 필요한 경우 Resource를 승인된 대상 그룹 ARN으로 제한하세요. 역할을 사용할 수 있는 주체와 추가할 사용자를 함께 검토하세요. 사용자의 다른 권한 제한도 확인하고 필요한 구성원 변경과 미승인 추가 차단을 시험하세요.
예시
같은 역할과 인라인 정책의 발췌입니다. 실제 구성에는 생략한 신뢰 정책을 별도로 정의하세요.
변경 전
hcl
resource "aws_iam_role" "example" {
name = "cosmic"
}
resource "aws_iam_role_policy" "example" {
name = "test_inline_policy"
role = aws_iam_role.example.name
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = [
"iam:AddUserToGroup",
]
Effect = "Allow"
Resource = "*"
},
]
})
}
이 역할을 사용하는 주체에게 계정 내 그룹 전반에 사용자를 추가할 수 있는 권한을 부여합니다.
변경 후
hcl
resource "aws_iam_role" "example" {
name = "cosmic"
}
resource "aws_iam_role_policy" "example" {
name = "test_inline_policy"
role = aws_iam_role.example.name
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = [
"ec2:Describe*",
]
Effect = "Allow"
Resource = "*"
},
]
})
}
이 허용문에는 EC2 조회만 남습니다. 다른 정책의 사용자 추가 권한과 불필요한 조회 권한도 확인하세요.