跨帳戶存放庫存取:帳號中儲存庫使用者的動作 TB - AWS CodeCommit

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 以進行跨帳戶存取
  1. 在本地計算機 AWS CLI 上安裝。請參閱安裝 AWS CLI 中適用於您作業系統的指示。

  2. 在本機電腦上安裝 Git。若要安裝 Git,建議可使用 Git DownloadsGit for Windows 等網站。

    注意

    CodeCommit 支援 Git 版本 1.7.9 及更高版本。Git 版本 2.28 支持配置初始提交的分支名稱。我們建議您使用最新版本的 Git。Git 是一個不斷發展的,定期更新的平台。有時候,功能變更可能會影響其使用的方式 CodeCommit。如果您在使用特定 Git 版本時遇到問題 CodeCommit,請檢閱中的資訊疑難排解

  3. 從終端機或命令列,在您要複製儲存庫的目錄位置執行 git config --local user.namegit config --local user.email 命令,以針對您要對儲存庫所做的遞交,設定使用者名稱和電子郵件。例如:

    git config --local user.name "Saanvi Sarkar" git config --local user.email saanvi_sarkar@example.com

    這些命令不會傳回任何訊息,但您指定的電子郵件和使用者名稱,將會與您對 AccountA 中的儲存庫所做的遞交相關聯。

  4. 執行 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
  5. 再次執行 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
  6. 在純文字編輯器中,開啟 config 檔案,也稱為 AWS CLI 組態檔案。視您的作業系統而定,此檔案可能位~/.aws/config於 Linux、macOS 或 Unix 上,或位於 drive:\ 使用者\USERNAME\ .aws\ 在視窗上配置。

  7. 在檔案中,找出您已針對存取 AccountB 中的儲存庫所設定之對應預設描述檔的項目。其看起來與下列類似:

    [default] region = us-east-2 output = json

    account 新增到描述檔組態。提供 AccountB 的 AWS 帳號 ID。例如:

    [default] account = 888888888888 region = us-east-2 output = json
  8. 在檔案中,尋找對應於 MyCrossAccountAccessProfile 您剛剛創建的配置文件。其看起來與下列類似:

    [profile MyCrossAccountAccessProfile] region = us-east-2 output = json

    accountrole_arnsource_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 pushgit pull以及複製、推送至跨帳戶 CodeCommit儲存庫以及從中提取。您也可以登入 AWS 管理主控台、切換角色,以及使用主 CodeCommit 控台與其他帳戶中的儲存庫互動。

注意

視IAM角色的設定方式而定,您可能可以在的預設頁面上檢視儲存庫 CodeCommit。如果您無法檢視儲存庫,請要求儲存庫管理員以電子郵件傳送 CodeCommit 主控台中共用存放庫「程式碼」頁的URL連結。類似URL於以下內容:

https://console.aws.amazon.com/codecommit/home?region=us-east-2#/repository/MySharedDemoRepo/browse/HEAD/--/
將跨帳戶儲存庫複製到本機電腦
  1. 在命令列或終端機中,在您要複製儲存庫的目錄中,使用 HTTPS (GRC) clone 執行git clone命令URL。例如:

    git clone codecommit://MyCrossAccountAccessProfile@MySharedDemoRepo

    除非您另外指定,否則儲存庫會複製到與儲存庫同名的子目錄。

  2. 切換到複製的儲存庫所在的目錄,然後新增檔案或變更檔案。例如,您可以新增名為的檔案 NewFile.txt.

  3. 將文件添加到本地存儲庫的跟踪更改中,提交更改並將文件推送到 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
  1. 登錄到 Accoun AWS Management Console tB(888888888888) 為已授與 AccountA 中存放庫的跨帳戶存取權的IAM使用者。

  2. 在導覽列選擇您的使用者名稱,然後從下拉式清單中選擇 Switch Role (切換角色)​。

    注意

    如果您是第一次選取此選項,請檢閱頁面上的資訊,然後再次選擇 Switch Role (切換角色)

  3. Switch Role (切換角色) 頁面上,執行下列動作:

    • 帳戶中,輸入 AccountA A 的帳號 ID (例如,111122223333).

    • 角色中,輸入您想要假設存取 AccountA A 中存放庫的角色名稱 (例如,MyCrossAccountRepositoryContributorRole).

    • Display Name (顯示名稱) 中,輸入此角色的易記名稱。當您擔任此角色時,此名稱會出現在主控台。您下次在主控台想要切換角色時,此名稱也會出現在擔任的角色清單中。

    • (選用) 在 Color (顏色) 中,選擇顯示名稱的標籤。

    • 選擇 Switch Role (切換角色)。

    如需詳細資訊,請參閱切換到角色 (AWS Management Console)

  4. https://console.aws.amazon.com/codesuite/代碼提交/家中打開 CodeCommit 控制台。

    如果擔任的角色有許可檢視 AccountA 中儲存庫的名稱,您會看到儲存庫清單,也會出現錯誤訊息,指出您沒有許可檢視其狀態。這是預期的行為。從清單中選擇共享儲存庫的名稱。

    如果擔任的角色沒有許可檢視 AccountA 中儲存庫的名稱,您會看到錯誤訊息和沒有儲存庫的空白清單。將URL連結貼到存放庫或修改主控台連結並變更/list為共用存放庫的名稱 (例如/MySharedDemoRepo)。

  5. Code (程式碼) 中,找出您從本機電腦新增的檔案名稱。選擇此檔案以瀏覽檔案中的程式碼,然後瀏覽儲存庫的其餘部分,並開始使用其功能。

    如需詳細資訊,請參閱開始使用 AWS CodeCommit