Amazon web services AWS SNS策略IP地址访问
在SNS中,我设置了一个主题 在IAM中,我设置了一个策略,允许仅从特定IP地址访问ARN主题:Amazon web services AWS SNS策略IP地址访问,amazon-web-services,amazon-iam,amazon-sns,Amazon Web Services,Amazon Iam,Amazon Sns,在SNS中,我设置了一个主题 在IAM中,我设置了一个策略,允许仅从特定IP地址访问ARN主题: { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "sns:Publish", "sn
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"sns:Publish",
"sns:Subscribe"
],
"Resource": "arn:aws:sns:us-east-1:111111111111:topic_name",
"Condition": {
"IpAddress": {
"aws:SourceIp": "xxx.xxx.xxx.x"
}
}
}
]
}
我已将此策略附加到一个组,并向该组添加了一个用户
从C#windows应用程序中,我现在可以从策略中列出的指定SourceIp订阅和发布主题
但是在这种情况下,我需要使用IAM用户的AccessKey和SecretAccessKey
只要SourceIp正确,有没有一种方法可以绕过需要AccessKey和SecretKey
我看到SNS主题是“主题策略”,但我不知道如何添加IpAddress条件。可能吗
专题政策:
{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__default_statement_ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"SNS:GetTopicAttributes",
"SNS:SetTopicAttributes",
"SNS:AddPermission",
"SNS:RemovePermission",
"SNS:DeleteTopic",
"SNS:Subscribe",
"SNS:ListSubscriptionsByTopic",
"SNS:Publish",
"SNS:Receive"
],
"Resource": "arn:aws:sns:us-east-1:111111111111:topic_name",
"Condition": {
"StringEquals": {
"AWS:SourceOwner": "111111111111"
}
}
}
]
}
Amazon SNS需要身份验证和授权才能使用该服务。这意味着IAM用户或角色。这意味着您必须使用凭据才能访问该服务 我会将IAM用户策略与SNS策略相结合,以控制谁(用户或服务)可以发布/订阅SNS 有许多AWS服务可以使用SNS。您的IP地址策略可能会破坏它们
SNS有一个类似于S3中的bucket策略的策略,该策略似乎可以用于允许匿名访问(这是否是一个好主意完全是另一个问题)。例如,似乎允许匿名订阅请求。@Michael sqlbot。这很有趣。非常感谢。我查看了他的代码,看起来他正在使用AWS:*主体,所以这仍然需要AWS凭据才能订阅。但是,他并没有发布复制其Chime服务所需的所有内容。您可能是对的,但请注意,在S3中,
“Principal”:{“AWS”:“*”}
包括匿名用户@迈克尔·舒尔伯特。你是对的,我是错的。我实际上认为AWS:*意味着通过AWS认证,而不是真正的匿名。我忽略了一个基本问题。