AWS codecommit 是由AWS托管的版本控制服务,可以在云中私下存储和管理资产。

CodeCommit 是一项安全的、可高度扩展的托管型源代码控制服务,可用于托管私有 Git 存储库,它支持 Git 的标准功能。

建议为codecommit 新创建一个用户,只给这个用户赋予codecommit的相关权限(权限参照如下):

1)要允许用户使用 CodeCommit 控制台,管理员必须授予他们执行 CodeCommit 操作的权限。例如,您可以将 AWSCodeCommitPowerUser 托管策略或其等效策略附加到某一用户或组;

2)AWSCodeCommitFullAccess – 授予对 CodeCommit 的完全访问权限。仅将此策略应用于您希望向其授予对 CodeCommit 存储库及您的 AWS 账户中的相关资源的完全控制权限(包括删除存储库的能力)的管理级用户;

3)AWSCodeCommitPowerUser – 允许用户访问 CodeCommit 和存储库相关资源的所有功能,但不允许删除 CodeCommit 存储库或在其他 AWS 服务(如 Amazon CloudWatch Events)中创建或删除存储库相关资源;

4)AWSCodeCommitReadOnly – 授予对 CodeCommit 和其他 AWS 服务中的存储库相关资源的只读访问权限以及创建和管理自己的 CodeCommit 相关资源(如供其 IAM 用户在访问存储库时使用的 Git 凭证和 SSH 密钥)的能力。针对希望向其授予读取存储库内容的能力但不能对内容进行任何更改的用户

允许用户对单个存储库使用 Git

在 CodeCommit 中,GitPull IAM 策略权限适用于从 CodeCommit 检索数据的任何 Git 客户端命令,包括 git fetchgit clone 等。同样,GitPush IAM 策略权限适用于将数据发送到 CodeCommit 的任何 Git 客户端命令。例如,如果 GitPush IAM 策略权限设置为 Allow,则用户可以使用 Git 协议推送分支删除。对该 IAM 用户的 DeleteBranch 操作应用的任何权限都不会影响推送。DeleteBranch 权限适用于通过控制台、AWS CLI、软件开发工具包和 API 执行的操作,但不适用于通过 Git 协议执行的操作。

下面的示例允许指定用户对名为 MyDemoRepo 的 CodeCommit 存储库执行提取和推送操作:

{
  "Version": "2012-10-17",
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codecommit:GitPull",
        "codecommit:GitPush"
      ],
      "Resource" : "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo"
    }
  ]
}

在线下配置git拉取的私钥:

步骤 1: 先决条件

必须使用支持 Git 1.7.9 或更高版本的 Git 客户端连接到 AWS CodeCommit 存储库。如果您没有 Git 客户端,可以从 Git 下载安装一个;

您必须将 AWS CodeCommit 托管策略附加到您的 IAM 用户;

必须拥有 SSH 公有/私有密钥对。打开 Bash 模拟器并使用 ssh-keygen 创建公有/私有密钥对;

步骤 2: 注册 SSH 公有密钥

为您的 IAM 用户上传 SSH 公有密钥;(这里与公钥相配的私钥就是计算机生成的)

上传您的 SSH 公有密钥后,复制 SSH 密钥 ID;

步骤 3: 编辑本地 SSH 配置

编辑本地 ~/.ssh 目录中名为“config”的 SSH 配置文件。将以下行添加到文件中,其中 User 的值是您在步骤 2 中复制的 SSH 密钥 ID。

Host git-codecommit.*.amazonaws.com
User Your-IAM-SSH-Key-ID-Here
IdentityFile ~/.ssh/Your-Private-Key-File-Name-Here

保存文件后,通过在 ~/.ssh 目录中运行以下命令,确保它具有正确的权限。

chmod 600 config

步骤 4: 克隆存储库

将存储库克隆到本地计算机并开始处理代码。运行以下命令:

git clone ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/airdrop

04-22 22:21