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

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

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

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

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

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

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

注意

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

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

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

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

第 4 步:访问 CodeCommit 存储库

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

git clone codecommit://CodeAccess@MyDemoRepo

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

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