AWS CodeCommit 不再提供給新客戶。的現有客戶 AWS CodeCommit 可繼續正常使用此服務。了解更多」
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
跨帳戶存放庫存取:帳號中儲存庫使用者的動作 TB
為了存取 AccountA 中的儲存庫,AccountB 群組的使用者必須設定其本機電腦來存取儲存庫。以下章節提供步驟和範例。
步驟 1:為 AccountB 使用者設定 AWS CLI 和 Git,以存取 AccountA A 中的儲存庫
您無法使用SSH金鑰或 Git 登入資料存取其他 Amazon Web Services 帳戶中的儲存庫。AccountB 使用者必須將其電腦設定為使用 git-remote-codecommit (建議) 或認證協助程式來存取 AccountA 中的共用 CodeCommit 存放庫。不過,存取 AccountB 中的儲存庫時,您可以繼續使用SSH金鑰或 Git 認證。
請按照下列步驟使用 git-remote-codecommit 設定存取權。如果您尚未安裝git-remote-codecommit,請從 Python Package 索引網站git-remote-codecommit
若要設定 AWS CLI 和 Git 以進行跨帳戶存取
-
在本地計算機 AWS CLI 上安裝。請參閱安裝 AWS CLI 中適用於您作業系統的指示。
-
在本機電腦上安裝 Git。若要安裝 Git,建議可使用 Git Downloads
或 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 並設定了設定檔,則可以略過此步驟。
例如,執行下列命令來建立預設設 AWS CLI 定檔,您可用來存取美國東部 (俄亥俄) 的 AccountB (us-east-2) 中的 AWS 資源:
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 組態檔案。視您的作業系統而定,此檔案可能位~/.aws/config
於 Linux、macOS 或 Unix 上,或位於drive
:\ 使用者\USERNAME
\ .aws\ 在視窗上配置。 -
在檔案中,找出您已針對存取 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。如果您無法檢視儲存庫,請要求儲存庫管理員以電子郵件傳送 CodeCommit 主控台中共用存放庫「程式碼」頁的URL連結。類似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
-
登錄到 Accoun AWS Management Console tB(
888888888888
) 為已授與 AccountA 中存放庫的跨帳戶存取權的IAM使用者。 -
在導覽列選擇您的使用者名稱,然後從下拉式清單中選擇 Switch Role (切換角色)。
注意
如果您是第一次選取此選項,請檢閱頁面上的資訊,然後再次選擇 Switch Role (切換角色)。
-
在 Switch Role (切換角色) 頁面上,執行下列動作:
-
在帳戶中,輸入 AccountA A 的帳號 ID (例如,
111122223333
). -
在角色中,輸入您想要假設存取 AccountA A 中存放庫的角色名稱 (例如,
MyCrossAccountRepositoryContributorRole
). -
在 Display Name (顯示名稱) 中,輸入此角色的易記名稱。當您擔任此角色時,此名稱會出現在主控台。您下次在主控台想要切換角色時,此名稱也會出現在擔任的角色清單中。
-
(選用) 在 Color (顏色) 中,選擇顯示名稱的標籤。
-
選擇 Switch Role (切換角色)。
如需詳細資訊,請參閱切換到角色 (AWS Management Console)。
-
在https://console.aws.amazon.com/codesuite/代碼提交/
家中打開 CodeCommit 控制台。 如果擔任的角色有許可檢視 AccountA 中儲存庫的名稱,您會看到儲存庫清單,也會出現錯誤訊息,指出您沒有許可檢視其狀態。這是預期的行為。從清單中選擇共享儲存庫的名稱。
如果擔任的角色沒有許可檢視 AccountA 中儲存庫的名稱,您會看到錯誤訊息和沒有儲存庫的空白清單。將URL連結貼到存放庫或修改主控台連結並變更
/list
為共用存放庫的名稱 (例如/
)。MySharedDemoRepo
-
在 Code (程式碼) 中,找出您從本機電腦新增的檔案名稱。選擇此檔案以瀏覽檔案中的程式碼,然後瀏覽儲存庫的其餘部分,並開始使用其功能。
如需詳細資訊,請參閱開始使用 AWS CodeCommit。