You need to enable JavaScript to run this app. 如何配置AWS IAM权限实现“拒绝通配符X匹配的所有操作,仅排除Y”
优惠活动
大模型
产品
解决方案
定价
更多

如何配置AWS IAM权限实现“拒绝通配符X匹配的所有操作,仅排除Y”

AWS IAM权限规则排除指定操作的解决方案

可行解决方案

  • 方案1:结合Deny语句加Condition条件实现排除
    在原有Deny ec2:*Vpn*的语句中新增Condition规则,仅当请求的操作不是要放行的ec2:DescribeVpnGateways时才触发拒绝,即可绕开显式拒绝优先级高于允许规则的限制,示例语句片段如下:
    {
      "Effect": "Deny",
      "Action": "ec2:*Vpn*",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:RequestedAction": "ec2:DescribeVpnGateways"
        }
      }
    }
    
    该方案无需改动原有Allow规则,也不用拆分现有通配符拒绝规则,适合仅需要排除少量操作的场景。
  • 方案2:拆分粗粒度通配符拒绝规则
    把原来过于宽泛的ec2:*Vpn*拆分为多个更细粒度的拒绝条目,明确列出所有需要限制的Vpn相关操作,刚好避开要放行的ec2:DescribeVpnGateways即可,例如:
    {
      "Effect": "Deny",
      "Action": [
        "ec2:Create*Vpn*",
        "ec2:Delete*Vpn*",
        "ec2:Modify*Vpn*",
        "ec2:Accept*Vpn*",
        "ec2:Attach*Vpn*",
        "ec2:Detach*Vpn*"
      ],
      "Resource": "*"
    }
    
    该方案逻辑更直观,后续新增需要限制的操作时也更容易维护,适合需要排除的操作较多的场景。

权限体系架构建议

从长期运维的安全性和可维护性角度,更建议重构为最小权限先行的模式:即预先仅给用户分配经核准的必要权限,而非先授予全量权限再通过拒绝语句限制。原因如下:

  • 显式拒绝的优先级高于所有允许规则,一旦规则配置疏漏很容易导致正常操作被拦截,或是危险操作被漏过
  • 全量Allow加Deny的模式会随着AWS服务更新迭代持续出现新的操作需要调整规则,运维成本会越来越高
  • 最小权限模式下权限边界更清晰,审计、排查权限问题的效率也更高

如果当前业务场景确实需要给用户开放尽可能多的EC2操作权限,也可以保留现有模式,但建议尽量缩小通配符的使用范围,优先用细粒度的Action列表代替宽泛的通配符,降低规则冲突概率。


内容的提问来源于stack exchange,提问作者Godot-Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 08:15:03