本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
连接到Amazon CodeCommit具有轮换凭证的存储库
您可以向用户授予对您的访问的访问权限Amazon CodeCommit存储库,而无需为其配置 IAM 用户或使用访问密钥和秘密密钥。要向联合身份分配权限,请创建角色并为角色定义权限。当联合身份进行身份验证时,该身份将与角色相关联并被授予由此角色定义的权限。有关联合身份验证的角色的信息,请参阅《IAM 用户指南》中的为第三方身份提供商创建角色。您还可以配置基于角色的访问权限,以便 IAM 用户访问 CodeCommit 单独的Amazon Web Services 账户中的存储库(这种技术被称为跨账户访问)。有关配置对存储库的跨账户访问的演练,请参阅使用角色配置对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 实例。
-
您在结合使用 Git 和 HTTPSAmazon CLI凭证辅助程序从Amazon EC2 实例连接到的凭证辅助程序 CodeCommit 存储库。
-
Amazon EC2 实例附加了 IAM 实例配置文件,其中包含中所述的访问权限用Amazon CLI凭证助手在 Linux、macOS 或 Unix 上使用 HTTPS 连接要么用于在 Windows 上使用Amazon CLI凭据助手进行的 HTTPS 连接.
-
您已按照中所述,在 Amazon EC2 实例上安装和配置了 Git 凭证辅助程序用Amazon CLI凭证助手在 Linux、macOS 或 Unix 上使用 HTTPS 连接要么用于在 Windows 上使用Amazon CLI凭据助手进行的 HTTPS 连接.
已将满足上述要求的 Amazon EC2 实例设为使用临时访问凭证连接到 CodeCommit 代表您使用。
注意
您可以配置和使用git-remote-codecommit在Amazon EC2 实例上。
向用户授予对您的的临时访问权限 CodeCommit 存储库,完成以下步骤。
第 1 步:完成先决条件
完成设置步骤,为用户提供访问您的权限 CodeCommit 使用轮换凭证的存储库:
-
有关跨账户访问的信息,请参阅演练练:使用 IAM 角色委派跨Amazon Web Services 科技账户的访问权限和使用角色配置对Amazon CodeCommit存储库的跨账户访问权限.
-
有关 SAML 和联合身份验证的信息,请参阅使用贵组织的身份验证系统授予访问 Amazon 资源的权限和关于 Amazon STS 基于 SAML 2.0 的联合身份验证。
-
有关 MFA 的信息,请参阅在中使用Multi-Factor Authentication (MFA) 设备Amazon和创建临时安全证书以启用 IAM 用户的访问权限.
-
有关 Login with Amazon、Amazon Cognito、Faceboogle 或任何 OIDC 兼容身份提供商,请参阅关于Amazon STSWeb 联合身份验证概览.
使用中的信息Amazon CodeCommit 的身份验证和访问控制指定 CodeCommit 您要授予用户的权限。
第 2 步:获取角色名称或访问证书
如果您希望您的用户通过代入角色来访问存储库,请为您的用户提供该角色的 Amazon 资源名称 (ARN)。否则,根据您设置访问权限的方式,您的用户可以通过以下方式之一获得轮换凭证:
-
有关跨账户访问,请调用Amazon CLI 承担角色命令或者打电话Amazon STS AssumeRoleAPI。
-
对于 SAML,请致电Amazon CLI assume-role-with-saml命令或Amazon STS AssumeRoleWithSAMLAPI。
-
如需联邦,请致电Amazon CLI 承担角色要么get-federation-token命令或Amazon STS AssumeRole要么GetFederationTokenAPI。
-
如需获得 MFA,请致电Amazon CLI get-session-token命令或Amazon STS GetSessionTokenAPI。
-
对于 Login with Amazon、Amazon Cognito、Faceboogle 或任何 OIDC 兼容身份提供商,请致电Amazon CLI assume-role-with-web-identity命令或Amazon STS AssumeRoleWithWebIdentityAPI。
第 3 步:安装 git-remote-codecommit 并配置Amazon CLI
您必须通过安装 git-remote-codecommit
-
按照设置 中的说明设置 Amazon CLI。使用 aws configure 命令配置一个或多个配置文件。考虑创建一个命名配置文件,以便在连接到时使用 CodeCommit 使用轮换凭据的存储库。
-
您可以使用下列方法之一将凭证与用户的 Amazon CLI 命名配置文件关联。
-
如果你要扮演一个角色来访问 CodeCommit,使用代入该角色所需的信息配置一个命名配置文件。例如,如果你想担任一个名为的角色
CodeCommitAccess
在 Amazon Web Services 账户 1111111111 中,您可以配置在使用其他账户时要使用的默认配置文件Amazon资源和担任该角色时使用的命名配置文件。以下命令创建一个命名配置文件CodeAccess
它扮演一个名为的角色CodeCommitAccess
. 用户名玛丽亚_加西亚
与会话关联,默认配置文件设置为其来源Amazon凭证:aws configure set role_arn arn:aws:iam::111111111111:role/
CodeCommitAccess
--profileCodeAccess
aws configure set source_profile default --profileCodeAccess
aws configure set role_session_name "Maria_Garcia
" --profileCodeAccess
如果要验证更改,请手动查看或编辑
~/.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 Security Token Service (Amazon STS)
AssumeRoleWithWebIdentity
API 调用的命名配置文件以刷新临时凭证。使用 aws configure set 命令或手动编辑~/.aws/credentials
文件(适用于 Linux)或%UserProfile%.aws\credentials
文件(适用于 Windows),以添加具有所需设置值的 Amazon CLI 命名配置文件。例如,要创建一个假定CodeCommitAccess
角色并使用 Web 身份令牌文件 ~/我的证书
/my-token-file
:[
CodeCommitWebIdentity
] role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess
web_identity_token_file=~/
role_session_name = Maria_Garciamy-credentials
/my-token-file
有关更多信息,请参阅配置Amazon Command Line Interface和在中使用 IAM 角色Amazon CLI中的Amazon Command Line Interface用户指南.
-
第 4 步:针对的访问权限 CodeCommit 存储库
假设您的用户已按照中的说明进行操作连接存储库将连接到 CodeCommit 存储库,然后用户使用提供的扩展功能git-remote-codecommit还有 Git 可以调用git clone、git push, 和git pull对进行克隆、推送和提取操作 CodeCommit 他或她有权访问的存储库。例如,要克隆存储库:
git clone codecommit://
CodeAccess
@MyDemoRepo
Git 提交、推送和拉取命令使用常规 Git 语法。
如果用户使用 Amazon CLI 并指定与轮换访问凭证关联的 Amazon CLI 命名配置文件,则所返回结果的范围限定为该配置文件。