AWS CodeCommit中分支保护

场景

需要保护特定的主干分支,防止初级开发人员直接提交变更到主干分支。主干分支的代码必须由架构组成员进行审核。

思路

创建一个自定义分支保护策略,防止用户自己对需要保护的主干分支进行commit。由了这个策略后,将这个自定义分支保护策略和AWSCodeCommitPowerUser策略添加到开发用户组。将AWSCodeCommitFullAccess策略添加到架构用户组。
这样就可以实现开发组不能自己对主干分支进行commit,只能发起合并请求给架构组,架构组对这个合并请求进行代码审核和合并处理。

步骤

这里假设开发组和架构组已经创建好了。

创建自定义策略

在IAM的策略中,选择创建策略,策略内容如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "codecommit:GitPush",
                "codecommit:DeleteBranch",
                "codecommit:PutFile",
                "codecommit:MergeBranchesByFastForward",
                "codecommit:MergeBranchesBySquash",
                "codecommit:MergeBranchesByThreeWay",
                "codecommit:MergePullRequestByFastForward",
                "codecommit:MergePullRequestBySquash",
                "codecommit:MergePullRequestByThreeWay"
            ],
            "Resource": "arn:aws-cn:codecommit:*:111111111111:*",
            "Condition": {
                "StringEqualsIfExists": {
                    "codecommit:References": [
                        "refs/heads/main", 
                        "refs/heads/prod", 
                        "refs/heads/master"
                     ]
                },
                "Null": {
                    "codecommit:References": "false"
                }
            }
        }
    ]
}

这里被保护的分支是main,prod,master.
这里主要难点就是Resource的值,可以先用web界面先获取一个,然后再尝试改成自己的。不要理会gui的报错,自己提交创建错误。
策略名称:DenyChangesToMain

用户组设置策略

开发组设置的策略如下:

  • DenyChangesToMain
  • AWSCodeCommitPowerUser
    开发组虽然有AWSCodeCommitPowerUser策略,这个策略许可能够提交到保护分支,但是,DenyChangesToMain的拒绝策略的优先更高。
    这就能够实现分支保护的主要原因。
    架构组设置的策略如下:
  • AWSCodeCommitFullAccess

总结

这样设置之后,就可以使用Code Commit的分支保护了。这个相比其他代码托管,主要是通过json配置出来的。其他代码托管可以自己通过gui操作。

参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值