使用轮换凭证连接到 Amazon CodeCommit 存储库 - Amazon CodeCommit
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon CodeCommit 不再向新客户提供。 Amazon CodeCommit 的现有客户可以继续正常使用该服务。了解更多

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

使用轮换凭证连接到 Amazon CodeCommit 存储库

无需为用户配置用户或使用访问密钥和密钥,即可授予IAM用户访问 Amazon CodeCommit 仓库的权限。要向联合身份分配权限,您可以创建角色并为角色定义权限。当联合身份进行身份验证时,该身份将与角色相关联并被授予由此角色定义的权限。有关用于联合身份验证的角色的信息,请参阅《IAM用户指南》中的为第三方身份提供商(联合)创建角色。您还可以配置基于角色的访问权限,允许IAM用户访问单独的 Amazon Web Services 账户中的 CodeCommit 存储库(一种称为跨账户访问的技术)。有关配置对存储库的跨账户存取的演练,请参阅使用角色配置对 Amazon CodeCommit 仓库的跨账户访问权限

当用户想要或必须通过以下方式进行身份验证时,您可以为这些用户配置访问权限:

  • 安全断言标记语言 () SAML

  • 多因素身份验证 () MFA

  • 联合身份验证

  • Login with Amazon

  • Amazon Cognito

  • Facebook

  • Google

  • 兼容 OpenID Connect (OIDC) 的身份提供商

注意

以下信息仅适用于使用git-remote-codecommit或 Amazon CLI 凭证助手连接到 CodeCommit 存储库。由于临时访问或联合访问的推荐方法 CodeCommit 是设置git-remote-codecommit,因此本主题提供了使用该实用程序的示例。有关更多信息,请参阅 Amazon CodeCommit 与的HTTPS连接的设置步骤 git-remote-codecommit

您不能使用SSH或 Git 凭证HTTPS,也不能使用轮换或临时访问凭证连接到 CodeCommit 存储库。

如果满足以下所有要求,则不需要完成这些步骤:

符合上述要求的 Amazon EC2 实例已设置为 CodeCommit 代表您传送临时访问证书。

注意

您可以在 Amazon EC2 实例git-remote-codecommit上进行配置和使用。

要允许用户临时访问您的 CodeCommit 仓库,请完成以下步骤。

步骤 1:完成先决条件

完成设置步骤,为用户提供使用轮换凭证访问您的 CodeCommit 存储库的权限:

使用中的信息Amazon CodeCommit的身份验证和访问控制来指定要向用户授予的 CodeCommit 权限。

步骤 2:获取角色名称或访问凭证

如果您希望用户通过扮演角色访问存储库,请向您的用户提供该角色的 Amazon 资源名称 (ARN)。否则,根据您设置访问权限的方式,您的用户可以通过以下方式之一获得轮换凭证:

步骤 3:安装 git-remote-codecommit和配置 Amazon CLI

您必须通过安装 git-remote-codecommit 并在 Amazon CLI中配置一个配置文件来配置本地计算机以使用访问凭证。

  1. 按照设置 中的说明设置 Amazon CLI。使用 aws configure 命令配置一个或多个配置文件。考虑创建一个命名配置文件,以便在使用轮换凭据连接到 CodeCommit 存储库时使用。

  2. 您可以通过以下方式之一将凭证与用户的 Amazon CLI 指定个人资料相关联。

    • 如果您要扮演角色进行访问 CodeCommit,请使用担任该角色所需的信息配置命名配置文件。例如,如果你想扮演一个名为的角色 CodeCommitAccess 在 Amazon Web Services 账户 111111111111 中,您可以配置在使用其他 Amazon 资源时使用的默认配置文件和担任该角色时使用的命名配置文件。以下命令创建名为的命名配置文件 CodeAccess 它假设一个名为的角色 CodeCommitAccess用户名。Maria_Garcia 与会话相关联,并且默认配置文件被设置为其 Amazon 凭据的来源:

      aws configure set role_arn arn:aws:iam::111111111111:role/CodeCommitAccess --profile CodeAccess aws configure set source_profile default --profile CodeAccess aws configure set role_session_name "Maria_Garcia" --profile CodeAccess

      如果要验证更改,请手动查看或编辑 ~/.aws/config 文件(适用于 Linux)或 %UserProfile%.aws\config 文件(适用于 Windows),并查看命名配置文件下的信息。例如,您的文件可能如下所示:

      [default] region = us-east-1 output = json [profile CodeAccess] source_profile = default role_session_name = Maria_Garcia role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess

      配置好您的命名配置文件后,您可以使用命名的配置文件使用该git-remote-codecommit实用程序克隆 CodeCommit 存储库。例如,克隆名为的存储库 MyDemoRepo:

      git clone codecommit://CodeAccess@MyDemoRepo
    • 如果您使用的是 Web 联合身份验证和 OpenID Connect (OIDC),请配置一个命名的配置文件,该配置文件代表您发Amazon STS出 Amazon Security Token Service () AssumeRoleWithWebIdentity API 调用以刷新临时证书。使用aws configure set命令或手动编辑~/.aws/credentials文件(对于 Linux)或%UserProfile%.aws\credentials文件(对于 Windows),以添加具有所需设置值的 Amazon CLI 命名配置文件。例如,要创建一个假设 CodeCommitAccess 角色并使用 Web 身份令牌文件 ~/my-credentials/my-token-file:

      [CodeCommitWebIdentity] role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess web_identity_token_file=~/my-credentials/my-token-file role_session_name = Maria_Garcia

    有关更多信息,请参阅Amazon Command Line Interface 用户指南》 Amazon CLI中的 “配置 Amazon Command Line Interface和使用IAM角色”。

步骤 4:访问 CodeCommit 存储库

假设您的用户已按照中的说明连接存储库连接到 CodeCommit 存储库,则该用户随后使用git-remote-codecommit和 Git 提供的扩展功能来调用git clonegit push、克隆、推送和拉取他或她有权访问的 CodeCommit 存储库。git pull例如,要克隆存储库:

git clone codecommit://CodeAccess@MyDemoRepo

Git 提交、推送和拉取命令使用常规 Git 语法。

当用户使用 Amazon CLI 并指定与轮换访问凭证关联的 Amazon CLI 命名配置文件时,将返回限于该配置文件的结果。