将 IAM 与 CodeCommit 结合使用:Git 凭证、SSH 密钥和 Amazon 访问密钥 - Amazon Identity and Access Management
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将 IAM 与 CodeCommit 结合使用:Git 凭证、SSH 密钥和 Amazon 访问密钥

CodeCommit 是一种在 Amazon 云中托管私有 Git 存储库的托管版本控制服务。要使用 CodeCommit,您需要配置 Git 客户端,使其与 CodeCommit 存储库通信。作为此配置的一部分,您需要提供 IAM 凭证,CodeCommit 将用该凭证来对您进行身份验证。IAM 支持具有三种凭证的 CodeCommit:

  • Git 凭证 - 一种由 IAM 生成的用户名和密码对,供您通过 HTTPS 与 CodeCommit 存储库进行通信。

  • SSH 密钥 - 一种本地生成的公有-私有密钥对,供您关联至 IAM 用户,以通过 SSH 与 CodeCommit 存储库进行通信。

  • Amazon 访问密钥 - 供您配合 Amazon CLI 中包含的凭证辅助程序使用,以通过 HTTPS 与 CodeCommit 存储库通信。

注意

您无法使用 SSH 密钥或 Git 凭证来访问另一个 Amazon 账户中的存储库。要了解如何在其他 Amazon Web Services 账户 中为 IAM 用户和组配置对 CodeCommit 存储库的访问权限,请参阅《Amazon CodeCommit 用户指南使用角色配置对 Amazon CodeCommit 存储库的跨账户访问

请参阅下面几节了解有关每个选项的更多信息。

将 Git 凭证和 HTTPS 与 CodeCommit 配合使用(推荐)

借助 Git 凭证,您可以为 IAM 用户生成静态用户名和密码对,然后使用这些凭证进行 HTTPS 连接。您还可以将这些凭证与支持静态 Git 凭证的任何第三方工具或集成开发环境 (IDE) 配合使用。

这些凭证对所有支持的操作系统来说是通用的,并且兼容大多数凭证管理系统、开发环境及其他软件开发工具,因此,这是我们推荐使用的方法。您可以随时重置 Git 凭证的密码。如果不再需要凭证,您还可以停用或删除它们。

注意

您无法为 Git 凭证选择自己的用户名或密码。IAM 会为您生成这些凭证,以帮助确保它们符合 Amazon 的安全标准和 CodeCommit 中的安全存储库。凭证生成之后,您只能下载它们一次。因此,请务必将凭证保存在安全的位置。如有必要,您可以随时重置密码,但这会使通过旧密码配置的所有连接失效。您必须使用新密码重新配置连接,然后才能再次进行连接。

请参阅以下主题了解更多信息:

注意

在生成 Git 凭证后更改 IAM 用户的名称不会更改 Git 凭证的用户名。用户名和密码保持不变且仍然有效。

更新服务特定凭证
  1. 除了当前正在使用的一组凭证外,创建第二组特定于服务的凭证。

  2. 更新所有应用程序以使用这组新凭证,然后验证应用程序能否正常工作。

  3. 将原始凭证的状态更改为“停用”。

  4. 确保您的所有应用程序仍能正常工作。

  5. 删除已停用的特定于服务的凭证。

借助 CodeCommit 使用 SSH 密钥和 SSH

借助 SSH 连接,您可以在本地计算机上创建公有和私有密钥文件,以供 Git 和 CodeCommit 进行 SSH 身份验证。将公有密钥关联至 IAM 用户,并将私有密钥存储在本地计算机上。请参阅以下主题了解更多信息:

注意

公有密钥必须采用 ssh-rsa 格式或 PEM 格式进行编码。公有密钥的最小位长度为 2048 位,最大长度为 16384 位。这独立于您上传的文件大小。例如,您可以生成 2048 位密钥,但生成的 PEM 文件大小为 1679 字节。如果您采用其他格式或大小提供公有密钥,则系统会显示一条错误消息,指出该密钥格式无效。

将 HTTPS 与 Amazon CLI 凭证辅助程序和 CodeCommit 配合使用

作为使用 Git 凭证进行 HTTPS 连接的替代方法,您可以允许 Git 在需要进行 Amazon 身份验证以与 CodeCommit 存储库交互时使用 IAM 用户凭证的加密签名版本或 Amazon EC2 实例角色。这是唯一一种不需要 IAM 用户就能连接 CodeCommit 存储库的方法。这也是唯一一种适用于联合访问和临时凭证的方法。请参阅以下主题了解更多信息:

Amazon CLI 凭证辅助程序不兼容 Keychain Access、Windows Credential Management 等其他凭证辅助系统。在使用凭证辅助程序配置 HTTPS 连接时,还有一些其他的配置注意事项。有关更多信息,请参阅 Amazon CodeCommit 用户指南中的使用 Amazon CLI 凭证辅助程序在 Linux、macOS 或 Unix 上进行 HTTPS 连接或使用 Amazon CLI 凭证辅助程序在 Windows 上进行 HTTPS 连接