CodeCommit如何区分不同帐户中的相同存储库?

时间:2018-09-25 21:42:26

标签: amazon-web-services aws-codecommit

我遇到了一种奇怪的部署情况,其中涉及在cloudformation下进行代码提交。

AWS CodeCommit允许我在两个单独的AWS账户的相同区域中创建相同的存储库名称。两个存储库都被赋予SSH相同的端点(ssh://git-codecommit.us-west-2.amazonaws.com/v1/repos/ [reponame])

我还能够向两个IAM帐户添加相同的SSH密钥,以授予对这两个同名存储库的访问权限。

除了删除重复项并使用唯一的名称重新创建之外,如何通过git来区分要推送到或从哪个存储库?

1 个答案:

答案 0 :(得分:0)

我终于在这里问了之后不久就开始工作了。我要做的是为每个AWS账户设置不同的公共密钥,并将唯一密钥附加到单独的AWS IAM用户。然后,我可以如下更新我的.ssh配置文件:

Host codecommit-acct1
  Hostname git-codecommit.us-west-2.amazonaws.com
  User [ssh_key_id_1]
  IdentityFile ~/.ssh/[ssh_private_key_1]

Host codecommit-acct2
  Hostname git-codecommit.us-west-2.amazonaws.com
  User [ssh_key_id_2]
  IdentityFile ~/.ssh/[ssh_private_key_2]

我的Git存储库配置文件能够使用'codecommit-acct1'作为主机名,并进行了调整以使用唯一的SSH密钥,从而为AWS提供了足够的信息来标识要使用哪个IAM帐户进行身份验证。

[remote "origin1"]
    url = ssh://codecommit-acct1/v1/repos/[repo_name]
    fetch = +refs/heads/*:refs/remotes/origin/*

[remote "origin2"]
    url = ssh://codecommit-acct2/v1/repos/[repo_name]
    fetch = +refs/heads/*:refs/remotes/origin/*

我在以下https://forums.aws.amazon.com/thread.jspa?threadID=228206的AWS论坛中找到了解决方案