Amazon SNS トピックを取得して Amazon RDS 通知を受け取るにはどうすればよいですか?
最終更新日: 2022 年 10 月 7 日
Amazon Simple Notification Service (Amazon SNS) トピックで Amazon Relational Database Service (Amazon RDS) の通知を受け取りたいと考えています。
解決方法
SNS トピックが暗号化されているかどうかを確認する
1. Amazon SNS コンソールを開きます。
2. ナビゲーションペインで [トピック] を選択し、RDS 通知を受信するトピックを選択します。
3. [Encryption] (暗号化) タブを選択します。
[Encryption] (暗号化) セクションに [Configured] (設定済み) が表示されている場合は、トピックが暗号化されています。AWS KMS キー (KMS キー) と KMS ARN も表示されます。
トピックが暗号化されている場合は、AWS KMS キーにアクセスするために必要な許可を Amazon RDS に付与します。詳細については、「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": "2008-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. [保存] を選択します。
関連情報
Encrypting messages published to Amazon SNS with AWS KMS (AWS KMS を使用して Amazon SNS に発行されたメッセージを暗号化する)