AWS SNS 策略 IP 地址访问
AWS SNS Policy IP Address Access
在SNS中,我建立了一个话题。
在 IAM 中,我设置了一个策略,只允许从特定 IP 地址访问主题 ARN:
{
"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。
有没有一种方法可以绕过对 AccessKey 和 SecretKey 的需求,只要 SourceIp 是正确的?
我看到 SNS 主题 "topic policy",但我不知道如何添加 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中,我建立了一个话题。
在 IAM 中,我设置了一个策略,只允许从特定 IP 地址访问主题 ARN:
{
"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。
有没有一种方法可以绕过对 AccessKey 和 SecretKey 的需求,只要 SourceIp 是正确的?
我看到 SNS 主题 "topic policy",但我不知道如何添加 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 地址政策可能会破坏它们。