IAM將上游註冊表與 Amazon ECR 私有註冊表同步所需的許可 - Amazon ECR

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

IAM將上游註冊表與 Amazon ECR 私有註冊表同步所需的許可

除了向私有登錄進行驗證以及推送和提取映像所需的 Amazon ECR API 許可之外,還需要下列額外許可才能有效地使用快取規則提取。

  • ecr:CreatePullThroughCacheRule – 授予建立提取快取規則的許可。此權限必須透過以身分識別為基礎IAM的原則授與。

  • ecr:BatchImportUpstreamImage – 授予檢索外部映像並將其匯入到您的私有登錄檔的許可。您可以使用私人登錄權限原則、以身分識別為基礎的原則,或使用以資源為基礎的儲存庫權限IAM原則來授與此權限。如需使用儲存庫許可的詳細資訊,請參閱 Amazon ECR 中的私有儲存庫政策

  • ecr:CreateRepository – 授予在私有登錄檔中建立儲存庫的許可。如果存放快取映像的儲存庫尚不存在,則需要此許可。此權限可透過以身分識別為基礎的IAM原則或私人登錄權限原則授與。

使用登錄檔許可

Amazon ECR 私有登錄許可可可可用於限定個別IAM實體的許可範圍,以使用提取快取。如果IAM實體擁有IAM原則所授與的權限多於登錄權限原則授與的權限,IAM則原則會優先考慮。例如,如果使用者已具有 ecr:* 許可,則在登錄檔層級不需要額外的許可。

  1. 在打開 Amazon ECR 控制台https://console.aws.amazon.com/ecr/

  2. 從導覽列選擇要在其中設定私有登錄檔許可陳述式的區域。

  3. 在導覽窗格中,選擇 Private registry (私有登錄檔)、Registry permissions (登錄檔許可)。

  4. Registry permissions (登錄檔許可) 頁面上,選擇 Generate statement (產生陳述式)。

  5. 針對您要建立的每個提取快取許可政策陳述式,執行下列動作。

    1. 針對 Policy type (政策類型),選擇 Pull through cache policy (提取快取政策)。

    2. 針對 Statement id (陳述式 ID),提供提取快取陳述式政策的名稱。

    3. 對於IAM實體,請指定要包含在策略中的使用者、群組或角色。

    4. 針對 Repository namespace (儲存庫命名空間),選取要與政策建立關聯的提取快取規則。

    5. 針對 Repository names (儲存庫名稱),指定要套用規則的儲存庫基本名稱。例如,如果您想在 Amazon ECR 公共上指定 Amazon Linux 存儲庫,則存儲庫名稱將是amazonlinux

使用下列 AWS CLI 命令來指定使用的私人登錄權限 AWS CLI。

  1. 建立具有您登錄檔政策內容的名為 ptc-registry-policy.json 的本機檔案。下列範例授予建立儲存庫和從 Amazon ECR Public 提取映像的ecr-pull-through-cache-user權限,Amazon Public 是與先前建立的提取快取規則相關聯的上游來源。

    { "Sid": "PullThroughCacheFromReadOnlyRole", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ecr-pull-through-cache-user" }, "Action": [ "ecr:CreateRepository", "ecr:BatchImportUpstreamImage" ], "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/ecr-public/*" }
    重要

    僅當存放快取映像的儲存庫尚不存在時,才需要 ecr-CreateRepository 許可。例如,如果存放庫建立動作和映像提取動作是由不同的IAM主參與者 (例如管理員和開發人員) 完成的。

  2. 使用命put-registry-policy令來設定登錄原則。

    aws ecr put-registry-policy \ --policy-text file://ptc-registry.policy.json

後續步驟

準備好開始使用提取快取規則時,以下為接下來的步驟。