AWS CodeCommit
用户指南 (API 版本 2015-04-13)

在 Linux, macOS, or Unix 上使用 AWS CLI 凭证辅助程序设置到 AWS CodeCommit 存储库的 HTTPS 连接的步骤

在首次连接到 AWS CodeCommit 之前,您必须先完成初始配置步骤。本主题将指导您完成所需步骤以设置您的计算机和 AWS 配置文件,连接到 CodeCommit 存储库并将存储库克隆到您的计算机(这也称为创建本地存储库)。如果您刚刚接触 Git,我们建议您查看哪里可以找到有关 Git 的更多信息?中的信息。

步骤 1:CodeCommit 初始配置

按照以下步骤设置 AWS 账户、创建和配置 IAM 用户并安装 AWS CLI。

创建和配置用于访问 CodeCommit 的 IAM 用户

  1. 通过转到 http://aws.amazon.com 并选择 Sign Up (注册) 创建一个 AWS 账户。

  2. 创建 IAM 用户或使用您的 AWS 账户中的现有用户。确保您具有与该 IAM 用户关联的访问密钥 ID 和私有访问密钥。有关更多信息,请参阅在您的 AWS 账户中创建 IAM 用户

    注意

    CodeCommit 需要使用 AWS Key Management Service。如果使用现有的 IAM 用户,请确保未向该用户附加明确拒绝 CodeCommit 要求的 AWS KMS 操作的任何策略。有关更多信息,请参阅AWS KMS 和加密

  3. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.aws.amazon.com/iam/

  4. 在 IAM 控制台的导航窗格中,选择 Users (用户),然后选择要配置进行 CodeCommit 访问的 IAM 用户。

  5. Permissions 选项卡上,选择 Add Permissions

  6. Grant permissions (授予权限) 中,选择 Attach existing policies directly (直接附加现有策略)

  7. 从策略列表中选择 AWSCodeCommitFullAccess 或用于 CodeCommit 访问的其他托管策略。有关更多信息,请参阅 适用于 CodeCommit 的 AWS 托管(预定义)策略

    选择要附加的策略后,选择 Next: Review (下一步: 审核) 以审核将附加到 IAM 用户的策略的列表。如果列表正确,选择 Add permissions

    有关 CodeCommit 管理的策略以及与其他组和用户共享访问存储库的更多信息,请参阅共享存储库AWS CodeCommit 的身份验证和访问控制

安装和配置 AWS CLI

  1. 在本地计算机上,下载并安装 AWS CLI。这是从命令行与 CodeCommit 进行交互的前提条件。有关更多信息,请参阅使用 AWS 命令行界面进行设置

    注意

    CodeCommit 只适用于 AWS CLI 版本 1.7.38 和后续版本。要确定您安装的 AWS CLI 的版本,请运行 aws --version 命令。

    要将旧版本的 AWS CLI 升级到最新版本,请参阅安装 AWS Command Line Interface

  2. 运行下面的命令来验证已安装用于 AWS CLI 的 CodeCommit 命令:

    aws codecommit help

    该命令返回 CodeCommit 命令的列表。

  3. 使用 configure 命令配置 AWS CLI,如下所示:

    aws configure

    出现提示时,指定要用于 CodeCommit 的 IAM 用户的 AWS 访问密钥和 AWS 秘密访问密钥。此外,请务必指定存储库所在的 AWS 区域,例如 us-east-2。系统提示指定默认输出格式时,指定 json。例如:

    AWS Access Key ID [None]: Type your target AWS access key ID here, and then press Enter AWS Secret Access Key [None]: Type your target AWS secret access key here, and then press Enter Default region name [None]: Type a supported region for CodeCommit here, and then press Enter Default output format [None]: Type json here, and then press Enter

    要连接到另一个 AWS 区域中的存储库或资源,您必须使用默认区域名称重新配置 AWS CLI。CodeCommit 支持的默认区域名称包括:

    • us-east-2

    • us-east-1

    • eu-west-1

    • us-west-2

    • ap-northeast-1

    • ap-southeast-1

    • ap-southeast-2

    • eu-central-1

    • ap-northeast-2

    • sa-east-1

    • us-west-1

    • eu-west-2

    • ap-south-1

    • ca-central-1

    • us-gov-west-1

    • us-gov-east-1

    • eu-north-1

    有关 CodeCommit 和 AWS 区域的更多信息,请参阅 区域和 Git 连接终端节点。有关 IAM、访问密钥和私有密钥的更多信息,请参阅如何获取凭证?管理 IAM 用户的访问密钥

步骤 2:安装 Git

要使用 CodeCommit 存储库中的文件、提交和其他信息,您必须在自己的本地计算机上安装 Git。CodeCommit 支持 Git 1.7.9 以及更高版本。

要安装 Git,建议您访问 Git 下载等网站。

注意

Git 是一个不断发展、定期更新的平台。有时,功能上的更改可能会影响到它与 CodeCommit 协作的方式。如果遇到 Git 和 CodeCommit 特定版本的问题,请参阅问题排查中的信息。

步骤 3:设置凭证辅助程序

  1. 从终端使用 Git 运行 git config,在其中指定为 AWS 凭证配置文件使用 Git 凭证辅助程序,并使 Git 凭证辅助程序发送存储库的路径:

    git config --global credential.helper '!aws codecommit credential-helper $@' git config --global credential.UseHttpPath true

    提示

    凭证辅助程序将使用默认的 AWS 凭证配置文件或 Amazon EC2 实例角色。如果您创建了用于 CodeCommit 的 AWS 凭证配置文件,则可以指定要使用的配置文件,如 CodeCommitProfile

    git config --global credential.helper '!aws --profile CodeCommitProfile codecommit credential-helper $@'

    如果您的配置文件名称包含空格,请确保用引号 (") 将名称引起来。

    您可以使用 --local 而不是 --global 配置每个存储库的配置文件,而不是进行全局配置。

    Git 凭证辅助程序将以下值写入 ~/.gitconfig

    [credential] helper = !aws --profile CodeCommitProfile codecommit credential-helper $@ UseHttpPath = true

    重要

    如果要对 CodeCommit 使用同一本地计算机上的不同 IAM 用户,您必须再次运行 git config 命令并指定不同的 AWS 凭证配置文件。

  2. 运行 git config --global --edit 验证前面的值是否已写入 ~/.gitconfig。如果成功,您应能看到前面的值(除了 Git 全局配置文件中可能已有的值)。要退出,通常需要键入 :q,然后按 Enter。

    如果在配置凭证辅助程序后遇到问题,请参阅问题排查

    重要

    如果您使用的是 macOS,请通过以下步骤确保凭证辅助程序配置正确。

  3. 如果您使用的是 macOS,请使用 HTTPS 连接 CodeCommit 存储库。首次使用 HTTPS 连接到 CodeCommit 存储库后,后续访问会在约 15 分钟后失败。macOS 上的默认 Git 版本使用 Keychain Access 实用程序存储凭证。为安全起见,为访问您的 CodeCommit 存储库而生成的密码是临时的,因此密钥链中存储的凭证将在约 15 分钟后失效。为防止使用这些过期凭证,您必须执行以下操作之一:

    • 安装默认不使用密钥链的 Git 版本。

    • 将 Keychain Access 实用程序配置为不为 CodeCommit 存储库提供凭证。

    1. 打开 Keychain Access 实用程序。(您可以使用 Finder 查找它。)

    2. 搜索 git-codecommit.us-east-2.amazonaws.com。突出显示该行,打开上下文菜单或右键单击它,然后选择 Get Info

    3. 选择 Access Control 选项卡。

    4. Confirm before allowing access (运行访问前进行确认) 中,选择 git-credential-osxkeychain,然后选择减号将它从列表中删除。

      注意

      在从列表中删除 git-credential-osxkeychain 后,当您运行 Git 命令时,会看到一条弹出消息。选择拒绝以继续。如果您不希望显示弹出窗口,可考虑以下其他选项:

      • 使用 SSH 而不是 HTTPS 连接 CodeCommit。有关更多信息,请参阅对于 Linux, macOS, or Unix 上的 SSH 连接

      • 在 Keychain Access 实用程序中,在 git-codecommit.us-east-2.amazonaws.comAccess Control (访问控制) 选项卡上,选择 Allow all applications to access this item (access to this item is not restricted) (允许应用程序访问此项(对此项的访问不受限制)) 选项。这将阻止弹出窗口,但凭证最终会到期(平均而言,大约需要 15 分钟),然后会显示 403 错误消息。如果发生这种情况,您必须删除密钥链项才能恢复功能。

      • 安装默认不使用密钥链的 Git 版本。

步骤 4:连接 CodeCommit 控制台并克隆存储库

如果管理员已将 CodeCommit 存储库的名称和连接详细信息发送给您,您可以跳过该步骤并直接克隆存储库。

连接 CodeCommit 存储库

  1. 通过以下网址打开 CodeCommit 控制台:https://console.aws.amazon.com/codesuite/codecommit/home

  2. 在区域选择器中,选择已创建存储库的 AWS 区域。存储库特定于 AWS 区域。有关更多信息,请参阅 区域和 Git 连接终端节点

  3. 从列表中选择需要连接的存储库。这将打开该存储库的 Code (代码) 页。

    如果看到 Welcome (欢迎) 页面,而不是存储库列表,说明没有存储库与您的 AWS 账户关联。要创建存储库,请参阅创建 AWS CodeCommit 存储库或按照Git 与 CodeCommit 教程教程中的步骤进行操作。

  4. 复制在连接存储库时使用的 HTTPS URL。

  5. 打开终端,从 /tmp 目录中通过 git clone 命令使用 URL 克隆存储库。例如,要将名为 MyDemoRepo 的存储库克隆到美国东部(俄亥俄州)区域中名为 my-demo-repo 的本地存储库,请运行以下命令:

    git clone https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo

    有关更多信息,请参阅通过克隆存储库来连接 CodeCommit 存储库创建提交

后续步骤

您已满足先决条件。请按照CodeCommit 教程中的步骤进行操作,开始使用 CodeCommit。