首页 > 解决方案 > CodeCommit 如何区分不同账户中的相同存储库?

问题描述

我遇到了一个奇怪的部署情况,涉及 cloudformation 下的 codecommit。

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

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

除了删除重复项并使用唯一名称重新创建它之外,如何区分您使用 git 推送到哪个存储库或从中提取哪个存储库?

标签: amazon-web-servicesaws-codecommit

解决方案


我终于在这里询问后不久就开始工作了。我要做的是为每个 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/*

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


推荐阅读