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

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

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

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

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

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

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

  • 多因素身份验证 () MFA

  • 联合身份验证

  • Login with Amazon

  • Amazon Cognito

  • Facebook

  • Google

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

注意

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

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

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

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

注意

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

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

步骤 1:完成先决条件

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

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

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

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

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

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

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

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

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

      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),请配置一个命名的配置文件,该配置文件代表您发AWS STS出 AWS Security Token Service () AssumeRoleWithWebIdentity API 调用以刷新临时证书。使用aws configure set命令或手动编辑~/.aws/credentials文件(对于 Linux)或%UserProfile%.aws\credentials文件(对于 Windows),以添加具有所需设置值的 AWS 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

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

步骤 4:访问 CodeCommit 存储库

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

git clone codecommit://CodeAccess@MyDemoRepo

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

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