설명
Kinesis 서버 측 암호화는 스트림에 저장되는 레코드를 보호합니다. 암호화가 필요하면 encryption_state: enabled, encryption_type: KMS와 유효한 key_id를 명시하고 실제 스트림 상태를 확인하세요. 기존 스트림을 관리하는 작업에서 옵션을 생략한 것만으로 암호화가 꺼지는 것은 아닙니다.
암호화는 활성화한 뒤 들어오는 레코드에 적용됩니다. 이전에 암호화 없이 저장된 레코드를 소급해서 암호화하지 않으며, 스트림 접근 권한과 전송 구간 보호도 별도로 필요합니다.
잠재적 영향
- 실제로 서버 측 암호화가 꺼져 있으면 새로 저장하는 민감한 레코드가 저장 데이터 암호화 요구 사항을 충족하지 못할 수 있습니다.
- 사용할 키와 권한을 잘못 구성하면 데이터 쓰기나 읽기가 중단될 수 있습니다. 암호화를 켜도 과거의 비암호화 레코드는 별도 검토가 필요합니다.
해결 방법
- 스트림의 실제 암호화 상태를 확인하고 필요한 암호화 유형·상태·키를 명시하세요.
- 데이터를 쓰고 읽는 주체가 KMS 키를 필요한 범위에서 사용할 수 있도록 구성하고 불필요한 권한은 제한하세요.
- 변경 완료 후 스트림 상태, 새 레코드의 암호화와 쓰기·읽기를 검증하세요. 이전 레코드의 보존 기간과 처리 방안, 스트림 접근 권한과 전송 구간 보호도 확인하세요.
예시
변경 전
yaml
- name: Encrypt Kinesis Stream test-stream
community.aws.kinesis_stream:
name: test-stream
state: present
shards: 1
encryption_state: disabled
encryption_type: KMS
key_id: alias/aws/kinesis
wait: yes
wait_timeout: 600
encryption_state: disabled는 암호화 중지를 요청합니다. 암호화 유형과 키를 함께 지정해도 이 요청이 활성화로 바뀌지는 않습니다.
변경 후
yaml
- name: Encrypt Kinesis Stream test-stream
community.aws.kinesis_stream:
name: test-stream
state: present
shards: 1
encryption_state: enabled
encryption_type: KMS
key_id: alias/aws/kinesis
wait: yes
wait_timeout: 600
AWS 관리형 Kinesis 키의 별칭인 alias/aws/kinesis로 암호화를 요청합니다. 필요한 권한을 확인하고 활성화 이후 새 레코드의 보호를 검증하세요. 과거 레코드까지 암호화되는 것은 아닙니다.