该错误告诉您,您的 IAM 用户“sms-testing”无权发布到 SNS (SNS:Publish) 到该资源。您的 IAM 用户可能根本没有 SNS:Publish 权限,这意味着您无法发布任何内容。如果是这种情况,您只需将以下 IAM 策略添加到您的用户,或将该策略添加到您的 IAM 用户所属的 IAM 组。
下面的链接应将您直接转到 IAM 控制台,以编辑“sms-testing”用户的权限。下面还有一个示例策略,允许 IAM 用户向 SNS 发布任何内容(SMS、主题、终端节点等)。
如果要稍微锁定权限,可以修改“资源”并指定特定的 SNS 资源,如 Topic 或应用程序 arn。如果您无法编辑 IAM 用户策略,则需要让管理员为您添加此策略。
修改您的 IAM 用户:https://console.aws.amazon.com/iam/home?region=us-east-1#users/sms-testing
允许 SNS 发布到所有资源的示例策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sns:Publish"
],
"Resource": "*"
}
]
}
由于SNS没有SMS资源,因此您可以进行一些黑客攻击并“拒绝”所有SNS发布到主题和平台应用程序,然后允许发布到其余部分,仅留下SMS(目前)。
下面是一个示例策略,该策略仅允许发布到 SMS 并拒绝发布到主题和应用程序(推送通知):
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"sns:Publish"
],
"Resource": "arn:aws:sns:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"sns:Publish"
],
"Resource": "*"
}
]
}
希望有所帮助。
-丹尼斯