联合用户访问AWS CodeCommit

时间:2015-11-16 03:18:36

标签: amazon-web-services amazon-iam aws-codecommit

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

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

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

CodeCommit pricing谈到联合用户为了定价目的而计为活跃用户,这意味着它是可能的。

2 个答案:

答案 0 :(得分:7)

通过HTTPS的AWS CodeCommit可以使用AWS CLI中的任何凭据,包括假定的角色凭证。例如,您可以在AWS CLI配置中使用以下内容(示例来自here):

[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博客文章herehere。按照这些说明运行./samlapi.py或./samlapi_formauth.py后,您可以配置git以使用" saml" CodeCommit存储库的配置文件:

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

答案 1 :(得分:2)

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
    
  5. 配置git以在clone / push / pull / etc ...操作期间使用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 repos执行git操作