설명
iam:AttachUserPolicy 권한을 가진 역할은 허용된 IAM 사용자에게 관리형 정책을 연결해 그 사용자의 권한을 확대할 수 있습니다. 이 작업은 호출 역할 자체의 권한을 바꾸거나 대상 사용자로 로그인할 권한을 부여하지 않습니다.
실제 영향은 연결 가능한 정책과 대상 사용자의 사용 경로에 달려 있습니다. 사용자 권한 경계, 명시적 거부와 조직 정책도 계속 적용됩니다.
잠재적 영향
- 자동화 역할의 잘못된 정책 연결이 사용자에게 불필요한 관리 권한을 줄 수 있습니다.
- 확대된 사용자 권한의 오용은 정보 유출이나 리소스 변경으로 이어질 수 있습니다.
해결 방법
역할에 필요하지 않은 iam:AttachUserPolicy를 제거하세요. 필요한 관리 작업은 Resource의 대상 사용자 ARN과 iam:PolicyARN 조건의 승인된 정책으로 제한하세요. 권한 경계와 변경 로그를 검토하며 정상 관리 작업과 미승인 연결 거부를 시험하세요.
예시
같은 역할과 인라인 정책의 발췌입니다. 역할의 신뢰 정책은 실제 구성에서 별도로 정의하세요.
변경 전
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:AttachUserPolicy",
]
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 조회 작업으로 줄입니다. 다른 사용자 관리 권한과 실제 필요한 조회 범위도 확인하세요.