我有一个 SQS,我想限制对允许发送/接收的服务的访问。
在阅读和尝试之后,我发现这应该可以通过在 SQS 上使用访问策略来实现。
我写的政策:
"Version": "2012-10-17",
"Id": "arn:aws:sqs:eu-west-1:123456789:HACKsqs03/SQSDefaultPolicy",
"Statement": [
{
"Sid": "Sid456789",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789:role/HACKiam01"
},
"Action": "SQS:ReceiveMessage",
"Resource": "arn:aws:sqs:eu-west-1:123456789HACKsqs03"
},
{
"Sid": "Sid123456",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789:role/HACKiam02"
},
"Action": "SQS:SendMessage",
"Resource": "arn:aws:sqs:eu-west-1:123456789:HACKsqs03"
}
]
我附在 SQS 上的这项政策。
这两个角色添加到我用于测试的两个不同的 EC2 实例中。现在两者仍然能够发送和接收消息。我想不通为什么?
我的政策错了吗?还是我误解了文档?
澄清:我需要一个允许一个实例/安全组/iam-role 发送消息和一个实例/sg/iam-role 接收的策略。