説明
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 を使用します。アカウント間共有などでカスタマーマネージドキーが必要な場合は、適切なキーと権限に変更してください。