跨帳戶儲存庫存取權: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文字方塊中。Replace (取代) 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 管理員。