跨帳戶儲存庫存取:AccountA 中管理員的動作 - AWS CodeCommit

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

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

跨帳戶儲存庫存取:AccountA 中管理員的動作

若要允許 AccountB 的使用者或群組存取 AccountA 中的儲存庫,AccountA 管理員必須:

  • 在 AccountA 建立政策來授予對儲存庫的存取權。

  • 在 AccountA 中建立角色,供 AccountB 的 IAM 使用者和群組擔任。

  • 將政策連接到角色。

以下章節提供步驟和範例。

步驟 1:在 AccountA 中建立儲存庫存取的政策

您可以在 AccountA 中建立政策,將 AccountA 中儲存庫的存取權授予 AccountB 中的使用者。根據您想允許的存取層級而定,請執行以下其中一項:

  • 設定政策,以允許 AccountB 使用者存取特定的儲存庫,但不允許他們檢視 AccountA 中所有儲存庫的清單。

  • 設定額外的存取權限,以允許 AccountB 使用者從 AccountA 中所有儲存庫的清單中選擇儲存庫。

建立儲存庫存取政策
  1. 以具有在 AccountA 中建立政策許可IAM的使用者身分登入 AWS 管理主控台。

  2. 開啟位於 IAM 的 https://console.aws.amazon.com/iam/ 主控台。

  3. 在導覽窗格中,選擇政策

  4. 選擇 Create policy (建立政策)。

  5. 選擇 JSON索引標籤,並將下列JSON政策文件貼到JSON文字方塊中。us-east-2 將 取代 AWS 區域 為 儲存庫的 ,111122223333將 取代為 AccountA 的帳戶 ID,並將 MySharedDemoRepo取代為 AccountA 中儲存 CodeCommit 庫的名稱:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:BatchGet*", "codecommit:Create*", "codecommit:DeleteBranch", "codecommit:Get*", "codecommit:List*", "codecommit:Describe*", "codecommit:Put*", "codecommit:Post*", "codecommit:Merge*", "codecommit:Test*", "codecommit:Update*", "codecommit:GitPull", "codecommit:GitPush" ], "Resource": [ "arn:aws:codecommit:us-east-2:111122223333:MySharedDemoRepo" ] } ] }

    如果您希望擔任此角色的使用者能夠檢視 CodeCommit 主控台首頁上的儲存庫清單,請將額外的陳述式新增至政策,如下所示:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:BatchGet*", "codecommit:Create*", "codecommit:DeleteBranch", "codecommit:Get*", "codecommit:List*", "codecommit:Describe*", "codecommit:Put*", "codecommit:Post*", "codecommit:Merge*", "codecommit:Test*", "codecommit:Update*", "codecommit:GitPull", "codecommit:GitPush" ], "Resource": [ "arn:aws:codecommit:us-east-2:111122223333:MySharedDemoRepo" ] }, { "Effect": "Allow", "Action": "codecommit:ListRepositories", "Resource": "*" } ] }

    擔任此角色的使用者可以使用這個存取權,更輕鬆地運用此政策來找出其可存取的儲存庫。他們可以從清單中選擇儲存庫名稱,就會自動前往共用儲存庫的首頁 (Code)。使用者無法存取他們在清單中看到的其他任何儲存庫,但可以在 Dashboard (儀表板) 頁面上檢視 AccountA 中的儲存庫。

    如果您不想允許擔任該角色的使用者檢視 AccountA 中所有儲存庫的清單,請使用第一個政策範例,但請務必將直接連結傳送至 CodeCommit 主控台中共用儲存庫的首頁。

  6. 選擇檢閱政策。政策驗證器會報告語法錯誤 (例如,如果您忘記將範例 Amazon Web Services 帳戶 ID 和儲存庫名稱取代為您的 Amazon Web Services 帳戶 ID 和儲存庫名稱)。

  7. 檢閱政策頁面上,輸入政策的名稱 (例如,CrossAccountAccessForMySharedDemoRepo)。您也可以提供此政策的選用描述。選擇 建立政策

步驟 2:在 AccountA 中建立儲存庫存取的角色

設定政策之後,請建立角色供 AccountB 的 IAM 使用者和群組擔任,並將此政策連接到該角色。

建立儲存庫存取角色
  1. 在 IAM 主控台,選擇 Roles (角色)

  2. 選擇建立角色

  3. 選擇另一個 Amazon Web Services 帳戶

  4. 帳戶 ID 中,輸入 AccountB 的 Amazon Web Services 帳戶 ID (例如 888888888888)。選擇下一步:許可

  5. 連接許可政策中,選取您在先前程序中建立的政策 (CrossAccountAccessForMySharedDemoRepo)。選擇下一步:檢閱

  6. 角色名稱中,輸入角色的名稱 (例如 MyCrossAccountRepositoryContributorRole)。您也可以輸入選用描述,協助其他人了解該角色的用途。

  7. 選擇建立角色

  8. 開啟您剛建立的角色,然後複製角色 ARN(例如 arn:aws:iam::111122223333:role/MyCrossAccountRepositoryContributorRole)。您需要ARN將此提供給 AccountB 管理員。