【问题标题】:AWS CodeCommit HTTPS access without setting up credential helperAWS CodeCommit HTTPS 访问,无需设置凭证帮助程序
【发布时间】:2015-10-30 00:09:04
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 除非我遗漏了什么,否则 jgit 不支持凭证助手方法。
    • 如何使用 IAM 角色为 CodeCommit 生成凭证?
    【解决方案2】:

    更新

    截至 2016 年 12 月 22 日,AWS CodeCommit supports the use of a static user name and password 作为通过 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 访问存储库?

    不,正如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

    【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

      这现在是可能的。

      1) 配置 AWS 凭证助手。按照此链接访问类似 Unix 的系统。 Setting up AWS credential helper.

      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
      

      【讨论】:

        猜你喜欢
        • 2019-03-14
        • 2020-09-05
        • 1970-01-01
        • 2021-11-11
        • 1970-01-01
        • 2010-09-07
        • 1970-01-01
        • 2018-07-17
        • 1970-01-01
        相关资源
        最近更新 更多