AWS CodeCommit HTTPS 访问,无需设置凭证助手

Cla*_*ins 5 git amazon-web-services spring-cloud aws-codecommit

我们正在从 GitHub 过渡到 AWS CodeCommit,以拥有一个紧密集成的环境。

一种需求是通过 HTTPS 访问一个存储库。此存储库可通过使用 jgit 读取存储库并克隆文件以供其使用的 Spring Cloud Config Server 产品访问。

在通过 HTTPS 连接时,AWS CodeCommit 显然需要使用凭证助手,但我不这样设置。我想要一个 jgit 可以使用的用户和密码设置,而无需使用凭证助手生成临时凭证。有什么办法可以做到这一点吗?

有没有什么办法可以配置CodeCommit通过HTTPS访问一个固定的用户和密码来访问存储库?

Ste*_*pel 5

更新

截至 2016 年 12 月 22 日,AWS CodeCommit 支持使用静态用户名和密码作为通过 HTTPS 对您的 AWS CodeCommit 存储库进行身份验证的简化方式

使用 Git 凭证,您可以在 Identity and Access Management (IAM) 控制台中生成静态用户名和密码,您可以使用它们从命令行、Git CLI 或任何支持 HTTPS 身份验证的 Git 工具访问 AWS CodeCommit 存储库。

由于这些是静态凭据,因此可以使用本地操作系统中包含的密码管理工具缓存它们或存储在凭据管理实用程序中。这使您可以在几分钟内开始使用 AWS CodeCommit。您无需下载 AWS CLI 或配置您的 Git 客户端以通过 HTTPS 连接到您的 AWS CodeCommit 存储库。您还可以使用用户名和密码从支持用户名和密码身份验证的第三方工具连接到 AWS CodeCommit 存储库,包括流行的 Git GUI 客户端(例如 TowerUI)和 IDE(例如 Eclipse、IntelliJ 和 Visual工作室)。

[...]


初步答复

有没有什么办法可以配置CodeCommit通过HTTPS访问一个固定的用户和密码来访问存储库?

不,如为 AWS CodeCommit 设置中所述,您必须使用 HTTPS 或 SSH,而前者需要您的 IAM 用户凭证或 Amazon EC2 实例角色的加密签名版本,只要 Git 需要向 AWS 进行身份验证以便与AWS CodeCommit 中的存储库

然而,正如 Mark L. Smith 在他对在 Eclipse git 中使用原生 git 而不是 jgit 的回答中提到的,虽然这些凭据在约 15 分钟后到期,但没有什么可以阻止您自己实施签名过程,并且 Mark 好心地提供了一个响应。显示如何立即使用 jgit 通过 HTTPS 克隆 AWS CodeCommit 存储库的示例,有关详细信息,请参阅jgit-codecommit


dma*_*ein 2

据我所知(两周来我大部分时间都在使用 CodeCommit),不,没有办法使用用户名/密码组合。CodeCommit 的主要功能之一是,它可以在设置后利用 IAM 用户和/或角色或多或少地自动授予访问权限,从而与您现有的 AWS 生态系统集成。是什么阻止您使用凭证助手?

这可能不是您想要的,但您是否尝试过创建 IAM 用户仅用于允许您的服务器访问 CodeCommit?然后,您可以为该用户生成访问密钥和秘密密钥,并将它们作为配置文件存储在服务器的凭证文件(通常为 ~/.aws/credentials)中。然后,您可以设置服务器的 git 配置以将凭证助手与该配置文件一起使用,并且它将自动进行身份验证。关键是使用 IAM 用户凭证,因此它们是永久的,而不是 IAM 角色凭证,后者会过期。