Amazon SNS の毎日の SMS 使用状況レポートにサブスクライブする - Amazon Simple Notification Service

Amazon SNS の毎日の SMS 使用状況レポートにサブスクライブする

Amazon SNS から毎日の使用状況レポートにサブスクライブすることによって、SMS 配信をモニタリングできます。1 つ以上の SMS メッセージを送信する日ごとに、Amazon SNS は、指定した Amazon S3 バケットに CSV ファイルとして使用状況レポートを配信します。SMS 使用状況レポートが Amazon S3 バケットで利用可能になるまでに、24 時間かかります。

毎日の使用状況レポートの情報

使用状況レポートには、アカウントから正常に配信した各 SMS メッセージに関する以下の情報が含まれています。

このレポートには、オプトアウトした受取人に送信されるメッセージは含まれない点に注意してください。

  • メッセージの発行時間 (UTC)

  • メッセージ ID

  • 送信先電話番号

  • メッセージの種類

  • 配信ステータス

  • メッセージの価格 (USD)

  • パート番号 (1 通のメッセージとして長すぎる場合、メッセージは複数のパートに分割されます)

  • パートの総数

注記

Amazon SNS がパート番号を受け取らなかった場合は、その値をゼロに設定します。

毎日の使用状況レポートにサブスクライブする

毎日の使用状況レポートにサブスクライブするには、適切なアクセス権限を持つ Amazon S3 バケットを作成する必要があります。

毎日の使用状況レポート用の Amazon S3 バケットを作成するには
  1. SMS メッセージを送信する AWS アカウント から、Amazon S3 コンソールにサインインします。

  2. [バケットの作成] を選択します。

  3. [バケット名] には、アカウントと組織で一意の名前を入力することをお勧めします。例えば、パターン <my-bucket-prefix>-<account_id>-<org-id> を使用します。

    バケット名に関する規則と制限については、『Amazon Simple Storage Service ユーザーガイド』の「バケットの命名規則」を参照してください。

  4. [作成] を選択します。

  5. [すべてのバケット]テーブルでバケットを選択します。

  6. [Permissions] セクションで、[バケットポリシー] を選択します。

  7. [バケットポリシーエディター] ウィンドウで、Amazon SNS サービスプリンシパルをバケットに書き込むことを許可するポリシーを指定します。例については、バケットポリシーの例を参照してください。

    サンプルポリシーを使用する場合は、my-s3-bucket をステップ 3 で選択したバケット名に置き換えてください。

  8. [保存] を選択します。

毎日の使用状況レポートにサブスクライブするには
  1. Amazon SNS コンソールにサインインします。

  2. ナビゲーションパネルで、[テキストメッセージング (SMS)] を選択します。

  3. [テキストメッセージング (SMS)] ページの [テキストメッセージングの設定] セクションで、[編集] を選択します。

    Amazon SNS コンソールのテキストメッセージングの優先設定セクション
  4. [テキストメッセージングの設定の編集] ページの [詳細] セクションで、[使用状況レポートに使用する Amazon S3 バケット名] を指定します。

    Amazon SNS コンソールの [テキストメッセージングの優先設定の編集] ページの [詳細] セクション
  5. [Save changes] (変更の保存) をクリックします。

バケットポリシーの例

以下のポリシーは、Amazon SNS サービスプリンシパルにs3:PutObjects3:GetBucketLocation および s3:ListBucket アクションの実行を許可します。

AWS は、お客様のアカウントのリソースへのアクセスを与えられたサービスプリンシパルを持つすべてのサービスを目的としたツールを提供します。Amazon S3 バケットポリシーステートメントのプリンシパルが混乱した代理攻撃の問題にある場合。バケットが毎日の使用状況レポートを受信できるリージョンとアカウントを制限するには、以下の例のように aws:SourceArn を使用します。これらのレポートを生成できるリージョンを制限したくない場合は、aws:SourceAccount を使用して、レポートを生成しているアカウントに基づいて制限します。リソースの ARN が不明の場合は、aws:SourceAccount を使用してください。

Amazon S3 バケットを作成して、Amazon SNS から毎日の SMS 使用状況レポートを受信する際に、混乱した代理保護を含む次の例を使用します。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowPutObject", "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "aws:SourceAccount": "account_id" }, "ArnLike": { "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*" } } }, { "Sid": "AllowGetBucketLocation", "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "s3:GetBucketLocation", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": "account_id" }, "ArnLike": { "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*" } } }, { "Sid": "AllowListBucket", "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": "account_id" }, "ArnLike": { "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*" } } } ] }
注記

Amazon S3 ポリシーの Condition エレメントで指定される AWS アカウント に所有される Amazon S3 バケットに使用状況レポートを発行できます。他の AWS アカウントが所有する Amazon S3 バケットに使用状況レポートを発行するには、「Amazon S3 オブジェクトを別の AWS アカウントからコピーする方法」を参照してください。

毎日の使用状況レポートの例

毎日の使用状況レポートにサブスクライブすると、Amazon SNS は毎日、以下の場所に使用状況データを使用して CSV ファイルを配置します。

<my-s3-bucket>/SMSUsageReports/<region>/YYYY/MM/DD/00x.csv.gz

各ファイルには、最大 50,000 のレコードを含めることができます。1 日のレコードがこの限度を超えると、Amazon SNS は複数のファイルを追加します。レポートの例を以下に示します。

PublishTimeUTC,MessageId,DestinationPhoneNumber,MessageType,DeliveryStatus,PriceInUSD,PartNumber,TotalParts 2016-05-10T03:00:29.476Z,96a298ac-1458-4825-a7eb-7330e0720b72,1XXX5550100,Promotional,Message has been accepted by phone carrier,0.90084,0,1 2016-05-10T03:00:29.561Z,1e29d394-d7f4-4dc9-996e-26412032c344,1XXX5550100,Promotional,Message has been accepted by phone carrier,0.34322,0,1 2016-05-10T03:00:30.769Z,98ba941c-afc7-4c51-ba2c-56c6570a6c08,1XXX5550100,Transactional,Message has been accepted by phone carrier,0.27815,0,1