使用 HTTPS 连接AWS CodeCommit的设置步骤 git-remote-codecommit - AWS CodeCommit

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 HTTPS 连接AWS CodeCommit的设置步骤 git-remote-codecommit

如果您想 CodeCommit 使用根账户、联合访问权限或临时证书进行连接,则应使用设置访问权限git-remote-codecommit。此实用程序提供了一种通过扩展 Git 从 CodeCommit 存储库推送和提取代码的简单方法。这是支持使用联合访问、身份提供商和临时证书建立连接的推荐方法。要向联合身份分配权限,请创建角色并为角色定义权限。当联合身份进行身份验证时,该身份将与角色相关联并被授予由此角色定义的权限。有关联合身份验证的角色的信息,请参阅《IAM 用户指南》中的为第三方身份提供商创建角色如果您使用 IAM Identity Center,则需要配置权限集。为控制您的身份在进行身份验证后可以访问的内容,IAM Identity Center 将权限集与 IAM 中的角色相关联。有关权限集的信息,请参阅《AWS IAM Identity Center (successor to AWS Single Sign-On) 用户指南》中的权限集

您还可以与 IAM 用户git-remote-codecommit一起使用。与其他 HTTPS 连接方法不同,git-remote-codecommit 不要求为用户设置 Git 凭证。

注意

某些 IDE 不支持 git-remote-codecommit 使用的克隆 URL 格式。您可能需要手动将存储库克隆到本地计算机,然后才能在您首选的 IDE 中使用它们。有关更多信息,请参阅 git-remote-codecommit 和 AWS CodeCommit 疑难解答

编写这些程序时假设您有一个 Amazon Web Services 账户,在中创建了至少一个存储库 CodeCommit,并且在连接到 CodeCommit 存储库时使用了托管策略的 IAM 用户。有关如何为联合身份用户和其他轮换凭证类型配置访问权限的信息,请参阅连接到AWS CodeCommit具有轮换凭证的存储库

第 0 步:的安装先决条件 git-remote-codecommit

您必须在本地计算机上安装一些先决条件,然后才能使用 git-remote-codecommit。其中包括:

  • Python(版本 3 或更高版本)及其程序包管理器 pip(如果尚未安装)。要下载并安装 Python 的最新版本,请访问 Python 网站

  • Git

注意

在 Windows 上安装 Python 时,请确保选择了将 Python 添加到路径的选项。

git-remote-codecommit 需要 pip 版本 9.0.3 或更高版本。要检查您的 pip 版本,请打开终端或命令行并运行以下命令:

pip --version

您可以运行以下两个命令将您的 pip 版本更新到最新版本:

curl -O https://bootstrap.pypa.io/get-pip.py python3 get-pip.py --user

要处理 CodeCommit 存储库中的文件、提交和其他信息,必须在本地计算机上安装 Git。 CodeCommit 支持 Git 版本 1.7.9 及更高版本。Git 版本 2.28 支持为初始提交配置分支名称。我们建议使用最新版本的 Git。

要安装 Git,我们建议使用诸如 Git 下载之类的网站。

注意

Git 是一个不断发展、定期更新的平台。有时,功能更改可能会影响其使用方式 CodeCommit。如果您在使用特定版本的 Git 和时遇到问题 CodeCommit,请查看中的信息故障排除

第 1 步:的初始配置 CodeCommit

按照以下步骤创建 IAM 用户,使用相应的策略对其进行配置,获取访问密钥和私有密钥,然后安装和配置AWS CLI。

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

  1. 前往 http://aws.amazon.com 并选择 “注册”,创建Amazon Web Services 账户。

  2. 在您的Amazon Web Services 科技账户中创建 IAM 用户或使用现有用户。确保您拥有与该 IAM 用户关联的访问密钥 ID 和秘密访问密钥。有关更多信息,请参阅在您的Amazon Web Services 科技账户中创建 IAM 用户

    注意

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

  3. 登录AWS Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

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

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

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

  7. 从策略列表中,选择AWSCodeCommitPowerUser或其他托管策略进行 CodeCommit 访问。有关更多信息,请参阅 AWSCodeCommit 的托管策略

    选择要附加的策略后,选择下一步:查看以查看要附加到 IAM 用户的策略列表。如果列表正确,选择 Add permissions

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

安装和配置 AWS CLI

  1. 在本地计算机上,下载并安装 AWS CLI。这是通过命令行进行交互 CodeCommit 的先决条件。我们建议您安装AWS CLI版本 2。它是的最新主版本AWS CLI,支持所有最新功能。它是唯一支持使用根账户、联合访问或临时证书的版本git-remote-codecommit。AWS CLI

    有关更多信息,请参阅使用 AWS 命令行界面进行设置

    注意

    CodeCommit 仅适用AWS CLI于 1.7.38 及更高版本。作为最佳做法,请安装 AWS CLI 或将其升级到可用的最新版本。要确定您安装的 AWS CLI 的版本,请运行 aws --version 命令。

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

  2. 运行此命令确认是否安装了AWS CLI的。 CodeCommit

    aws codecommit help

    此命令将返回 CodeCommit 命令的列表。

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

    aws configure

    出现提示时,指定要用于AWS IAM 的 IAM 用户的 IAM 的、AWS秘密访问密钥 CodeCommit。另外,请务必指定存储库AWS 区域所在的位置,例如us-east-2。系统提示指定默认输出格式时,指定 json。例如,如果您正在为 IAM 用户配置配置文件:

    AWS Access Key ID [None]: Type your IAM user AWS access key ID here, and then press Enter AWS Secret Access Key [None]: Type your IAM user 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 CLI 配合使用的详细信息,请参阅以下内容:

    要连接到存储库或其他存储库中的资源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

    • ap-east-1

    • me-south-1

    • cn-north-1

    • cn-northwest-1

    • eu-south-1

    • ap-northeast-3

    • af-south-1

    有关 CodeCommit 和的更多信息AWS 区域,请参阅区域和 Git 连接终端节点。有关 IAM、访问密钥和秘密密密密钥的更多信息,请参阅如何获取凭证? 以及管理 IAM 用户的访问密钥。有关 AWS CLI 和配置文件的更多信息,请参阅命名配置文件

第 2 步:安装 git-remote-codecommit

请按照以下步骤安装 git-remote-codecommit

要安装 git-remote-codecommit

  1. 在终端或命令行中,运行以下命令:

    pip install git-remote-codecommit
    注意

    根据您的操作系统和配置,您可能需要使用更高的权限(例如 sudo)运行此命令,或者使用 —user 参数安装到不需要特殊权限的目录,例如您的当前用户帐户。例如,在运行 Linux、macOS 或 Unix 的计算机上:

    sudo pip install git-remote-codecommit

    在运行 Windows 的计算机上:

    pip install --user git-remote-codecommit
  2. 监视安装过程,直到看到一条成功消息。

第 3 步:Connect CodeCommit 控制台并克隆存储库

如果管理员已经向您发送了git-remote-codecommit用于 CodeCommit 存储库的克隆 URL,则您可以跳过与控制台的连接,直接克隆存储库。

连接到存储 CodeCommit 库

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

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

  3. 从列表中找到您要连接的存储库并选择此存储库。选择 Clone URL (克隆 URL),然后选择克隆或连接到存储库时要使用的协议。此时将复制克隆 URL。

    • 如果您使用 IAM 用户的 Git 证书或随附的证书助手,请复制 HTTPS URLAWS CLI。

    • 如果您在本地计算机上使用 git-remote-codecommit 命令,请复制 HTTPS (GRC) URL。

    • 如果您与 IAM 用户使用 SSH 公钥/私key pair,请复制 SSH URL。

    注意

    如果您看到的是欢迎页面而不是仓库列表,则表明在您登录的AWS 区域位置中没有与您的AWS帐户关联的存储库。要创建存储库,请参阅创建存储AWS CodeCommit库或按照Git 和 CodeCommit 入门教程中的步骤进行操作。

  4. 在终端或命令提示符处,使用 git clone 命令克隆存储库。如果您创建了已命名的AWS CLI配置文件,请使用您复制的 HTTPS git-remote-codecommit URL 和配置文件的名称。如果未指定配置文件,则该命令将采用默认配置文件。这将在运行命令的目录的子目录中创建本地存储库。例如,要将名为 MyDemoRepo 的存储库克隆成名为 my-demo-repo 的本地存储库,请运行以下命令:

    git clone codecommit://MyDemoRepo my-demo-repo

    要使用名为的配置文件克隆同一个存储库,请执行CodeCommitProfile以下操作:

    git clone codecommit://CodeCommitProfile@MyDemoRepo my-demo-repo

    要在不同AWS 区域于配置文件中配置的存储库中克隆存储库,请提供AWS 区域名称。例如:

    git clone codecommit::ap-northeast-1://MyDemoRepo my-demo-repo

后续步骤

您已满足先决条件。按照中的步骤开始使用 CodeCommit 开始使用 CodeCommit。

要了解如何创建和推送您的第一个提交,请参阅在中创建提交AWS CodeCommit。如果您刚刚接触 Git,您可能还需要查看我在哪里可以了解更多关于 Git 的信息开始使用 Git 和AWS CodeCommit中的信息。