5

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

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

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

有什么方法可以配置 CodeCommit 访问固定用户和密码以通过 HTTPS 访问存储库?

4

4 回答 4

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了解详细信息。

于 2015-08-23T14:34:39.670 回答
2

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

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

于 2015-08-06T18:12:24.277 回答
2

有什么方法可以配置 CodeCommit 访问固定用户和密码以通过 HTTPS 访问存储库?

答案曾经是“不”,但 AWS CodeCommit 现在提供HTTPS Git 凭证

这些是静态用户名/密码凭证,可以使用您的标准凭证管理器(如果有的话)进行缓存,并与支持用户名/密码身份验证的 IDE 一起使用。IDE 设置

于 2017-07-11T17:54:13.987 回答
1

现在这是可能的。

1) 配置 AWS 凭证助手。按照此链接访问类似 Unix 的系统。设置 AWS 凭证助手。

2) 如果 git credential helper 工作正常,此命令会显示您的 AWS 凭证。如果没有使用 --debug 标志运行相同的命令来查找问题。

echo -e "protocol=https\npath=/v1/repos/myrepo\nhost=git-codecommit.us-east-1.amazonaws.com" | aws codecommit credential-helper get

3) 在构建中包含依赖项。

implementation('com.amazonaws:aws-java-sdk-core:1.11.463')

4) 然后在 application.yml 中设置 CodeCommit url。

spring.cloud.config.server.git.uri=https://git-codecommit.us-west-2.amazonaws.com/v1/repos/moa-config
于 2018-12-06T06:40:52.870 回答