【Security Hub修復手順】[ElastiCache.5] ElastiCache for Redisのレプリケーショングループで、転送時の暗号化を有効化する必要があります

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

こんにちは!AWS事業本部のおつまみです。

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

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

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

[ElastiCache.5] ElastiCache for Redisのレプリケーショングループで、転送時の暗号化を有効化する必要があります

[ElastiCache.5] ElastiCache for Redis replication groups should be encrypted in transit

前提条件

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

対象コントロールの説明

このコントロールは、ElastiCache for Redis レプリケーショングループが転送時に暗号化されているかどうかをチェックします。
転送時に暗号化されていない場合、失敗します。

転送時の暗号化を有効化すると、以下のメリットがあります。

  • 転送中のデータが悪意のあるユーザーによって盗聴されるリスクの低減
  • Redis AUTH 機能によるサーバー認証やクライアント認証を実装可能

ただし、エンドポイントでデータの暗号化と復号の処理が必要となり、パフォーマンスに影響を与える可能性があります。そのため、ベンチマーク等により予め確認してください。
キャッシュやセッション等の揮発性のあるデータのみの場合は、データの機密性やコンプライアンス要件の観点から転送時の暗号化の必要性をご検討ください。

なお、転送時の暗号化を有効にするには、レプリケーショングループを再作成する必要がある点に注意が必要です。
つまり変更には、システム停止などの影響が伴います。

また転送時の暗号化には、いくつかの条件があります。必ず下記の公式ドキュメントより条件を確認しておきましょう。
ElastiCache の転送時の暗号化の条件 (TLS) - Amazon ElastiCache for Redis

修復手順

1. ステークホルダーに確認

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

  • 転送時の暗号化を有効にしてよいか。
  • いつ変更してもよいか。

2. 転送時の暗号化を優先にする

  1. Amazon ElastiCache のコンソールから対象のRedis クラスターを選択し、[アクション]→[変更]をクリックします。

  2. 変更画面のセキュリティセクションにて、[転送時の暗号化]で有効化を選択し、[転送中の暗号化モード]で優先を選択します。そのまま下の画面に遷移し、[変更をプレビュー]を選択します。

  3. プレビュー画面で変更の概要を確認します。問題がなければ、[変更]を選択します。変更中、エンドポイントが変わるのでご注意ください。

  4. クラスター詳細画面で[転送中の暗号化]が[有効]、[転送中の暗号化モード]が[優先]になっていることを確認します。

3. すべての Redis クライアントを暗号化接続の使用に移行

  1. Amazon ElastiCache に接続するすべての Redis クライアントがTLSをサポートしていることを確認します。例えば、redis-cliがインストールされていて、TLS がサポートされている場合は、コマンドに--tls引数を追加します。サポートしていない場合は、暗号化接続をサポートするクライアントに移行する必要があります。

$ redis-cli -h [プライマリエンドポイント] --tls
[プライマリエンドポイント]:6379>
  1. 設定変更後、クライアントからElastiCache for Redisクラスターへの接続をテストして、TLS接続が正常に機能していることを確認します。

4. 転送時の暗号化を必須にする

  1. 再度、[アクション]→[変更]をクリックします。

  2. 変更画面のセキュリティセクションにて、[転送中の暗号化モード]で必須に選択します。そのまま下の画面に遷移し、[変更をプレビュー]を選択します。

  3. プレビュー画面で変更の概要を確認します。問題がなければ、[変更]を選択します。

  4. クラスター詳細画面の[転送中の暗号化]が[有効]、[転送中の暗号化モード]が[必須]になっていることを確認します。

  5. クライアントからElastiCache for Redisクラスターへ正常に接続できることを確認します。

  6. SecurityHubにて、失敗しているリソースが0になっていること及びステータスが[成功]になっていることを確認します。
    ※リソースの更新には数分、ステータスの更新には1日程度かかります。

最後に

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

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

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

以上、おつまみ(@AWS11077)でした!

参考

ElastiCache の転送時の暗号化の条件 (TLS) - Amazon ElastiCache for Redis

ElastiCache for Redis クラスターへの接続のトラブルシューティング | AWS re:Post