AWS CodeCommit HTTPS访问,无需设置凭证帮助程序

时间:2015-08-06 17:54:45

标签: git amazon-web-services spring-cloud aws-codecommit

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

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

AWS CodeCommit显然需要在通过HTTPS连接时使用凭据帮助程序,但我不会将设置设置为这样。我想要一个jgit可以使用的用户和密码设置,而无需使用凭证助手生成临时凭证。有什么方法可以实现这个目标吗?

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

4 个答案:

答案 0 :(得分:4)

更新

截至2016年12月22日,AWS CodeCommit supports the use of a static user name and password通过HTTPS 向您的AWS CodeCommit存储库进行身份验证的简化方式:

  

使用Git凭据,您可以在身份和访问管理(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访问存储库?

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

然而,正如Mark L. Smith在回答using native git not jgit in Eclipse git时提到的那样,当 These credentials expire in ~15 minutes 时,没有什么可以阻止您自己实施签名过程,并且Mark友好地提供了一个示例显示如何使用jgit 立即通过HTTPS克隆AWS CodeCommit存储库,有关详细信息,请参阅jgit-codecommit

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

  

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

答案过去是'不',但AWS CodeCommit现在提供HTTPS Git Credentials

这些是静态用户名/密码凭据,可以使用标准凭据管理器(如果有)进行高速缓存,并使用支持用户名/密码身份验证的IDE。 IDE Setup

答案 3 :(得分:0)

现在可以。

1)配置AWS凭证帮助器。对于类似Unix的系统,请单击此链接。 Setting up AWS credential helper.

2)如果git凭证帮助器正常运行,此命令将显示您的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网址。

spring.cloud.config.server.git.uri=https://git-codecommit.us-west-2.amazonaws.com/v1/repos/moa-config