通过EC2 Iam角色和实例ARN或实例IP限制对SQS的访问



我有一个通用的EC2 iam角色,每当新的windows EC2实例启动时,我都会使用它来加入域。其中一个实例需要能够读取SQS,,并且仅读取该实例!我为SQS创建了VPC端点,现在我正试图限制通过条件aws:SourceArn的访问,其中这是EC2实例的ARN,或者通过aws:SourceIp访问,其IP值为实例的私有IP(也尝试了公共,但不起作用。

以下是我的SQS访问策略。

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "sqspolicySailpointDevDocument",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123123123123:role/apigateway_sqs"
},
"Action": "sqs:*",
"Resource": "arn:aws:sqs:us-west-2:123123123123:SailpointSqsDev"
},
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123123123123:role/terraform-AWS-EC2-Domain-Join"
},
"Action": "sqs:*",
"Resource": "arn:aws:sqs:us-west-2:123123123123:SailpointSqsDev",
"Condition": {
"ArnEquals": {
"aws:SourceArn": "arn:aws:ec2:us-west-2:123123123123:instance/i-075b02dfsdfdf435"
}
}
}
]
}

条件的第二个示例

"Condition":{
"IpAddress":{
"aws:SourceIp":"10.2.32.34"
}
}

第三个例子——这个不能通过验证,即使它来自全局键上下文。

InvalidParameterValue:参数Condition的值aws:VpcSourceIp无效。原因:条件必须来自全局上下文关键字列表https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html.

"Condition": {
"IpAddress": {
"aws:VpcSourceIp": "10.2.0.0/16"
}
}

ec2:SourceInstanceARN我不能使用,因为策略只允许全局条件键。

最坏的情况是,VPC Endpoint有安全组,我可以从那里限制访问,但这并不是理想的解决方案。。。

VpcSourceIp不可用于SQS,因此为了实现我想要的,需要vpc中的SQS的vpce(vpc端点(,然后限制在vpce的安全组中的访问。

相关内容

  • 没有找到相关文章

最新更新