本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
跨账户仓库访问:AccountB 中存储库用户的操作
要访问 AccountA 中的存储库,AccountB 组中的用户必须配置其本地计算机以访问存储库。以下各节提供了步骤和示例。
步骤 1:为 AccountB 用户配置Amazon CLI和 Git 以访问 AccountA 中的存储库
您不能使用 SSH 密钥或 Git 凭证访问其他Amazon Web Services 账户中的存储库。AccountB 用户必须将其计算机配置为使用git-remote-codecommit(推荐)或凭据助手来访问 AccountA 中的共享 CodeCommit 存储库。不过,您在访问 AccountB 中的存储库时,可以继续使用 SSH 密钥或 Git 凭证。
请按照以下步骤使用 git-remote-codecommit 配置访问权限。如果您尚未安装git-remote-codecommit,请从 Python Pac git-remote-codecommit
配置 Amazon CLI 和 Git 以进行跨账户访问
-
在本地计算机上安装 Amazon CLI。请参阅安装 Amazon 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 用户提供访问密钥和私有密钥。
注意 如果您已安装 Amazon CLI 并配置了配置文件 ,则可跳过该步骤。
例如,运行以下命令创建一个默认Amazon CLI配置文件,可让您在美国东部(俄亥俄)(us-east-2)的 AccountB(us-east-2)中访问Amazon资源:
aws configure
当系统提示时,请提供以下信息:
Amazon Access Key ID [None]:
Your-IAM-User-Access-Key
Amazon 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 用户提供访问密钥和私有密钥。例如,运行以下命令创建一个名为的Amazon CLI配置文件
MyCrossAccountAccessProfile
,可让您在美国东部(俄亥俄)(us-east-2)的 AccountA 中访问存储库:aws configure --profile
MyCrossAccountAccessProfile
当系统提示时,请提供以下信息:
Amazon Access Key ID [None]:
Your-IAM-User-Access-Key
Amazon 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
文件(也称为 Amazon CLI 配置文件)。根据您的操作系统,此文件可能位于 Linux、macOS 或 Unix~/.aws/config
上,或者位于 Windows 上的驱动器
:\ 用户\ 用户名
\ .aws\ config。 -
在文件中,找到与您为访问 AccountB 中的存储库而配置的默认配置文件相对应的条目。如下所示:
[default] region = us-east-2 output = json
将
account
添加到配置文件配置。提供AccountB 的Amazon账户 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、您假设访问另一个账户中存储库的 AccountA 角色的 ARN 以及您在 AccountB 中的默认Amazon CLI配置文件名称。例如:[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 clone、git push 和 git pull 来克隆跨账户 CodeCommit 存储库、推送到其中以及从其中提取。您还可以登录Amazon管理控制台、切换角色并使用 CodeCommit 控制台与其他账户中的存储库进行交互。
根据 IAM 角色的配置方式,您可能可以在的默认页面上查看存储库 CodeCommit。如果您无法查看存储库,请要求存储库管理员通过电子邮件向您发送指向 CodeCommit 控制台中共享存储库代码页面的 URL 链接。该 URL 类似于以下内容:
https://console.aws.amazon.com/codecommit/home?region=
us-east-2
#/repository/MySharedDemoRepo
/browse/HEAD/--/
将跨账户存储库克隆到本地计算机
-
在命令行或终端,在要克隆存储库的目录中,运行带 HTTPS (GRC) 克隆 URL 的 git clone 命令。例如:
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 和Amazon CodeCommit。
现在您已经添加了文件,请前往 CodeCommit 控制台查看您的提交、查看其他用户对存储库的更改、参与拉取请求等。
在 CodeCommit 控制台中访问跨账户存储库
-
以 IAM 用户身份登录 in AccountB (
888888888888
),该用户已被授予对 AccountA 中存储库的跨账户访问权限。Amazon Web Services Management Console -
在导航栏中选择您的用户名,然后在下拉列表中选择切换角色。
注意 如果这是您首次选择此选项,请查看该页面上的信息,然后再次选择切换角色。
-
在 Switch Role (切换角色) 页面上,执行以下操作:
-
在账户中,输入AccountA 的账户 ID(例如,
111122223333
)。 -
在 “角色” 中,输入要在 AccountA 中访问存储库时要担任的角色的名称(例如,
MyCrossAccountRepositoryContributorRole
)。 -
在 Display Name (显示名称) 中,输入此角色的友好名称。当您代入此角色时,该名称将显示在控制台中。此外,当您下次想在控制台中切换角色时,该名称会显示在已代入角色的列表中。
-
(可选) 在颜色中,选择显示名称的颜色标签。
-
选择 Switch Role。
-
通过 https://console.aws.amazon.com/codesuite/codecommit/home
打开 CodeCommit 主机。 如果已代入角色有权查看 AccountA 中的存储库的名称,您会看到一个存储库列表,并且会显示一条错误消息,告知您无权查看其状态。这是预期行为。从该列表中选择共享存储库的名称。
如果已代入角色无权查看 AccountA 中的存储库的名称,您会看到一条错误消息和一个没有存储库的空白列表。粘贴指向存储库的 URL 链接,或修改控制台链接并将
/list
更改为共享存储库的名称 (例如,/
)。MySharedDemoRepo
-
在代码中,找到您已从本地计算机中添加的文件的名称。选择该名称以浏览文件中的代码,然后浏览存储库的其余内容并开始使用其功能。
有关更多信息,请参阅 开始使用 Amazon CodeCommit。