如何从特定的 AWS 代码提交帐户克隆分支

How to clone branch from specific AWS Code commit account

我们有 4 个单独的 AWS 账户用于开发、QA、UAT 和 Prod。

我需要从分支名称为 Production 的 AWS Prod 帐户克隆存储库。

问题是我正在使用命令

git clone https://git-codecommit.us-east-1.amazonaws.com/v1/repos/vanguard"

工作正常,但我不确定克隆的存储库属于哪个 AWS 帐户,因为我在将存储库克隆到本地时没有提供任何 AWS 帐户详细信息。

克隆体URL

https://git-codecommit.us-east-1.amazonaws.com/v1/repos/vanguard" 

在所有 AWS 账户中都相同。

如何仅从特定的 AWS Code 提交账户克隆存储库?

您必须在要从中克隆存储库的 AWS 帐户中创建一个 IAM 角色。 IAM 角色会将对该存储库的访问权限委托给 AWS 账户中的 IAM user/users。

然后,您必须将 AWS CLI 配置为使用 AWS Security Token Service (STS) 并在 运行 命令时承担该角色。

另外请注意,每个 CodeCommit 存储库都与一个 AWS 区域相关联。

有关 assuming roles with AWS CLI 的更多信息。

编辑:

以下是启用跨帐户访问 到不同帐户中的存储库需要执行的操作:

存储库帐户操作:

  1. 创建存储库访问策略。
  2. 将此策略附加到同一帐户中的角色,并允许用户帐户中的用户承担此角色。

用户帐户操作:

  1. 创建一个 IAM 用户或 IAM 组。使用这些从其他帐户访问存储库。
  2. 为用户或组分配一个策略,允许他们担任上一步中在存储库帐户中创建的角色。

最后,在您尝试克隆或以其他方式访问存储库之前承担跨帐户角色。此外,对您的凭据文件进行必要的更改 ~/.aws/config

例如:

[profile MyCrossAccountProfile]
role_arn = arn:aws:iam::123456789012:role/MyCrossAccountProfile
source_profile = user1

最后,您需要修改 AWS CLI 凭据助手,以便您使用 MyCrossAccountProfile

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