在 Amazon 中建立提取快取規則 ECR - Amazon ECR

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

在 Amazon 中建立提取快取規則 ECR

對於每個包含您想要在 Amazon ECR私有登錄檔中快取之映像的上游登錄檔,您必須建立提取快取規則。

對於需要身分驗證的上游註冊,您必須將憑證存放在 Secrets Manager 秘密中。您可以使用現有的秘密或建立新的秘密。您可以在 Amazon ECR主控台或 Secrets Manager 主控台中建立 Secrets Manager 秘密。若要使用 Secrets Manager 主控台而非 Amazon ECR主控台建立 Secrets Manager 秘密,請參閱 將上游儲存庫憑證存放在 AWS Secrets Manager 秘密中

必要條件

  • 確認您具有建立提取快取規則的適當IAM許可。如需相關資訊,請參閱 IAM 將上游登錄檔與 Amazon ECR私有登錄檔同步所需的許可

  • 對於需要身分驗證的上游登錄:如果您想要使用現有的秘密,請確認 Secrets Manager 秘密符合下列要求:

    • 秘密的名稱開頭為 ecr-pullthroughcache/。 AWS Management Console 只會顯示具有 ecr-pullthroughcache/ 字首的 Secrets Manager 秘密。

    • 秘密所在的帳戶和區域必須與提取快取規則所在的帳戶和區域相符。

建立提取快取規則 (AWS Management Console)

下列步驟說明如何使用 Amazon ECR主控台建立提取快取規則和 Secrets Manager 秘密。若要使用 Secrets Manager 主控台建立秘密,請參閱 將上游儲存庫憑證存放在 AWS Secrets Manager 秘密中

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

  2. 從導覽列選擇要在其中進行私有登錄檔設定的區域。

  3. 在導覽窗格中,選擇 Private registry (私有登錄檔)、Pull through cache (提取快取)。

  4. Pull through cache configuration (提取快取組態) 頁面上,選擇 Add rule (新增規則)。

  5. 步驟 1:指定來源頁面中,針對登錄檔 ,從上游登錄檔清單中選擇 Amazon ECR Public、Kubernetes 或 Quay,然後選擇下一步。

  6. 步驟 2:指定目的地頁面上,針對 Amazon ECR儲存庫字首 ,指定快取從來源公有登錄檔提取的影像時要使用的儲存庫命名空間字首,然後選擇下一步 。預設會填入命名空間,但也可以指定自訂命名空間。

  7. 步驟 3:檢閱並建立頁面上,檢閱提取快取規則組態,接著選擇建立

  8. 為要建立的每個提取快取重複前面的步驟。系統會針對每個區域分別建立提取快取規則。

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

  2. 從導覽列選擇要在其中進行私有登錄檔設定的區域。

  3. 在導覽窗格中,選擇 Private registry (私有登錄檔)、Pull through cache (提取快取)。

  4. Pull through cache configuration (提取快取組態) 頁面上,選擇 Add rule (新增規則)。

  5. 步驟 1:指定來源頁面上,針對登錄檔選擇 Docker Hub下一步

  6. 步驟 2:設定身分驗證頁面上,針對上游憑證,您必須將 Docker Hub 的身分驗證憑證儲存在 AWS Secrets Manager 秘密中。您可以指定現有的秘密,或使用 Amazon ECR主控台建立新的秘密。

    1. 若要使用現有的秘密,請選擇使用現有的 AWS 秘密 。針對秘密名稱,使用下拉式選單選取您現有的秘密,接著選擇下一步

      注意

      AWS Management Console 只會顯示 Secrets Manager 秘密,其中包含使用 ecr-pullthroughcache/ 字首的名稱。秘密也必須位於在其中建立提取快取規則的相同帳戶和區域中。

    2. 若要建立新秘密,請選擇建立 AWS 秘密,執行下列動作,接著選擇下一步

      1. 針對秘密名稱,指定秘密的描述性名稱。秘密名稱必須含有 1 至 512 個 Unicode 字元。

      2. 針對 Docker Hub 電子郵件 ,指定您的 Docker Hub 電子郵件。

      3. 針對 Docker Hub 存取字符,請指定您的 Docker Hub 存取字符。如需建立 Docker Hub 存取字符的詳細資訊,請參閱 Docker 文件中的建立和管理存取字符

  7. 步驟 3:指定目的地頁面上,針對 Amazon ECR儲存庫字首 ,指定快取從來源公有登錄檔提取的影像時要使用的儲存庫命名空間,然後選擇下一步

    預設會填入命名空間,但也可以指定自訂命名空間。

  8. 步驟 4:檢閱並建立頁面上,檢閱提取快取規則組態,接著選擇建立

  9. 為要建立的每個提取快取重複前面的步驟。系統會針對每個區域分別建立提取快取規則。

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

  2. 從導覽列選擇要在其中進行私有登錄檔設定的區域。

  3. 在導覽窗格中,選擇 Private registry (私有登錄檔)、Pull through cache (提取快取)。

  4. Pull through cache configuration (提取快取組態) 頁面上,選擇 Add rule (新增規則)。

  5. 步驟 1:指定來源頁面上,針對登錄檔 ,選擇GitHub 容器登錄檔 下一個

  6. 步驟 2:設定身分驗證頁面上,對於上游憑證 ,您必須將 GitHub AWS Secrets Manager 容器登錄檔的身分驗證憑證存放在秘密中。您可以指定現有的秘密,或使用 Amazon ECR主控台建立新的秘密。

    1. 若要使用現有的秘密,請選擇使用現有的 AWS 秘密 。針對秘密名稱,使用下拉式選單選取您現有的秘密,接著選擇下一步

      注意

      AWS Management Console 只會顯示 Secrets Manager 秘密,其中包含使用 ecr-pullthroughcache/ 字首的名稱。秘密也必須位於在其中建立提取快取規則的相同帳戶和區域中。

    2. 若要建立新秘密,請選擇建立 AWS 秘密,執行下列動作,接著選擇下一步

      1. 針對秘密名稱,指定秘密的描述性名稱。秘密名稱必須含有 1 至 512 個 Unicode 字元。

      2. 針對GitHub 容器登錄檔使用者名稱 ,指定您的 GitHub 容器登錄檔使用者名稱。

      3. 針對GitHub 容器登錄檔存取權杖 ,指定您的 GitHub 容器登錄檔存取權杖。如需建立 GitHub 存取權杖的詳細資訊,請參閱 GitHub 文件中的管理您的個人存取權杖

  7. 步驟 3:指定目的地頁面上,針對 Amazon ECR儲存庫字首 ,指定快取從來源公有登錄檔提取的影像時要使用的儲存庫命名空間,然後選擇下一步

    預設會填入命名空間,但也可以指定自訂命名空間。

  8. 步驟 4:檢閱並建立頁面上,檢閱提取快取規則組態,接著選擇建立

  9. 為要建立的每個提取快取重複前面的步驟。系統會針對每個區域分別建立提取快取規則。

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

  2. 從導覽列選擇要在其中進行私有登錄檔設定的區域。

  3. 在導覽窗格中,選擇 Private registry (私有登錄檔)、Pull through cache (提取快取)。

  4. Pull through cache configuration (提取快取組態) 頁面上,選擇 Add rule (新增規則)。

  5. 步驟 1:指定來源頁面上,執行下列動作。

    1. 針對登錄檔,選擇 Microsoft Azure Container Registry

    2. 針對來源登錄檔 URL,指定 Microsoft Azure 容器登錄檔的名稱,然後選擇下一個

      重要

      您只需要指定字首,因為會代表您填入 .azurecr.io 字尾。

  6. 步驟 2:設定身分驗證頁面上,針對上游憑證,您必須將 Microsoft Azure Container Registry 的身分驗證憑證儲存在 AWS Secrets Manager 秘密中。您可以指定現有的秘密,或使用 Amazon ECR主控台建立新的秘密。

    1. 若要使用現有的秘密,請選擇使用現有的 AWS 秘密 。針對秘密名稱,使用下拉式選單選取您現有的秘密,接著選擇下一步

      注意

      AWS Management Console 只會顯示 Secrets Manager 秘密,其中包含使用 ecr-pullthroughcache/ 字首的名稱。秘密也必須位於在其中建立提取快取規則的相同帳戶和區域中。

    2. 若要建立新秘密,請選擇建立 AWS 秘密,執行下列動作,接著選擇下一步

      1. 針對秘密名稱,指定秘密的描述性名稱。秘密名稱必須含有 1 至 512 個 Unicode 字元。

      2. 對於 Microsoft Azure Container Registry 使用者名稱,請指定您的 MMicrosoft Azure Container Registry 使用者名稱。

      3. 對於 Microsoft Azure Container Registry 存取字符,請指定您的 Microsoft Azure Container Registry 存取字符。如需建立 Microsoft Azure Container Registry 存取字符的詳細資訊,請參閱 Microsoft Azure 文件中的建立字符 - 入口網站

  7. 步驟 3:指定目的地頁面上,針對 Amazon ECR儲存庫字首 ,指定快取從來源公有登錄檔提取的影像時要使用的儲存庫命名空間,然後選擇下一步

    預設會填入命名空間,但也可以指定自訂命名空間。

  8. 步驟 4:檢閱並建立頁面上,檢閱提取快取規則組態,接著選擇建立

  9. 為要建立的每個提取快取重複前面的步驟。系統會針對每個區域分別建立提取快取規則。

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

  2. 從導覽列選擇要在其中進行私有登錄檔設定的區域。

  3. 在導覽窗格中,選擇 Private registry (私有登錄檔)、Pull through cache (提取快取)。

  4. Pull through cache configuration (提取快取組態) 頁面上,選擇 Add rule (新增規則)。

  5. 步驟 1:指定來源頁面上,針對登錄檔,選擇 GitLab 容器登錄檔,下一步。

  6. 步驟 2:設定身分驗證頁面上,對於上游憑證 ,您必須將 GitLab AWS Secrets Manager 容器登錄檔的身分驗證憑證存放在秘密中。您可以指定現有的秘密,或使用 Amazon ECR主控台建立新的秘密。

    1. 若要使用現有的秘密,請選擇使用現有的 AWS 秘密 。針對秘密名稱,使用下拉式選單選取您現有的秘密,接著選擇下一步。如需有關使用 Secrets Manager 主控台建立 Secrets Manager 秘密的詳細資訊,請參閱 將上游儲存庫憑證存放在 AWS Secrets Manager 秘密中

      注意

      AWS Management Console 只會顯示 Secrets Manager 秘密,其中包含使用 ecr-pullthroughcache/ 字首的名稱。秘密也必須位於在其中建立提取快取規則的相同帳戶和區域中。

    2. 若要建立新秘密,請選擇建立 AWS 秘密,執行下列動作,接著選擇下一步

      1. 針對秘密名稱,指定秘密的描述性名稱。秘密名稱必須含有 1 至 512 個 Unicode 字元。

      2. 針對GitLab 容器登錄檔使用者名稱 ,指定您的 GitLab 容器登錄檔使用者名稱。

      3. 針對GitLab 容器登錄檔存取權杖 ,指定您的 GitLab 容器登錄檔存取權杖。如需建立 GitLab 容器登錄檔存取權杖的詳細資訊,請參閱 GitLab 文件中的個人存取權杖 群組存取權杖 專案存取權杖

  7. 步驟 3:指定目的地頁面上,針對 Amazon ECR儲存庫字首 ,指定快取從來源公有登錄檔提取的影像時要使用的儲存庫命名空間,然後選擇下一步

    預設會填入命名空間,但也可以指定自訂命名空間。

  8. 步驟 4:檢閱並建立頁面上,檢閱提取快取規則組態,接著選擇建立

  9. 為要建立的每個提取快取重複前面的步驟。系統會針對每個區域分別建立提取快取規則。

建立提取快取規則 (AWS CLI)

使用 create-pull-through-cache-rule AWS CLI 命令來建立 Amazon ECR私有登錄檔的提取快取規則。針對需要身分驗證的上游登錄檔,您必須將憑證儲存在 Secrets Manager 秘密中。若要使用 Secrets Manager 主控台建立秘密,請參閱 將上游儲存庫憑證存放在 AWS Secrets Manager 秘密中

提供給每個受支援的登錄檔的下列範例。

下列範例會建立 Amazon ECR Public 登錄檔的提取快取規則。其會指定 ecr-public 的儲存庫字首,這會導致使用提取快取規則建立的每個儲存庫具有 ecr-public/upstream-repository-name 的命名規則。

aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix ecr-public \ --upstream-registry-url public.ecr.aws \ --region us-east-2

下列範例會為 Kubernetes 公有登錄檔建立提取快取規則。其會指定 kubernetes 的儲存庫字首,這會導致使用提取快取規則建立的每個儲存庫具有 kubernetes/upstream-repository-name 的命名規則。

aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix kubernetes \ --upstream-registry-url registry.k8s.io \ --region us-east-2

下列範例會為 Quay 公有登錄檔建立提取快取規則。其會指定 quay 的儲存庫字首,這會導致使用提取快取規則建立的每個儲存庫具有 quay/upstream-repository-name 的命名規則。

aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix quay \ --upstream-registry-url quay.io \ --region us-east-2

下列範例會為 Docker Hub 登錄檔建立提取快取規則。其會指定 docker-hub 的儲存庫字首,這會導致使用提取快取規則建立的每個儲存庫具有 docker-hub/upstream-repository-name 的命名規則。您必須指定包含 Docker Hub 憑證之秘密的完整 Amazon Resource Name (ARN)。

aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix docker-hub \ --upstream-registry-url registry-1.docker.io \ --credential-arn arn:aws:secretsmanager:us-east-2:111122223333:secret:ecr-pullthroughcache/example1234 \ --region us-east-2

下列範例會建立 GitHub 容器登錄檔的提取快取規則。其會指定 docker-hub 的儲存庫字首,這會導致使用提取快取規則建立的每個儲存庫具有 github/upstream-repository-name 的命名規則。您必須指定包含 GitHub Container Registry 憑證之秘密的完整 Amazon Resource Name (ARN)。

aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix github \ --upstream-registry-url ghcr.io \ --credential-arn arn:aws:secretsmanager:us-east-2:111122223333:secret:ecr-pullthroughcache/example1234 \ --region us-east-2

下列範例會建立 Microsoft Azure Container Registry 的提取快取規則。其會指定 azure 的儲存庫字首,這會導致使用提取快取規則建立的每個儲存庫具有 azure/upstream-repository-name 的命名規則。您必須指定包含 Microsoft Azure Container Registry 憑證之秘密的完整 Amazon Resource Name (ARN)。

aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix azure \ --upstream-registry-url myregistry.azurecr.io \ --credential-arn arn:aws:secretsmanager:us-east-2:111122223333:secret:ecr-pullthroughcache/example1234 \ --region us-east-2

下列範例會建立 GitLab 容器登錄檔的提取快取規則。其會指定 gitlab 的儲存庫字首,這會導致使用提取快取規則建立的每個儲存庫具有 gitlab/upstream-repository-name 的命名規則。您必須指定包含 GitLab Container Registry 憑證之秘密的完整 Amazon Resource Name (ARN)。

aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix gitlab \ --upstream-registry-url registry.gitlab.com \ --credential-arn arn:aws:secretsmanager:us-east-2:111122223333:secret:ecr-pullthroughcache/example1234 \ --region us-east-2

後續步驟

建立提取快取規則後,下列步驟如下: