予算の通知に関する Amazon SNS トピックを作成する - AWS Billing and Cost Management

予算の通知に関する Amazon SNS トピックを作成する

Amazon Simple Notification Service (Amazon SNS) トピックに通知を送信する予算を作成する際は、既存の Amazon SNS トピックを用意するか、トピックを作成する必要があります。Amazon SNS トピックでは、E メールに加えて SNS 経由で通知を送信できます。予算には、トピックに通知を送信するための許可が必要です。

Amazon SNS トピックを作成し、予算に許可を付与するには、Amazon SNS コンソールを使用します。

Amazon SNS 通知トピックを作成し、許可を付与するには

  1. AWS Management Console にサインインし、Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. ナビゲーションペインで、[Topics] を選択します。

  3. [トピックの作成] を選択します。

  4. [名前] に通知トピックの名前を入力します。

  5. (オプション) [表示名] に、通知を受け取ったときに表示する名前を入力します。

  6. [アクセスポリシー] で、[Advanced] を選択します。

  7. ポリシーのテキストフィールドで、"Statement": [ の後に以下のテキストを追加します。

    { "Sid": "E.g., AWSBudgetsSNSPublishingPermissions", "Effect": "Allow", "Principal": { "Service": "budgets.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "your topic ARN" },
  8. E.g., AWSBudgetsSNSPublishingPermissions を文字列に置き換えます。Sid はポリシー内で一意であることが必要です。

  9. [トピックの作成] を選択します。

  10. [詳細] の下で、ARN を保存します。

  11. [Edit] を選択します。

  12. [アクセスポリシー] の下で、[トピック ARN] を、ステップ 10 の Amazon SNS トピック ARN と置き換えます。

  13. [Save changes] (変更を保存) をクリックします。

    トピックは [トピック] ページのトピックのリストに表示されます。

Troubleshooting

予算通知の Amazon SNS トピックを作成するときに、以下のエラーメッセージが表示されることがあります。

SNS ARN 形式に準拠してください

置き換えた ARN に構文エラーがあります (ステップ 9)。ARN の構文とフォーマットが正しいかどうかを確認します。

無効な SNS トピック

AWS Budgets には SNS トピックへのアクセス権がありません。SNS トピックのリソースベースのポリシーで、budgets.amazonaws.com にこの SNS トピックにメッセージを発行する機能を許可していることを確認します。

SNS トピックは暗号化されています

SNS トピックで [暗号化] を有効にしています。SNS トピックは、追加の許可がないと機能しません。トピックの暗号化を無効にし、[予算の編集] ページを更新します。

通知の確認メールを確認または再送信する

通知を使用して予算を作成すると、Amazon SNS 通知も作成されます。通知を送信するには、Amazon SNS 通知トピックへのサブスクリプションを承認する必要があります。

通知サブスクリプションが受け入れられていることを確認するか、サブスクリプション確認メールを再送信するには、Amazon SNS コンソールを使用します。

通知のステータスを確認するか、通知の確認メールを再送信するには

  1. AWS Management Console にサインインし、Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. ナビゲーションペインで [Subscriptions] を選択します。

  3. [Subscriptions] ページで、[Filter] に budget と入力します。予算通知のリストが表示されます。

  4. 通知のステータスを確認します。[Status (ステータス)] で、サブスクリプションが承認されず確認されていない場合は PendingConfirmation が表示されます。

  5. (オプション) 確認リクエストを再送信するには、確認が保留中のサブスクリプションを選択し、[リクエストの確認] を選択します。Amazon SNS により、通知にサブスクライブしているエンドポイントに確認リクエストが送信されます。

    エンドポイントの各所有者が E メールを受信したら、[サブスクリプションの確認] リンクを選択して通知を有効化する必要があります。

SSE と AWS KMS を用いて Amazon SNS 予算アラートデータを保護する

サーバー側の暗号化 (SSE) を使用すると、暗号化されたトピックで機密データを転送できます。SSE では、AWS Key Management Service (AWS KMS) で管理されているキーを使用して Amazon SNS メッセージが保護されます。

AWS Management Console または AWS サービス開発キット (SDK) を使用して SSE を管理するには、Amazon Simple Notification Service 入門ガイドの「Amazon SNS トピックのサーバー側の暗号化 (SSE) を有効にする」を参照してください。

AWS CloudFormation を使用して暗号化されたトピックを作成するには、AWS CloudFormation ユーザーガイドを参照してください。

Amazon SNS が受信したメッセージはすぐに、SSE によって暗号化されます。メッセージは暗号化されて保存され、送信時にのみ Amazon SNS を使用して復号化されます。

AWS KMS 許可を設定する

SSE を使用する前に、AWS KMS キーポリシーを設定する必要があります。この設定により、トピックを暗号化できるだけでなく、メッセージを暗号化および復号できます。AWS KMS 許可については、AWS Key Management Service デベロッパーガイドの「AWS KMS API 許可: アクションとリソースのリファレンス」を参照してください。

IAM ポリシーを使用して AWS KMS キーの許可を管理することもできます。詳細については、「AWS KMS での IAM ポリシーの使用」を参照してください。

注記

Amazon SNS との間でメッセージを送受信するためのグローバル許可を設定できますが、AWS KMS では、特定のリージョンの AWS KMS keys (KMS キー) の完全な ARN を指定する必要があります。これは、IAM ポリシーの [リソース] セクションにあります。

KMS キーのキーポリシーで必要な許可を付与していることを確認する必要があります。そのためには、Amazon SNS で暗号化されたメッセージを作成するプリンシパルと消費するプリンシパルをユーザーとして KMS キーポリシーで指定します。

AWS Budgets トピックと暗号化された Amazon SNS トピック間の互換性を有効にするには

  1. KMS キーを作成します

  2. KMS キーポリシーに以下のテキストを追加します。

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "budgets.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" }] }
  3. SNS トピックに対して SSE を有効にします

    注記

    暗号化された Amazon SNS トピックに公開するための許可を AWS Budgets に付与するものと同じ KMS キーを使用していることを確認します。

  4. [Save Changes] を選択します。