AWS CodeCommit 不再向新客户提供。 AWS CodeCommit 的现有客户可以继续正常使用该服务。了解更多
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
跨账户存储库访问:AccountB 中存储库用户的操作
要访问 AccountA 中的存储库,AccountB 组中的用户必须配置其本地计算机以访问存储库。以下各节提供了步骤和示例。
步骤 1:配置 AWS CLI 和 Git,让 AccountB 用户能够访问 AccountA 中的仓库
您不能使用SSH密钥或 Git 凭证访问其他 Amazon Web Services 账户中的存储库。AccountB 用户必须将其计算机配置为使用git-remote-codecommit(推荐)或凭据助手来访问 AccountA CodeCommit 中的共享存储库。但是,在访问 AccountB 中的存储库时,您可以继续使用SSH密钥或 Git 凭证。
请按照以下步骤使用 git-remote-codecommit 配置访问权限。如果尚未安装 git-remote-codecommit,请在 Python 程序包索引网站上通过 git-remote-codecommit
配置 AWS CLI 和 Git 以实现跨账户访问
-
在本地计算机 AWS CLI 上安装。请参阅安装 AWS CLI 中有关您的操作系统的说明。
-
在本地计算机上安装 Git。要安装 Git,建议访问 Git 下载
或 Git for Windows 等网站。 注意
CodeCommit 支持 Git 版本 1.7.9 及更高版本。Git 版本 2.28 支持为初始提交配置分支名称。我们建议使用最新版本的 Git。Git 是一个不断发展的平台,会定期进行更新。有时,功能更改可能会影响其工作方式 CodeCommit。如果您在使用特定版本的 Git 时遇到问题 CodeCommit,请查看中的信息故障排除。
-
从终端或命令行中,在要克隆存储库的目录位置,运行 git config --local user.name 和 git config --local user.email 命令可为您将对存储库做出的提交设置用户名和电子邮件。例如:
git config --local user.name "Saanvi Sarkar" git config --local user.email saanvi_sarkar@example.com
这些命令未返回任何内容,但您指定的电子邮件和用户名将与您对 AccountA 中的存储库进行的提交关联。
-
运行 aws configure --profile 命令以配置在连接到 AccountB 中的资源时要使用的默认配置文件。出现提示时,请为您的IAM用户提供访问密钥和私有密钥。
注意
如果您已经安装 AWS CLI 并配置了配置文件,则可以跳过此步骤。
例如,运行以下命令创建用于访问美国东部(俄亥俄州)AccountB(us-east-2)中 AWS 资源的默认 AWS CLI 配置文件:
aws configure
当系统提示时,请提供以下信息:
AWS Access Key ID [None]:
Your-IAM-User-Access-Key
AWS Secret Access Key ID [None]:Your-IAM-User-Secret-Access-Key
Default region name ID [None]:us-east-2
Default output format [None]: json -
再次运行 aws configure --profile 命令可配置在连接到 AccountA 中的存储库时要使用的命名配置文件。出现提示时,请为您的IAM用户提供访问密钥和私有密钥。例如,运行以下命令来创建名为的 AWS CLI 配置文件
MyCrossAccountAccessProfile
你用来访问美国东部(俄亥俄州)AccountA(us-east-2)中存储库的内容:aws configure --profile
MyCrossAccountAccessProfile
当系统提示时,请提供以下信息:
AWS Access Key ID [None]:
Your-IAM-User-Access-Key
AWS Secret Access Key ID [None]:Your-IAM-User-Secret-Access-Key
Default region name ID [None]:us-east-2
Default output format [None]: json -
在纯文本编辑器中,打开
config
文件(也称为 AWS CLI 配置文件)。根据您的操作系统,此文件可能位于 Linux、macOS 或 Unix~/.aws/config
上,或者位于drive
:\ 用户\USERNAME
Windows 上的\ .aws\ config。 -
在文件中,找到与您为访问 AccountB 中的存储库而配置的默认配置文件相对应的条目。如下所示:
[default] region = us-east-2 output = json
将
account
添加到配置文件配置。提供 AccountB 的 AWS 账户 ID。例如:[default] account =
888888888888
region = us-east-2 output = json -
在文件中,找到与之对应的条目
MyCrossAccountAccessProfile
您刚刚创建的个人资料。如下所示:[profile
MyCrossAccountAccessProfile
] region = us-east-2 output = json将
account
、role_arn
和source_profile
添加到配置文件配置。提供 AccountA 的 Amazon Web Services 账户 ID、您假设在另一个账户中访问存储库的账户 A 中的角色以及 AccountB 中您的默认个人资料 AWS CLI 的名称。ARN例如:[profile
MyCrossAccountAccessProfile
] region = us-east-2 account =111122223333
role_arn = arn:aws:iam::111122223333
:role/MyCrossAccountRepositoryContributorRole
source_profile =default
output = json保存更改并关闭纯文本编辑器。
第 2 步:在 AccountA 中克隆并访问 CodeCommit 仓库
运行git clonegit push、和git pull以克隆、推送到跨账户存储库和从中拉取跨账户 CodeCommit存储库。您还可以登录 AWS 管理控制台、切换角色并使用 CodeCommit 控制台与其他账户中的存储库进行交互。
注意
根据IAM角色的配置方式,您可能可以在的默认页面上查看存储库 CodeCommit。如果您无法查看存储库,请仓库管理员通过电子邮件向您发送URL指向 CodeCommit 控制台中共享仓库代码页面的链接。类似URL于以下内容:
https://console.aws.amazon.com/codecommit/home?region=
us-east-2
#/repository/MySharedDemoRepo
/browse/HEAD/--/
将跨账户存储库克隆到本地计算机
-
在命令行或终端上,在要克隆存储库的目录中,使用 HTTPS (GRC) clone 运行git clone命令URL。例如:
git clone codecommit://
MyCrossAccountAccessProfile
@MySharedDemoRepo
除非另行指定,否则会将存储库克隆到与存储库同名的子目录中。
-
将目录更改为克隆的存储库,并添加或更改文件。例如,您可以添加一个名为的文件
NewFile.txt
. -
将文件添加到本地存储库的跟踪更改中,提交更改,然后将文件推送到 CodeCommit 存储库。例如:
git add
NewFile.txt
git commit -m "Added a file to test cross-account access to this repository" git push有关更多信息,请参阅 Git 和 AWS CodeCommit 入门。
现在您已经添加了文件,请前往 CodeCommit 控制台查看您的提交、查看其他用户对存储库的更改、参与拉取请求等。
在控制台中访问跨账户存储库 CodeCommit
-
登录到账 AWS Management Console 号B (
888888888888
) 作为被授予对 AccountA 中仓库的跨账户访问权限的IAM用户。 -
在导航栏中选择您的用户名,然后在下拉列表中选择切换角色。
注意
如果这是您首次选择此选项,请查看该页面上的信息,然后再次选择切换角色。
-
在 Switch Role (切换角色) 页面上,执行以下操作:
-
在账户中,输入账户 A 的账户 ID(例如
111122223333
). -
在 “角色” 中,输入您要代入的 accountA 中访问存储库的角色名称(例如
MyCrossAccountRepositoryContributorRole
). -
在 Display Name (显示名称) 中,输入此角色的友好名称。当您代入此角色时,该名称将显示在控制台中。此外,当您下次想在控制台中切换角色时,该名称会显示在已代入角色的列表中。
-
(可选) 在颜色中,选择显示名称的颜色标签。
-
选择 Switch Role。
有关更多信息,请参阅切换到角色(AWS Management Console)。
-
在 https://console.aws.amazon.com/codesuite/codemmit
/home 打开 CodeCommit 控制台。 如果已代入角色有权查看 AccountA 中的存储库的名称,您会看到一个存储库列表,并且会显示一条错误消息,告知您无权查看其状态。这是预料之中的行为。从该列表中选择共享存储库的名称。
如果已代入角色无权查看 AccountA 中的存储库的名称,您会看到一条错误消息和一个没有存储库的空白列表。粘贴存储库URL链接或修改控制台链接,然后更改
/list
为共享存储库的名称(例如/
)。MySharedDemoRepo
-
在代码中,找到您已从本地计算机中添加的文件的名称。选择该名称以浏览文件中的代码,然后浏览存储库的其余内容并开始使用其功能。
有关更多信息,请参阅 入门 AWS CodeCommit。