

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

# AWS KMS キーのキーの状態が変更されたときに Amazon SNS 通知を受け取る
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes"></a>

*Amazon Web Services、Shubham Harsora、Aromal Raj Jayarajan、Navdeep Pareek*

## 概要
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-summary"></a>

AWS Key Management Service (AWS KMS) キーに関連付けられているデータとメタデータは、キーが削除されると失われます。削除は元に戻せず、失われたデータ (暗号化されたデータを含む) を回復することはできません。AWS KMS キーの「[キーステータス](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html#key-state-cmk-type)」の変更を通知する通知システムを設定することで、データ損失を防ぐことができます。

このパターンは、Amazon EventBridge と Amazon Simple Notification Service (Amazon SNS) を使用して AWS KMS キーのキーの状態が `Disabled` または `PendingDeletion` に変わるたびに自動通知を発行することで、AWS KMS キーのステータス変化を監視する方法を示しています。たとえば、ユーザーが AWS KMS キーを無効化または削除しようとすると、試行されたステータス変更の詳細が記載されたメール通知が届きます。このパターンを使用して、AWS KMS キーの削除をスケジュールすることもできます。

## 前提条件と制限
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-prereqs"></a>

**前提条件**
+ AWS Identity and Access Management (IAM) ユーザーがいるアクティブな AWS アカウント
+ 「[AWS KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html)」

## アーキテクチャ
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-architecture"></a>

テクノロジースタック
+ Amazon EventBridge
+ AWS Key Management Service (AWS KMS)
+ Amazon Simple Notiﬁcation Service (Amazon SNS)

**ターゲットアーキテクチャ**

次の図は、AWS KMS キーの状態の変化を検出するための自動モニタリングおよび通知プロセスを構築するためのアーキテクチャを示しています。

![\[モニタリングと通知の自動化プロセスを構築するためのアーキテクチャ\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/2534df87-a6fd-4360-9b5d-4a8b1f533de3/images/0cb6a6b0-405b-4d26-ad04-2067176aa086.png)


この図表は、次のワークフローを示しています:

1. ユーザーが AWS KMS キーの削除を無効化またはスケジュールします。

1. EventBridge ルールは、スケジュール `Disabled` または `PendingDeletion` イベントを評価します。

1. EventBridge ルールは Amazon SNS トピックを呼び出します。

1. Amazon SNS はユーザーに E メール通知メッセージを送信します。

**注記**  
E メールメッセージを組織のニーズに合わせてカスタマイズできます。AWS KMS キーが使用されているエンティティに関する情報を含めることをお勧めします。これにより、ユーザーは AWS KMS キーを削除した場合の影響を理解できます。AWS KMS キーが削除される 1 日または 2 日前に送信されるリマインダーメール通知をスケジュールすることもできます。

**自動化とスケール**

AWS CloudFormation スタックは、このパターンが機能するために必要なすべてのリソースとサービスをデプロイします。このパターンは、1 つのアカウントに個別に実装することも、「[AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)」を使用して AWS Organizations の複数の独立したアカウントまたは「[組織単位](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_ous.html)」に実装することもできます。

## ツール
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-tools"></a>
+ 「[AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)」を使用すると、AWS リソースをセットアップし、迅速かつ一貫したプロビジョニングを行い、AWS アカウントと AWS リージョンにわたってライフサイクル全体にわたってリソースを管理できます。このパターンの CloudFormation テンプレートは、必要なすべての AWS リソースを記述し、CloudFormation はそれらのリソースをプロビジョニングして構成してくれる。
+ 「[Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)」は、アプリケーションをさまざまなソースのリアルタイムデータに接続できるようにするサーバーレスイベントバスサービスです。EventBridge は、お客様独自のアプリケーション、AWS のサービスからリアルタイムデータのストリームを配信し、そのデータを AWS Lambda などのターゲットにルーティングします。EventBridge は、イベント駆動型アーキテクチャを構築するプロセスを簡素化します。
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) は、データの保護に役立つ暗号キーを作成および管理する上で役立ちます。
+ 「[Amazon Simple Notiﬁcation Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)」は、ウェブサーバーやメールアドレスなど、パブリッシャーとクライアント間のメッセージの交換を調整および管理するのに役立ちます。

**Code**

このパターンのコードは、GitHub 内の「[Monitor の AWS KMS キー無効化および予定削除](https://github.com/aws-samples/aws-kms-deletion-notification)」リポジトリで利用できます。

## エピック
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-epics"></a>

### CloudFormation テンプレートをデプロイする
<a name="deploy-the-cloudformation-template"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| リポジトリのクローン作成 | 以下のコマンドを実行して、GitHub「[Monitor AWS KMS キー無効化およびスケジュール削除](https://github.com/aws-samples/aws-kms-deletion-notification)」リポジトリをローカルマシンに複製します。`git clone https://github.com/aws-samples/aws-kms-deletion-notification` | AWS 管理者、クラウドアーキテクト | 
| テンプレートのパラメータを更新します。 | コードエディターで、リポジトリから複製した `Alerting-KMS-Events.yaml` CloudFormation テンプレートを開き、次のパラメーターを更新します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.html) | AWS 管理者、クラウドアーキテクト | 
| CloudFormation のテンプレートをデプロイします。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.html) | AWS 管理者、クラウドアーキテクト | 

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


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| サブスクリプションメールを確認します。 | CloudFormation のテンプレートが正常にデプロイされると、Amazon SNS は CloudFormation テンプレートで指定されたメールアドレスにサブスクリプションの確認メッセージを送信します。通知を受信するには、このメールのサブスクリプションを確認する必要があります。詳細については、Amazon SNS 開発者ガイドの「[サブスクリプションの確認](https://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.confirm.html)」を参照してください。 | AWS 管理者、クラウドアーキテクト | 

### サブスクリプション通知をテストする
<a name="test-the-subscription-notification"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| AWS KMS キーを無効にします。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.html) | AWS 管理者 | 
| サブスクリプションを検証します。 | Amazon SNS の通知メールが届いたことを確認します。 | AWS 管理者 | 

### リソースをクリーンアップする
<a name="clean-up-resources"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| CloudFormation スタックを削除します。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.html) | AWS 管理者 | 

## 関連リソース
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-resources"></a>
+ 「[AWS CloudFormation](https://aws.amazon.com/cloudformation/)」(AWS ドキュメント)
+ 「[AWS CloudFormation コンソールでのスタックの作成](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)」(AWS CloudFormation ドキュメント)
+ 「[AWS でのイベント駆動型アーキテクチャの構築](https://catalog.us-east-1.prod.workshops.aws/workshops/63320e83-6abc-493d-83d8-f822584fb3cb/en-US)」(AWS Workshop Studio ドキュメント)
+ 「[AWS Key Management Service ベストプラクティス](https://d1.awsstatic.com/whitepapers/aws-kms-best-practices.pdf)」(AWS ホワイトペーパー)
+ 「[AWS Key Management Service のセキュリティベストプラクティス](https://docs.aws.amazon.com/kms/latest/developerguide/best-practices.html)」(AWS KMS 開発者ガイド)

## 追加情報
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-additional"></a>

Amazon SQS は、デフォルトで送信中の暗号化を提供します。キュリティのベストプラクティスに合わせて、AWS KMS カスタマーマネージドキーを使用して Amazon SNS のサーバー側の暗号化を有効にすることもできます。