설명
광범위한 iam:CreateAccessKey 권한이 있으면 다른 IAM 사용자의 새 액세스 키를 만들어 API 접근에 사용할 수 있습니다. 대상 사용자가 더 강한 권한을 가지면 권한 상승으로 이어질 수 있습니다.
잠재적 영향
- 자격 증명 생성: 다른 사용자에게 허용된 데이터와 서비스에 접근할 수 있는 장기 키가 발급될 수 있습니다.
- 접근 지속: 불필요한 키가 남아 있으면 원래 권한을 수정한 뒤에도 접근 경로가 유지될 수 있습니다.
해결 방법
불필요한 iam:CreateAccessKey 권한을 제거하고, 필요한 키 관리는 승인된 대상 사용자로 제한하세요. 가능한 경우 임시 자격 증명을 사용하고, 키 생성 이벤트와 기존 장기 키를 점검하세요.
예시
변경 후 인라인 정책은 같은 사용자에게 EC2 조회 권한만 부여합니다. 다른 정책의 키 생성 권한도 확인하고, 이미 발급된 키는 별도로 비활성화하거나 삭제하세요.
변경 전
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:CreateAccessKey",
]
Effect = "Allow"
Resource = "*"
},
]
})
}
변경 후
hcl
resource "aws_iam_user" "example" {
name = "cosmic"
}
resource "aws_iam_user_policy" "example" {
name = "inline_policy_read_only"
user = aws_iam_user.example.name
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = [
"ec2:Describe*",
]
Effect = "Allow"
Resource = "*"
},
]
})
}