8

我已经为 AWS 账户实施了身份联合,以使开发人员能够通过企业单点登录/SAML 使用 AWS 服务。

我对 AWS CodeCommit 所做的所有初步阅读似乎都需要一个附加到特定 IAM 用户的 SSH 密钥以使该用户能够通过 SSH 访问 CodeCommit,或者需要一个用于 HTTPS 访问的访问密钥 ID 和密钥组合。

我看不到让联合用户(即可以通过代入角色而不是特定 IAM 用户登录 AWS 的用户)访问 CodeCommit 存储库的方法。有谁能够帮我?我错过了一些明显的东西吗?

CodeCommit定价讨论了出于定价目的将联合用户计为活动用户,这意味着这是可能的。

4

2 回答 2

8

AWS CodeCommit over HTTPS 可以使用来自 AWS CLI 的任何凭证,包括代入角色凭证。例如,您可以在 AWS CLI 配置中包含以下内容(示例取自此处):

[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadmin
source_profile = default

您将配置 git 以将该配置文件用于 CodeCommit 存储库,并且在您推送或拉取 CodeCommit 存储库时将为您代入该角色。

git config --global credential.helper '!aws --profile marketingadmin codecommit credential-helper $@'

对于 SAML,有更多设置可以让 AWS CLI 能够代入 SAML 角色。有关说明,请参阅此处此处的 AWS 博客文章。在遵循这些说明并运行 ./samlapi.py 或 ./samlapi_formauth.py 后,您可以将 git 配置为使用 CodeCommit 存储库的“saml”配置文件:

git config --global credential.helper '!aws --profile saml codecommit credential-helper $@'
于 2015-11-16T04:44:48.013 回答
3

对于OSX

  1. 安装 git 和 AWS cli
  2. 配置 AWS cli 凭证:

    aws configure
    
  3. 通过修改 ~/.aws/credentials 文件设置包含要承担的角色的my-profile配置文件。请注意,管理员应在拥有 CodeCommit 存储库的 AWS 账户中创建此角色,并且该角色应将您的账户作为受托人并拥有足够的 CodeCommit 权限

    [my-profile]
    role_arn = ARN_OF_THE_ROLE_TO_BE_ASSUMED
    source_profile = default
    
  4. 在 ~/.aws/config 中仔细检查您的区域配置:

    [default]
    region = us-east-1
    

将 git 配置为在克隆/推送/拉取/等操作期间使用 AWS CLI 配置文件。请注意使用my-profile作为要使用的配置文件名称,这反过来又承担了我们已经讨论过的角色

 git config --global credential.helper '!aws --profile "my-profile" codecommit credential-helper $@'
 git config --global credential.UseHttpPath true

您应该能够使用 http 终端节点对属于 AWS账户的 CodeCommit 存储库执行 git 操作

于 2017-05-09T19:42:05.877 回答