【Security Hub修復手順】[Kinesis.1] Kinesis Data Streams は、保管中に暗号化する必要があります

AWS SecurityHub 基礎セキュリティのベストプラクティスコントロール修復手順をご紹介します。
2024.04.25

皆さん、お使いのAWS環境のセキュリティチェックはしていますか?

当エントリでは、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介します。

本記事の対象コントロール

[Kinesis.1] Kinesis Data Streams は、保管中に暗号化する必要があります

[Kinesis.1] Kinesis streams should be encrypted at rest

前提条件

本記事はAWS Security Hubで「AWS基礎セキュリティのベストプラクティススタンダード」を利用されている方向けの内容です。 AWS Security Hubの詳細についてはこちらのブログをご覧ください。

コントロールの説明

このコントロールは、Amazon Kinesis Data Streams(以降、KDS)が保管中にサーバー側の暗号化を使用して暗号化されているかどうかをチェックします。

保管中にサーバー側の暗号化を使用して暗号化されていない場合、このコントロールは失敗します。

KDSのサーバー側の暗号化は、KDSストレージへ保存される前にAWS KMSで暗号化され、ストレージから取得された後で復号されます。

その結果、KDSサービス内で保管中のデータは暗号化されます。

注意点として、サーバー側の暗号化では、暗号化が有効後の受信データが暗号化されます。暗号化されていないストリーム内に既に存在するデータは、サーバー側の暗号化が有効になった後も暗号化されません。

暗号化を有効にするかどうかは、後述のレイテンシーや料金を考慮して判断することをおすすめします。

考慮事項

レイテンシー

サーバー側の暗号化を適用すると、PutRecordPutRecords、および GetRecordsアクションにおいて、100μs 未満のレイテンシーが増加します。

料金

暗号化で利用するKMSキー保管コストにおいて、AWSマネージドキーは無料ですが、カスタマーマネージドキーの場合、月1ドル(時間ごとに日割り計算) かかります。

また、KDSが行うKMS API呼び出しによって、AWSマネージドキーとカスタマーマネージドキーのどちらを使用する場合でも、KMSの利用コストがかかります。

修正手順

1 対象のリソースの確認方法

  1. AWSマネージメントコンソールにログインし、AWS 基礎セキュリティのベストプラクティス v1.0.0にて、「Kinesis.1」を検索します。タイトルを選択します。
  2. リソースの欄から失敗しているリソースを確認できます。

2 ステークホルダーに確認

ステークホルダー(リソースの作成者や管理している部署などの関係者)に以下の条件を満たせているか確認します。

  • 暗号化を有効化してよいか確認する
    • 先ほど記載しました考慮事項をし、有効化しない場合、抑制済みとします。

3 暗号化を有効にする

  1. KDSのコンソールから対象のKDSを押下します。
  2. [設定]タブから[暗号化]の[編集]を押下します。
  3. [サーバー側の暗号化を有効化]にチェックし、AWSマネージドキー もしくは カスタマーマネージドキーのどちらかをチェックし、保存します。今回はAWSマネージドキーを利用します。
  4. 暗号化を変更後、しばらくはステータス[更新中]になります。ステータスが[アクティブ]になれば、暗号化の設定が完了です。

以上の手順で、KDSのサーバー側の暗号化を有効にすることができました。

先ほども記載しましたが、暗号化が有効後のKDSへのデータが暗号化されます。有効化前のKDS内のデータは暗号化されませんので注意してください。

最後に

今回は、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介しました。

コントロールを修正して、お使いのAWS環境のセキュリティをパワーアップさせましょう!

最後までお読みいただきありがとうございました!どなたかのお役に立てれば幸いです。

以上、平井でした!