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

Git AWS CodeCommit HTTPS访问,无需设置凭据帮助程序,git,amazon-web-services,spring-cloud,aws-codecommit,Git,Amazon Web Services,Spring Cloud,Aws Codecommit,我们正在从GitHub过渡到AWS CodeCommit,以拥有一个紧密集成的环境 一种需要是通过HTTPS访问一个存储库。此repo由ny Spring Cloud Config Server产品访问,该产品使用jgit读取repo并克隆文件以供使用 AWS CodeCommit显然需要在通过HTTPS连接时使用凭证帮助器,但我不希望这样设置。我想要一个用户和密码设置,jgit无需使用凭证助手生成临时凭证即可使用。有没有办法做到这一点 有没有办法将CodeCommit配置为通过HTTPS访问存

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

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

AWS CodeCommit显然需要在通过HTTPS连接时使用凭证帮助器,但我不希望这样设置。我想要一个用户和密码设置,jgit无需使用凭证助手生成临时凭证即可使用。有没有办法做到这一点

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

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

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

Update 截至2016年12月22日,作为通过HTTPS向AWS CodeCommit存储库进行身份验证的简化方法:

使用Git凭据,您可以在标识和访问管理(IAM)控制台中生成静态用户名和密码,用于从命令行、Git CLI或任何支持HTTPS身份验证的Git工具访问AWS CodeCommit存储库

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

[……]


初步答复 有没有办法将CodeCommit配置为访问固定用户,并使用密码通过HTTPS访问存储库

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

然而,正如Mark L.Smith在他的回答中提到的,没有任何东西阻止您自己实施签名过程,Mark善意地提供了一份回复。演示如何立即使用jgit通过HTTPS克隆AWS CodeCommit存储库的示例,有关详细信息,请参阅

有没有办法将CodeCommit配置为访问固定用户,并使用密码通过HTTPS访问存储库

答案过去是“不”,但AWS CodeCommit现在提供了

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

这现在是可能的

1) 配置AWS凭据帮助程序。对于类Unix系统,请遵循此链接

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 url

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

除非我遗漏了什么,否则jgit不支持凭据助手方法。如何使用IAM角色为CodeCommit生成凭据?AWS CodeCommit现在提供静态用户名/密码Git凭据()。