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

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

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

您可以授予用户访问您的权限Amazon CodeCommit存储库不为其配置 IAM 用户或使用访问密钥和秘密密钥。您也可以不创建 IAM 用户,而是使用来自 Amazon Directory Service、您的企业用户目录或 Web 身份提供程序的现有身份。这些用户称为联合身份用户。在通过身份提供程序请求访问权限时,Amazon 将为联合身份用户分配角色。有关联合身份用户的更多信息,请参阅 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,本主题提供了使用该实用程序的示例。有关更多信息,请参阅 HTTPS 连接的设置步骤Amazon CodeCommit使用 git-remote-codecommit

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

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

已将满足上述要求的 Amazon EC2 实例设为使用临时访问凭证代表您与 CodeCommit 通信。

注意

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

要允许用户临时访问您的 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 的角色。用户名称玛丽亚_加西亚与会话关联,默认配置文件设置为其来源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

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

      git clone codecommit://CodeAccess@MyDemoRepo
    • 如果您使用的是 Web 联合身份验证和 OpenID Connect (OIDC),请配置代表您进行 Amazon Security Token Service (Amazon STS) 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在中使用 IAM 角色Amazon CLI中的Amazon Command Line Interface用户指南.

第 4 步:访问 CodeCommit 存储库

假设你的用户已按照中的说明操作连接存储库为了连接到 CodeCommit 存储库,用户然后使用git-remote-codecommit和 Git 打电话git clonegit push, 和git pull克隆、推送到其有权访问的 CodeCommit 存储库。例如,要克隆存储库:

git clone codecommit://CodeAccess@MyDemoRepo

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

如果用户使用 Amazon CLI 并指定与轮换访问凭证关联的 Amazon CLI 命名配置文件,则所返回结果的范围限定为该配置文件。