

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon ElastiCache クラスターの保存時の暗号化をモニタリングする
<a name="monitor-amazon-elasticache-clusters-for-at-rest-encryption"></a>

*Abhishek A"、Amazon Web Services*

## 概要
<a name="monitor-amazon-elasticache-clusters-for-at-rest-encryption-summary"></a>

Amazon ElastiCache は、高パフォーマンス、拡張性、コストパフォーマンスの高いキャッシュソリューションを提供するAmazon Web Services (AWS) サービスで、インメモリデータストアやキャッシュ環境をクラウドに分散します。スループットが高く、レイテンシーが低いメモリ内データストアからデータを取得します。この機能により、キャッシュ、セッションストア、ゲーム、地理空間サービス、リアルタイム分析、キューイングなどのリアルタイムユースケースによく利用されています。ElastiCache には Redis データストアと Memcached データストアがあり、どちらもミリ秒未満の応答時間を実現します。

データ暗号化は、権限のないユーザーがRedisクラスターや関連するキャッシュストレージシステムで利用可能な機密データを読み取ることを防ぐのに役立ちます。このデータには、*保管中のデータ*と呼ばれる、永続的なメディアに保存されているデータや、*転送中のデータ*と呼ばれる、ネットワークを介した転送の間に傍受される可能性のあるデータが含まれます。

`AtRestEncryptionEnabled`****パラメータを に設定することで、レプリケーショングループの作成時に ElastiCache (Redis OSS) の保管時の暗号化を有効にできます`true`。このパラメータを有効にすると、同期、バックアップ、スワップ操作中にディスクが暗号化され、Amazon Simple Storage Service (Amazon S3) に保存されたバックアップが暗号化されます。既存のレプリケーショングループ上で保管時の暗号化を有効にすることはできません。レプリケーショングループを作成するときに、以下の 2 つの方法で保管中の暗号化を有効にすることができます
+ **[デフォルト]** オプションを選択すると、保存時にはサービス管理型の暗号化が使用されます。
+ カスタマーマネージドキーを使用して、 AWS Key Management Service () からキー ID または Amazon リソースネーム (ARN) を指定しますAWS KMS。

このパターンは、API コールをモニタリングし、 `CreateReplicationGroup`オペレーションで Amazon EventBridge Events イベントを生成するセキュリティコントロールを提供します。このイベントは、Python スクリプトを実行する AWS Lambda 関数を呼び出します。関数は、イベント JSON 入力からレプリケーショングループ ID を取得し、次のチェックを実行して、暗号化されていないクラスターがあるかどうかを確認します。
+ `AtRestEncryptionEnabled`****キーが存在するかどうかを確認します。
+ `AtRestEncryptionEnabled`****存在する場合、 は 値をチェックして、それが かどうかを確認します`true`。
+ `AtRestEncryptionEnabled`****値が に設定されている場合`false`、 は Amazon Simple Notification Service (Amazon SNS) 通知を使用して、違反を追跡し、指定した E メールアドレスに違反メッセージを送信する変数を設定します。

## 前提条件と制限
<a name="monitor-amazon-elasticache-clusters-for-at-rest-encryption-prereqs"></a>

**前提条件**
+ アクティブ AWS アカウント。
+ 提供されたLambda コードをアップロードする S3 バケットに
+ 違反の通知を受信するメールアドレス
+ すべての API ログにアクセスするための ElastiCache ロギングが有効になっています。

**制限事項**
+ この検出コントロールはリージョン別であり、モニタリング AWS リージョン する各 にデプロイする必要があります。
+ コントロールは、仮想プライベートクラウド (VPC) で実行中のレプリケーショングループをサポートします。
+ このコントロールは、以下のノードタイプを実行するレプリケーショングループをサポートします。
  + R7g、R6gd、R6g、R5、R4、R3
  + M7g、M6g、M5、M4、M3
  + T4g、T3、T2
  + C7gn

**製品バージョン**
+ ElastiCache (Redis OSS) バージョン 3.2.6 以降、および Valkey 7.2 以降をサポート

## アーキテクチャ
<a name="monitor-amazon-elasticache-clusters-for-at-rest-encryption-architecture"></a>

**ワークフローアーキテクチャ**

![\[ElastiCache クラスターをモニタリングするためのワークフロー。\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/2917ebc2-3cfe-4530-887d-2c7eb7085453/images/59a36936-e9a8-4f12-a49d-776ff7959053.png)


1. ユーザーは、、 AWS Command Line Interface (AWS CLI) AWS マネジメントコンソール、または API コールを通じて ElastiCache レプリケーショングループを起動します。

1. `CreateReplicationGroup `API が呼び出されると、ElastiCache は EventBridge イベントを生成します。

1. EventBridge ルールは、コンプライアンスチェックのために Lambda 関数をトリガーして呼び出します。

1. Lambda 関数はイベントを処理し、ElastiCache クラスターで保管時の暗号化が有効になっているかどうかを確認します。

1. 暗号化違反が検出されると、Lambda 関数は SNS トピックに通知メッセージを発行します。

1. Amazon SNS は、暗号化コンプライアンス違反に関する E メール通知を管理者に送信します。

**自動化とスケール**
+ を使用している場合は AWS Organizations、[AWS CloudFormation StackSets ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)を使用して、モニタリングする複数のアカウントにこのテンプレートをデプロイできます。

## ツール
<a name="monitor-amazon-elasticache-clusters-for-at-rest-encryption-tools"></a>

**AWS のサービス**
+ [Amazon ElastiCache ](https://docs.aws.amazon.com/elasticache/)は、 AWS クラウドにおける分散インメモリキャッシュ環境のセットアップ、管理、スケーリングを容易にします。分散キャッシュ環境のデプロイと管理に伴う複雑さを排除しながら、高性能、サイズ変更可能、費用対効果の高いインメモリキャッシュを提供します。ElastiCache は Redis エンジンと Memcached エンジンの両方で動作します。
+ [AWS CloudFormation](https://aws.amazon.com/cloudformation/) は、 AWS リソースのモデル化とセットアップ、迅速かつ一貫したプロビジョニング、ライフサイクル全体の管理に役立ちます。リソースを個別に管理する代わりに、テンプレートを使用してリソースとその依存関係を記述し、それらをスタックとしてまとめて起動して設定できます。複数の および にまたがるスタックを管理 AWS アカウント およびプロビジョニングできます AWS リージョン。
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/) は、 AWS リソースの変更を記述するシステムイベントのほぼリアルタイムのストリームを提供します。EventBridge は、運用上の変更が発生するとそれを認識し、必要に応じて修正措置を講じます。そのためには、環境への応答、関数のアクティブ化、変更、状態情報の取得のためのメッセージを送信します。
+ [AWS Lambda](https://aws.amazon.com/lambda/) は、サーバーのプロビジョニングや管理を行わずにコードの実行を支援できるコンピューティングサービスです。Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケールします。課金は実際に消費したコンピューティング時間に対してのみ発生します。コードが実行されていない場合、料金は発生しません。 
+ [Amazon SNS](https://aws.amazon.com/sns/) は、ウェブサーバーや E メールアドレスなど、パブリッシャーとクライアント間のメッセージの送信を調整および管理します。サブスクライバーは、サブスクライブしているトピックに対して発行されたすべてのメッセージを受信します。また、同じトピックのサブスクライバーはすべて同じメッセージを受信します。

**Code**

このパターンのコードは、保管時の暗号化リポジトリ用の GitHub Monitor Amazon ElastiCache クラスターで使用できます。 [ Amazon ElastiCache ](https://github.com/aws-samples/sample-Monitor_Amazon_ElastiCache_clusters_for_at-rest_encryption) リポジトリ内のファイルの使用方法については、[「エピック」セクション](#monitor-amazon-elasticache-clusters-for-at-rest-encryption-epics)を参照してください。

## ベストプラクティス
<a name="monitor-amazon-elasticache-clusters-for-at-rest-encryption-best-practices"></a>

**デプロイメント**
+ このコントロールをデプロイする前に、 AWS CloudTrail が ElastiCache API コールをログに記録していることを確認します。
+ これはリージョン別のコントロールであり、ElastiCache を使用する各 AWS リージョン にコントロールをデプロイします。
+ ソリューションを本番環境にデプロイする前に、開発/テスト環境でソリューションを検証します。

**セキュリティ**
+ 暗号化キーの制御を強化するには、カスタマーマネージド KMS キーを使用します。
+  AWS Identity and Access Management (IAM) アクセス許可を確認して、Lambda 実行ロールの最小特権アクセスを確認します。
+ デッドレターキュー内のメッセージのアラートを設定します。

**オペレーション**
+ コンプライアンスのニーズとコストのバランスを取るために、適切なログ保持を設定します。
+ Lambda の予約済み同時実行数を調整して、ElastiCache の作成頻度に基づいて調整します。
+ チーム通知のために、複数の E メールアドレスを Amazon SNS にサブスクライブします。

**モニタリング**
+ Amazon CloudWatch アラームを確認して、アラームのしきい値が運用上のニーズと一致していることを確認します。
+ Lambda メトリクスの実行期間とエラー率を定期的にモニタリングします。
+ 違反を定期的に監査して、暗号化コンプライアンス通知を確認します。

## エピック
<a name="monitor-amazon-elasticache-clusters-for-at-rest-encryption-epics"></a>

### セキュリティコントロールをデプロイ
<a name="deploy-the-security-control"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| GitHub からコードをダウンロードします。 | GitHub から[コードリポジトリ](https://github.com/aws-samples/sample-Monitor_Amazon_ElastiCache_clusters_for_at-rest_encryption)をクローンまたはダウンロードします。リポジトリには、 ファイル`index.py`と が含まれています`elasticache_encryption_at_rest.yml`。 | クラウドアーキテクト | 
| Lambda デプロイパッケージを作成します。 | Python コードから 2 つの .zip ファイルを作成します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/monitor-amazon-elasticache-clusters-for-at-rest-encryption.html) | クラウドアーキテクト | 
| S3 バケットにコードをアップロードします。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/monitor-amazon-elasticache-clusters-for-at-rest-encryption.html) | クラウドアーキテクト  | 
|  CloudFormation テンプレートをデプロイします。 | S3 バケット AWS リージョン と同じ で[CloudFormation コンソール](https://console.aws.amazon.com/cloudformation/)を開き、コードリポジトリで提供されている`elasticache_encryption_at_rest.yml`ファイルをデプロイします。次のエピックでは、テンプレートパラメータの値を指定します。 | クラウドアーキテクト  | 

### CloudFormation テンプレートのパラメータを入力します。
<a name="complete-the-parameters-in-the-cloudformation-template"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| S3 バケット名を入力します。 | 最初のエピックで作成または選択した S3 バケットの名前を入力します。この S3 バケットには Lambda コードの .zip ファイルが含まれており、評価される CloudFormation テンプレートおよびリソース AWS リージョン と同じ にある必要があります。  | クラウドアーキテクト | 
| S3 キーを入力します。 | S3 バケット内の Lambda コードの.zip ファイルの場所を、先頭にスラッシュを付けずに指定します (例えば、`ElasticCache-EncryptionAtRest.zip`、`controls/ElasticCache-EncryptionAtRest.zip`)。 | クラウドアーキテクト  | 
| メールアドレスを入力します。 | 違反の通知を受信するメールアドレスを入力します。  | クラウドアーキテクト | 
| ログレベルを指定します。 | ログ記録レベルと詳細度を指定します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/monitor-amazon-elasticache-clusters-for-at-rest-encryption.html) | クラウドアーキテクト  | 

### サブスクリプションを確認
<a name="confirm-the-subscription"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| メールサブスクリプションを確認します。 |  CloudFormation テンプレートが正常にデプロイされると、指定した E メールアドレスにサブスクリプションメッセージを送信します。通知を受信するには、この E メールのサブスクリプションを確認する必要があります。 | クラウドアーキテクト | 

## トラブルシューティング
<a name="monitor-amazon-elasticache-clusters-for-at-rest-encryption-troubleshooting"></a>


| 問題 | ソリューション | 
| --- | --- | 
| ** **Lambda 関数がトリガーされない | **症状**: ElastiCache クラスターを作成または変更した後、CloudWatch にログがない。**解決方法:**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/monitor-amazon-elasticache-clusters-for-at-rest-encryption.html) | 
| E メール通知なし | **症状**: Lambda 関数は正常に実行されますが、E メール通知は送信されません。**解決方法:**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/monitor-amazon-elasticache-clusters-for-at-rest-encryption.html) | 
| アクセス許可の問題 | **症状**: Lambda 関数 CloudWatch ログの*アクセス拒否*エラー。**解決方法:**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/monitor-amazon-elasticache-clusters-for-at-rest-encryption.html) | 

## 関連リソース
<a name="monitor-amazon-elasticache-clusters-for-at-rest-encryption-resources"></a>
+ [CloudFormation コンソールからスタックを作成する](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) (CloudFormation ドキュメント)
+ [ElastiCache (Redis OSS) での保管時の暗号化](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/at-rest-encryption.html) (ElastiCache ドキュメント)