Amazon ECR 中的私有映像複寫 - Amazon ECR

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

Amazon ECR 中的私有映像複寫

您可以設定 Amazon ECR 私有登錄檔,以支援儲存庫的複寫。Amazon ECR 支援跨區域和跨帳戶複寫。若要進行跨帳戶複寫,目的地帳戶必須設定登錄檔許可政策,以允許從來源登錄檔進行複寫。如需詳細資訊,請參閱Amazon ECR 中的私有登錄檔許可

跨帳戶複寫政策需求

若要讓跨帳戶 ECR 複寫正常運作,您必須了解哪個帳戶需要設定哪些政策。本節說明來源和目的地帳戶的政策需求。

政策組態概觀

跨帳戶 ECR 複寫只需要目的地帳戶上的政策組態。來源帳戶不需要任何特殊儲存庫或登錄檔政策。

  • 來源帳戶:在登錄檔設定中設定複寫規則。來源儲存庫不需要其他政策。

  • 目的地帳戶:設定登錄檔許可政策,以允許來源帳戶複寫映像。

目的地登錄檔政策需求

目的地帳戶必須設定登錄許可政策,授予來源帳戶執行下列動作的許可:

  • ecr:ReplicateImage - 允許來源帳戶將映像複寫到目的地登錄檔

  • ecr:CreateRepository - 允許 ECR 在目的地登錄檔中自動建立尚未存在的儲存庫

重要

如果您未授予 ecr:CreateRepository許可,您必須先在目的地帳戶中以相同名稱手動建立儲存庫,才能成功複寫。

範例目的地登錄檔政策:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountReplication", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::SOURCE-ACCOUNT-ID:root" }, "Action": [ "ecr:ReplicateImage", "ecr:CreateRepository" ] } ] }

來源帳戶需求

來源帳戶只需要:

  • 在登錄檔設定中設定複寫規則,以指定目的地帳戶和區域

  • 確保設定複寫的 IAM 主體具有必要的 ECR 許可

來源儲存庫不需要其他政策。來源儲存庫不需要授予複寫許可的儲存庫政策。

常見的誤解

以下是 ECR 跨帳戶複寫政策的常見誤解:

  • 誤解:來源儲存庫需要允許目的地帳戶複寫映像的政策。

    實際:來源儲存庫不需要任何特殊政策即可複寫。

  • 誤解:來源和目的地帳戶都需要登錄政策。

    實際:只有目的地帳戶需要登錄檔許可政策。

  • 誤解:儲存庫政策和登錄檔政策是相同的。

    事實:儲存庫政策控制對個別儲存庫的存取,而登錄政策控制登錄檔層級的操作,例如複寫。

對複寫失敗進行故障診斷

如果跨帳戶複寫失敗,請檢查下列項目:

  • 確認目的地帳戶已設定登錄檔許可政策

  • 確保登錄政策同時包含 ecr:ReplicateImageecr:CreateRepository動作

  • 確認已在目的地登錄政策中正確指定來源帳戶 ID

  • 檢查目的地儲存庫是否存在 (如果ecr:CreateRepository未授予)

  • 檢閱 CloudTrail 日誌是否有失敗CreateRepositoryReplicateImage API 呼叫

私有映像複寫的考量

使用私有映像複寫時應考慮以下事項。

  • 只會複寫於設定複寫後推送到儲存庫的儲存庫內容。不會複寫儲存庫中預先存在的任何內容。針對儲存庫設定複寫後,Amazon ECR 會讓目的地和來源同步保持。

  • 發生複寫時,跨區域和帳戶的儲存庫名稱將保持不變。Amazon ECR 不支援在複寫期間變更儲存庫名稱。

  • 第一次設定私有登錄檔進行複寫時,Amazon ECR 會代表您建立服務連結 IAM 角色。服務連結 IAM 角色授予 Amazon ECR 複寫服務在登錄檔中建立儲存庫和複寫映像所需的許可。如需詳細資訊,請參閱使用 Amazon ECR 的服務連結角色

  • 若要進行跨帳戶複寫,私有登錄檔目的地必須授予許可,才能允許來源登錄複寫其映像。這是藉由設定私有登錄檔許可政策來完成。如需詳細資訊,請參閱Amazon ECR 中的私有登錄檔許可

  • 如果私有登錄檔的許可政策變更為移除許可,先前授予的任何進行中複寫都可能完成。

  • 若要進行跨區域複寫,來源帳戶和目的地帳戶都必須先選擇加入區域,才能在該區域內或對該區域發生任何複寫動作。如需詳細資訊,請參閱《Amazon Web Services 一般參考》中的管理 AWS 區域

  • AWS 分割區之間不支援跨區域複寫。例如,無法將 us-west-2 中的儲存庫複寫到 cn-north-1。如需 AWS 分割區的詳細資訊,請參閱《 AWS 一般參考》中的 ARN 格式

  • 私有登錄檔的複寫設定可能包含最多 25 個唯一目的地,跨越所有規則,最多有 10 個規則總計。每個規則最多可包含 100 個篩選條件。例如,這允許為包含用於生產和測試之映像的儲存庫指定個別規則。

  • 複寫組態支援篩選藉由指定儲存庫字首來複寫私有登錄檔中的儲存庫。如需範例,請參閱「範例:使用儲存庫篩選條件設定跨區域複寫」。

  • 每次映像推送時,複寫動作只會發生一次。例如,如果您將跨區域複寫從 us-west-2us-east-1 和來自 us-east-1us-east-2 進行設定,映像會推送至 us-west-2 僅複寫至 us-east-1,它不會再複寫至 us-east-2。這種行為適用於跨區域和跨帳戶複寫。

  • 大多數映像可在不到 30 分鐘的時間內複製,但在極少數情況下,複製可能需要更長的時間。

  • 登錄檔複寫不會執行任何刪除動作。當複寫映像和儲存庫不再使用時,您可以手動刪除複寫映像和儲存庫。

  • 儲存庫政策 (包括 IAM 政策和生命週期政策) 不會進行複寫,除了它們定義的儲存庫外,也不會有任何影響。

  • 預設不會複寫儲存庫設定,您可以使用儲存庫建立範本複寫儲存庫設定。這些設定包括標籤可變性、加密、儲存庫許可和生命週期政策。如需儲存庫建立範本的詳細資訊,請參閱 用於控制提取快取或複寫動作期間建立之儲存庫的範本

  • 如果在儲存庫上啟用標籤不變性,而且複寫使用與現有映像相同標籤的映像,則會複寫映像,但不會包含重複的標籤。這可能導致映像未標籤。