You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何AWS CodeCommit策略无法阻止向releases子分支推送变更?

IAM策略失效问题分析与修复

你的策略未生效的核心问题是分支匹配规则错误,具体问题和修复方案如下:

1. 分支匹配模式不正确

当前StringLikeIfExists条件中使用的"refs/heads/releases/"只会精确匹配名称为releases/的分支(注意末尾的斜杠),但你的目标是限制releases/3.4.1、releases/4.1.4这类带版本号的子分支,需要添加通配符*来匹配releases/路径下的所有分支,修正为"refs/heads/releases/*"。

2. 额外检查点

  • 确认用户没有其他允许推送的IAM策略:如果用户被其他策略授予了codecommit:GitPush的允许权限,且该策略未被当前拒绝策略覆盖,会导致拒绝规则不生效。IAM权限判断逻辑是:存在允许策略且无对应拒绝策略时,权限生效。
  • Null条件部分无需修改:"Null": {"codecommit:References": false}确保只有当推送操作明确指定分支时才触发拒绝,这个逻辑是合理的。

修正后的IAM策略

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codecommit:GitPush"
      ],
      "Resource": "arn:aws:codecommit:(myRegion):(myAccount):(myReposotory)",
      "Condition": {
        "StringLikeIfExists": {
          "codecommit:References": [
            "refs/heads/releases/*"
          ]
        },
        "Null": {
          "codecommit:References": false
        }
      }
    }
  ]
}

内容的提问来源于stack exchange,提问作者Mauty404

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 08:15:39