설명
Amazon Data Firehose의 server_side_encryption 설정이 유효하지 않으면 요구한 암호화 구성을 적용하지 못하거나 키 접근 오류로 전송이 지연될 수 있습니다. Direct PUT 소스에는 AWS_OWNED_CMK 또는 CUSTOMER_MANAGED_CMK를 사용하며, 고객 관리 키를 선택하면 유효한 key_arn이 필요합니다.
Firehose는 처리 중 임시 저장 데이터도 암호화합니다. Kinesis Data Streams가 소스라면 소스 스트림의 암호화를 확인하고, 목적지의 암호화와 접근 권한도 별도로 관리하세요.
잠재적 영향
- 잘못된 키 설정으로 배포나 데이터 수집·전달에 장애가 발생할 수 있습니다.
- 조직의 고객 관리 키 사용 및 감사 요구사항을 충족하지 못할 수 있습니다.
해결 방법
Direct PUT 스트림에서는 server_side_encryption.enabled를 true로 설정하고 적합한 key_type을 선택하세요. CUSTOMER_MANAGED_CMK에는 사용 가능한 대칭 KMS 키의 ARN과 필요한 권한을 제공하세요. 입력 소스별 암호화 방식을 확인하고 적용 상태와 실제 데이터 전달을 시험하세요.
예시
Direct PUT 스트림의 암호화 설정 발췌입니다. 목적지와 역할 설정은 생략했으며, var.firehose_kms_key_arn에는 사용 가능한 대칭 KMS 키 ARN을 제공하세요.
변경 전
hcl
resource "aws_kinesis_firehose_delivery_stream" "firehose_stream" {
name = "${aws_s3_bucket.logs.bucket}-firehose"
destination = "extended_s3"
server_side_encryption {
enabled = true
key_type = "AWS_OWN"
}
}
AWS_OWN은 유효한 key_type이 아니므로 수정해야 합니다.
변경 후
hcl
resource "aws_kinesis_firehose_delivery_stream" "firehose_stream" {
name = "${aws_s3_bucket.logs.bucket}-firehose"
destination = "extended_s3"
server_side_encryption {
enabled = true
key_type = "CUSTOMER_MANAGED_CMK"
key_arn = var.firehose_kms_key_arn
}
}
CUSTOMER_MANAGED_CMK와 키 ARN 입력을 사용합니다. 키의 상태와 권한, 스트림의 암호화 상태도 확인하세요.