仅具有角色(无静态凭据)的AWS跨帐户访问CodeCommit Repo [英] AWS cross account access to CodeCommit repo with roles only (no static credentials)
本文介绍了仅具有角色(无静态凭据)的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 config --global credential.helper '!aws codecommit --profile cross-account-role credential-helper $@'
git config --global credential.UseHttpPath true
这篇关于仅具有角色(无静态凭据)的AWS跨帐户访问CodeCommit Repo的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文