Amazon Simple Notification Service (Amazon SNS) トピックに Amazon Relational Database Service (Amazon RDS) の通知を受信させたいです。
解決策
SNS トピックが暗号化されているか確認する
1. Amazon SNSコンソールを開きます。
2. ナビゲーションパネルで [トピック] を選択し、RDS 通知を受信するトピックを選択します。
3. [暗号化] タブを選択します。
[暗号化] セクションに [設定済み] と表示されている場合、トピックは暗号化されています。また、[AWS KMS キー (KMS キー)] と [KMS ARN] も表示されます。
トピックが暗号化されている場合は、Amazon RDS に AWS KMS キーへのアクセスに必要なアクセス権限を付与します。詳細については、AWS サービスのイベントソースと暗号化されたトピック間の互換性を有効にするを参照してください。
注: 暗号化されたトピックが Amazon RDS 通知を受信するには、[ AWS KMS キー] を使用して SNS トピックを暗号化する必要があります。AWS KMS キーポリシーを変更して、オペレーションのアクセス許可 ([kms:generateDataKey*] と [kms:Decrypt]) を追加する必要があります。
トピックが暗号化されていない場合は、この記事の「SNS トピックのアクセスポリシーを検証する」セクションに進んでください。
SNS トピックのアクセスポリシーを検証する
SNS アクセスポリシーには、Amazon RDS が SNS トピックにイベントを公開することを許可する権限が必要です。
1. Amazon SNSコンソールを開きます。
2. ナビゲーションパネルで [トピック] を選択し、RDS 通知を受信するトピックを選択します。
3. [アクセスポリシー] タブを選択します。
SNS アクセスポリシーで Amazon RDS が SNS トピックにイベントを公開することを許可していない場合は、次の手順を実行してポリシーを更新してください。
1. トピックページの [詳細] セクションで、[編集] を選択します。
2. [アクセスポリシー]セクションを展開し、前述のポリシーをコピーして JSON エディターに貼り付けます。
3. [変更を保存] を選択します。
{
"Version": "2012-10-17",
"Id": "SNSAccessPolicy",
"Statement": [
{
"Sid": "PolicyForRDSToSNS",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "SNS:Publish",
"Resource": "your-SNS-topic-ARN",
"Condition": {
"ArnLike": {
"aws:SourceArn": "arn:aws:rds:your-AWS-region:your-AWS-account-ID:*"
}
}
}
]
}
**注:**ポリシー内のプレースホルダー値を自分の値で更新します。
RDS イベント通知に、予定しているイベントのタイプに適したカテゴリが選択されていることを確認します。
必要な通知に適した [カテゴリ] を選択してください。たとえば、インスタンスの再起動とシャットダウンの通知を受け取りたい場合は、[アベイラビリティ] カテゴリとインスタンスをイベントソースとして選択します。[アベイラビリティ] カテゴリには次のイベントが含まれます。
- 「RDS-EVENT-0006 : DB インスタンスが再起動しました」
- 「RDS-EVENT-0004 : DB インスタンスのシャットダウン」
- 「RDS-EVENT-0022 : MySQL または MariaDB の再起動中にエラーが発生しました」
イベントサブスクリプションの設定を確認します。
1. Amazon RDS コンソールを開きます。
2. ナビゲーションパネルで [イベントサブスクリプション] を選択し、次にイベントサブスクリプションを選択します。
3. サブスクリプションページの [イベントサブスクリプションの詳細] セクションで、次のフィールドの値に注意してください。 [ソースタイプ]、[ソース]、[イベントカテゴリ]。
4. ユースケースに合ったイベントの種類に適したソースとイベントカテゴリを選択します。
イベントサブスクリプションの設定を編集します。
**注:**以下のステップは、すべてのインスタンスリソースとシャットダウンの通知を受け取りたいシナリオを想定しています。サポートされているさまざまなタイプのイベントとそのカテゴリの詳細については、Amazon RDS イベントカテゴリとイベントメッセージを参照してください。
1. Amazon RDS コンソールのナビゲーションパネルで、[イベントサブスクリプション] を選択し、次にイベントサブスクリプションを選択します。
2. サブスクリプションページで、[アクション]、[編集] を選択します。
3. [ソース] セクションの [ソースタイプ] で、「[インスタンス] を選択します。
4. [含めるインスタンス] には [すべてのインスタンス] を選択します。
5. [含めるイベントカテゴリ] で、[特定のイベントカテゴリを選択] を選択します。
6. [特定のイベントカテゴリー] については、[アベイラビリティ] を選択します。
7. [保存] を選択します。
関連情報
Amazon SNS にパブリッシュされたメッセージを AWS KMS で暗号化する