설명
Kinesis Data Streams의 서버 측 암호화는 레코드를 저장하기 전에 KMS 키로 암호화하고 읽을 때 복호화합니다. 암호화하지 않은 스트림에는 저장된 이벤트나 로그를 보호하는 이 계층이 없습니다. 암호화는 정상적인 읽기 권한을 가진 소비자의 접근을 제한하지 않습니다.
잠재적 영향
저장 데이터가 무단으로 획득되면 고객 이벤트나 운영 로그에 포함된 민감정보의 노출 위험이 커집니다. 조직의 저장 데이터 보호 요구사항도 충족하지 못할 수 있습니다.
해결 방법
StreamEncryption에 EncryptionType: KMS와 유효한 KeyId를 설정하세요. AWS 관리형 키를 사용하거나, 조직의 키 관리·계정 간 공유 요구사항에 맞는 고객 관리형 키를 선택하세요. 키 정책과 생산자·소비자의 필요한 권한을 확인하세요.
암호화 활성화는 비동기로 진행됩니다. 적용 후 새 레코드의 암호화 상태와 정상적인 쓰기·읽기를 확인하세요. 이미 저장된 비암호화 레코드는 소급해서 암호화되지 않으므로 보존 기간과 기존 데이터의 처리도 검토하세요.
예시
동일한 스트림의 설정을 비교합니다. 접근 정책과 전송 중 암호화는 별도로 관리해야 합니다.
변경 전
yaml
Resources:
EventStream:
Type: AWS::Kinesis::Stream
Properties:
Name: EventStream
RetentionPeriodHours: 24
ShardCount: 1
Tags:
- Key: Name
Value: EventStream
변경 후
yaml
Resources:
EventStream:
Type: AWS::Kinesis::Stream
Properties:
Name: EventStream
RetentionPeriodHours: 24
ShardCount: 1
StreamEncryption:
EncryptionType: KMS
KeyId: alias/aws/kinesis
Tags:
- Key: Name
Value: EventStream
AWS 관리형 alias/aws/kinesis 키를 사용합니다. 계정 간 공유 등 고객 관리형 키가 필요한 경우에는 적절한 키와 권한으로 변경하세요.