説明
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 を使って暗号化を要求します。必要な権限を確認し、有効化後の新しいレコードの保護を検証してください。既存のレコードが遡って暗号化されるわけではありません。