仅具有角色(无静态凭据)的AWS跨帐户访问CodeCommit Repo [英] AWS cross account access to CodeCommit repo with roles only (no static credentials)

查看:22
本文介绍了仅具有角色(无静态凭据)的AWS跨帐户访问CodeCommit Repo的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在AWS帐户1111中有CodeCommit RePO1。我需要在将在AWS帐户2222中定期启动和终止的EC2实例中克隆REPO1。启动EC2以在短时间(分钟)内执行一些批处理作业,然后以自动方式终止。

在不生成静态凭据的情况下,如何使用角色在2222中启动EC2实例,从1111克隆REPO1。该过程必须使用bash/CLI自动执行。

几天来,我一直在用头撞桌子,但都没有结果。

推荐答案

您需要在帐户1111中创建一个角色(R1),该角色:

  • 信托账户2222来承担
  • 具有访问存储库REPO1所需的权限

然后,您需要确保EC2实例的实例角色具有Assum eRole权限。这允许您从EC2实例中假定为R1。

现在,在帐户2222中的EC2实例中,您应该设置一个通过该角色访问REPO1的配置文件。您可以通过将类似于以下内容的内容添加到~/.aws/config文件中来完成此操作:

[profile cross-account-role]
role_arn = arn:aws:iam::<1111>:role/<R1>
credential_source = Ec2InstanceMetadata
external_id = <ExternalId of R1>
output = json
region = <Region where REPO1 is>

然后要确认是否已正确设置权限,可以执行以下操作:

aws --profile cross-account-role get-repository --repository-name REPO1

一旦成功,您希望在~/.gitconfig中通过运行:

将Git客户端配置为使用具有正确配置文件的凭据助手
git config --global credential.helper '!aws codecommit --profile cross-account-role credential-helper $@'
git config --global credential.UseHttpPath true

这篇关于仅具有角色(无静态凭据)的AWS跨帐户访问CodeCommit Repo的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆