Pil*_*lou 4 amazon-web-services amazon-sns amazon-iam
我想设置 IAM 策略以允许用户发布到 SNS 以发送 SMS 并发布到特定的 SNS arn。
我找到了一种允许 SMS 发布而不允许任何 SNS 发布的方法: 使用 AmazonSNSClient 发送文本消息时的授权
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"sns:Publish"
],
"Resource": "arn:aws:sns:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"sns:Publish"
],
"Resource": "*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
但是此政策明确拒绝所有其他 SNS 发布,因此我无法添加允许特定 SNS 的政策。
问题是 SMS 发布没有特定的 arn。
所以我正在寻找条件以找到一种方法来限制只允许发布 SMS。但是特定的 SMS 参数(电话号码参见https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#publish-property)无法在条件中过滤:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "sns:Publish",
"Resource": "*",
"Condition": {"Null":{"PhoneNumber":"false"}}
}
]
}
Run Code Online (Sandbox Code Playgroud)
有没有办法完成这样的政策?
Pil*_*lou 11
实际上,为了解决这个问题,我找到了一种使用NotResourceJSON 策略元素 ( spec )允许的方法。我使用此属性来匹配没有 ARN 的资源:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sns:Publish"
],
"NotResource": "arn:aws:sns:*:*:*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
有了这个技巧,我可以允许所有sns发布而没有ARN(但我不知道是否还有其他服务然后SMS......)。
这也允许我在另一个策略中允许特定的 ARN。
| 归档时间: |
|
| 查看次数: |
2173 次 |
| 最近记录: |