Kinesis の暗号化設定の確認が必要

Kinesis に保存する新しいレコードを KMS で暗号化し、キーの権限とデータの書き込み・読み取りを検証してください。

説明

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

参考資料