用于接收每日 SMS 使用报告的 Amazon S3 策略 - 不起作用

Amazon S3 policy to receive Daily SMS usage reports - not working

我们已将 S3 存储桶配置为从 AWS SNS 接收每日 SMS 使用报告。

但是 S3 存储桶没有收到任何报告。

这是我们使用的政策:

{
    "Version": "2012-10-17",
    "Id": "sns-sms-daily-usage-policy",
    "Statement": [
        {
            "Sid": "AllowPutObject",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::bucket-name/*"
        },
        {
            "Sid": "AllowGetBucketLocation",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:GetBucketLocation",
            "Resource": "arn:aws:s3:::bucket-name"
        }
    ]
}

为了对此进行测试,我执行了以下操作:

  • 创建了一个 Amazon S3 存储桶
  • 应用了上述存储桶策略(替换我的存储桶名称)
  • 在 Amazon SNS 中,将 SMS 使用情况报告配置为传送到此存储桶
  • 发送短信
  • 等了两天

报告终于出现在我的 S3 存储桶中,名为:

SMSUsageReports/ap-southeast-2/2018/10/31/001.csv.gz

内容是:

PublishTimeUTC,MessageId,DestinationPhoneNumber,MessageType,DeliveryStatus,PriceInUSD,PartNumber,TotalParts
2018-10-31T06:40:29.247Z,xxx,+61xxx,Promotional,Message has been accepted by phone,0.05878,1,1

所以,好像要很久才能到,但确实到了。

我还注意到发送到美国号码的前 100 条短信是免费的,所以免费短信可能不会生成使用报告(但我使用的是非美国号码,所以我没有知道是不是这种情况)。