설명
aws_iam_access_key의 user는 IAM 사용자 이름입니다. user = "root"라고 적어도 AWS 계정 루트 사용자의 자격 증명을 만드는 것이 아닙니다. 활성 키가 있다는 사실만으로 비밀 값이 유출되었다거나 계정 전체 권한이 있다고 단정할 수 없습니다.
다만 실제 접근 키 ID와 비밀 접근 키가 노출되면 해당 IAM 사용자에게 허용된 작업이 악용될 수 있습니다. 키의 소유자, 사용처와 권한을 확인하고 장기 키가 필요한지 검토하세요.
잠재적 영향
- 유효한 키 쌍을 얻은 사람이 IAM 사용자에게 허용된 AWS 작업을 실행할 수 있습니다.
- 불필요한 활성 키는 장기 자격 증명의 노출 기회를 늘립니다.
- 상태 파일이나 배포 출력에 접근할 수 있는 범위가 넓으면 비밀 접근 키가 노출될 수 있습니다.
해결 방법
- 자동화에는 역할의 임시 자격 증명을 우선 사용하고, 유지하는 IAM 키에는 필요한 권한만 부여하세요.
- 비밀 값과 Terraform 상태의 접근 권한을 제한하세요. 실제 노출이 확인되면 사용처를 전환하고 키를 폐기한 뒤 관련 API 활동을 조사하세요.
- AWS 계정 루트 사용자의 접근 키는 별도로 확인해 제거하세요. IAM 사용자 이름을 바꾸는 것으로 실제 루트 자격 증명이 정리되지는 않습니다.
예시
키를 연결할 IAM 사용자가 이미 존재해야 하는 부분 예제입니다.
변경 전
hcl
resource "aws_iam_access_key" "example" {
user = "root"
status = "Active"
}
root라는 IAM 사용자에 활성 키를 생성합니다. 그 사용자의 실제 정책이 권한을 결정하므로 이름만으로 AWS 계정 루트 권한을 갖는 것은 아닙니다.
변경 후
hcl
resource "aws_iam_access_key" "example" {
user = "some-user"
}
키의 대상 사용자를 some-user로 바꿉니다. status를 생략해도 기본값은 Active이므로 키를 비활성화하는 변경이 아닙니다. 대상 사용자의 권한과 키 사용 필요성을 별도로 확인하세요.