설명
CodeBuild의 encryption_key는 빌드 출력 산출물의 암호화 키를 지정합니다. 생략하면 기본 AWS 관리형 키를 사용하므로, 키가 명시되지 않았다는 이유만으로 산출물이 평문이라고 판단해서는 안 됩니다.
잠재적 영향
키 정책이나 수명 주기를 직접 관리해야 하는 환경에서 기본 키에만 의존하면 조직의 키 관리 요구사항을 충족하지 못할 수 있습니다.
해결 방법
실제 산출물 암호화 설정을 확인하고, 직접 키를 관리해야 한다면 서비스 역할이 사용할 수 있는 고객 관리형 키를 지정하세요. CodePipeline 산출물은 파이프라인의 아티팩트 저장소 설정도 확인하세요. 프로젝트 키가 로그와 환경변수까지 일괄 보호하지는 않습니다.
예시
이 발췌 예시는 기본 키를 암묵적으로 사용하는 설정과 alias/aws/s3를 명시하는 설정을 비교합니다. 후자도 AWS 관리형 키입니다. 빌드 환경과 파이프라인 설정은 생략했습니다.
변경 전
yaml
- name: My project
community.aws.codebuild_project:
name: my_project
description: My nice little project v2
service_role: arn:aws:iam::123456789012:role/service-role/code-build-service-role
source:
type: CODEPIPELINE
buildspec: ''
artifacts:
type: CODEPIPELINE
name: my_project
region: us-east-1
state: present
변경 후
yaml
- name: My project
community.aws.codebuild_project:
name: my_project
description: My nice little project
service_role: arn:aws:iam::123456789012:role/service-role/code-build-service-role
source:
type: CODEPIPELINE
buildspec: ''
artifacts:
type: CODEPIPELINE
name: my_project
encryption_key: arn:aws:kms:us-east-1:123456789012:alias/aws/s3
region: us-east-1
state: present