如何更新IAM策略,让指定IAM角色拥有与IP相同的权限?
解决方案
直接在原策略的Condition中添加Or逻辑,同时保留原有IP限制,新增角色匹配条件即可,无需改动原有核心逻辑。修改后的完整策略如下:
{ "Version": "2012-10-17", "Id": "Policy1517260196123", "Statement": [ { "Sid": "Stmt1432661968133", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:*", "Resource": "arn:aws:s3:::pdf.abc.com/*", "Condition": { "Or": [ { "IpAddress": { "aws:SourceIp": [ "24.237.272.151/32", "42.69.252.185/32" ] } }, { "StringEquals": { "aws:PrincipalArn": "arn:aws:iam::7574333677569:role/dev-abc-webserver" } } ] } } ] }
关键说明
- 用
Or操作符实现「满足IP条件」或「匹配指定角色」任一即可访问的逻辑,完全保留原有IP访问权限 aws:PrincipalArn条件用于精准匹配发起请求的IAM角色ARN,确保只有目标角色能通过这条规则获得权限- 移除了原IP列表末尾多余的逗号,避免JSON格式错误
内容的提问来源于stack exchange,提问作者Santosh Baruah
相关产品推荐
相关产品推荐

