跨帳戶儲存庫存取權:AccountB 中儲存庫使用者的動作 - AWS CodeCommit

AWS CodeCommit 不再提供給新客戶。的現有客戶 AWS CodeCommit 可以繼續正常使用服務。進一步了解"

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

跨帳戶儲存庫存取權:AccountB 中儲存庫使用者的動作

為了存取 AccountA 中的儲存庫,AccountB 群組的使用者必須設定其本機電腦來存取儲存庫。以下章節提供步驟和範例。

步驟 1:為 AccountB 使用者設定 AWS CLI 和 Git,以存取 AccountA 中的儲存庫

您不能使用SSH金鑰或 Git 憑證來存取另一個 Amazon Web Services 帳戶中的儲存庫。AccountB 使用者必須將其電腦設定為使用 git-remote-codecommit(建議) 或憑證協助程式,才能存取 AccountA 中的共用 CodeCommit 儲存庫。不過,在 AccountB 中存取儲存庫時,您可以繼續使用SSH金鑰或 Git 憑證。

請按照下列步驟使用 git-remote-codecommit 設定存取權。如果您尚未安裝 git-remote-codecommitgit-remote-codecommit請在 Python 套件索引網站上從 下載。

設定 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 設定檔,讓您用來存取美國東部 (俄亥俄) (us-east-2) 中 AccountB 中的 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 用於存取美國東部 (俄亥俄) (us-east-2) 的 AccountA 儲存庫:

    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 組態檔案。根據您的作業系統,此檔案可能位於 Linux、macOS 或 Unix ~/.aws/config上的 或 。drive:\Users\USERNAMEWindows 上的 \.aws\config。

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

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

    account 新增到描述檔組態。提供 AWS AccountB 的帳戶 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、您在 AccountA 中用來存取其他帳戶中儲存庫ARN的角色 ID,以及 AccountB 中預設 AWS 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 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) 複製 執行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. 在 AccountB AWS Management Console 中登入 (888888888888) 作為在 AccountA 中授予跨帳戶儲存庫存取權IAM的使用者。

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

    注意

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

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

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

    • 角色 中,輸入您要擔任的角色名稱,以存取 AccountA 中的儲存庫 (例如,MyCrossAccountRepositoryContributorRole).

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

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

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

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

  4. https://console.aws.amazon.com/codesuite/Codecommit/home 開啟 CodeCommit 主控台。

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

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

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

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