• 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"
                    }
                }
            }
        ]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

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

    用户组设置策略

    开发组设置的策略如下:

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

    总结

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

    参考:

  • 相关阅读:
    DarkHole靶机渗透
    php版 短信跳转微信小程序
    Vue 插槽(slot)使用
    RSS阅读器
    从软件工程的角度比较Swift、Go和Julia,我有了这些发现
    docker安装目录迁移
    如何使用谷歌浏览器连接linux服务器SSH服务
    53、springboot对websocket的支持有两种方式-------1、基于注解开发 WebSocket ,简洁实现多人聊天界面
    web分享会
    vue文档学习笔记之列表渲染---展示过滤或排序后的结果
  • 原文地址:https://blog.csdn.net/fxtxz2/article/details/126667591