

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

# 將上游登錄檔與 Amazon ECR 私有登錄檔同步所需的 IAM 許可
<a name="pull-through-cache-iam"></a>

除了向私有登錄檔進行身分驗證以及推送和提取映像所需的 Amazon ECR API 許可之外，還需要以下額外許可才能有效使用提取快取規則。
+ `ecr:CreatePullThroughCacheRule` – 授予建立提取快取規則的許可。必須透過身分型 IAM 政策授予此許可。
+ `ecr:BatchImportUpstreamImage` – 授予檢索外部映像並將其匯入到您的私有登錄檔的許可。可以藉由使用身分型 IAM 政策的私有登錄檔許可政策或藉由使用資源型儲存庫許可政策來授予此許可。如需使用儲存庫許可的詳細資訊，請參閱 [Amazon ECR 中的私有儲存庫政策](repository-policies.md)。
+ `ecr:CreateRepository` – 授予在私有登錄檔中建立儲存庫的許可。如果存放快取映像的儲存庫尚不存在，則需要此許可。可以由身分型 IAM 政策或私有登錄檔許可政策授予此許可。

## 使用登錄檔許可
<a name="pull-through-cache-registry-permissions"></a>

Amazon ECR 私有登錄檔許可可用來設定個別 IAM 實體使用提取快取的許可範圍。如果 IAM 實體擁有的由 IAM 政策授予的許可多過登錄檔許可政策授予的許可，則 IAM 政策優先。例如，如果使用者已具有 `ecr:*` 許可，則在登錄檔層級不需要額外的許可。

### 建立私有登錄檔的許可政策 (AWS 管理主控台)
<a name="pull-through-cache-registry-permissions-console"></a>

1. 在 [https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/) 開啟 Amazon ECR 主控台。

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

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

1. 在 **Registry permissions** (登錄檔許可) 頁面上，選擇 **Generate statement** (產生陳述式)。

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

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

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

   1. 針對 **IAM entities** (IAM 實體)，指定要包含在政策中的使用者、群組或角色。

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

   1. 針對 **Repository names** (儲存庫名稱)，指定要套用規則的儲存庫基本名稱。例如，如果您想要在 Amazon ECR Public 上指定 Amazon Linux 儲存庫，則儲存庫名稱會是 `amazonlinux`。

### 建立私有登錄檔的許可政策 (AWS CLI)
<a name="pull-through-cache-registry-permissions-cli"></a>

使用以下 AWS CLI 命令，使用 指定私有登錄檔許可 AWS CLI。

1. 建立具有您登錄檔政策內容的名為 `ptc-registry-policy.json` 的本機檔案。下列範例會授予 `ecr-pull-through-cache-user` 許可，以建立儲存庫並從 Amazon ECR Public 中提取映像，其為與之前建立的提取快取規則相關聯的上游來源。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "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 主體 (例如管理員和開發人員) 所執行。

1. 使用 [put-registry-policy](https://docs.aws.amazon.com/cli/latest/reference/ecr/put-registry-policy.html) 命令設定登錄檔政策。

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

## 後續步驟
<a name="pull-through-cache-next-steps"></a>

準備好開始使用提取快取規則時，以下為接下來的步驟。
+ 建立提取快取規則。如需詳細資訊，請參閱[在 Amazon ECR 中建立提取快取規則](pull-through-cache-creating-rule.md)。
+ 建立儲存庫建立範本。儲存庫建立範本賦予您控制權，於提取快取動作期間，定義用於 Amazon ECR 代表您建立的新儲存庫的設定。如需詳細資訊，請參閱[用於控制提取快取、推送時建立或複寫動作期間建立的儲存庫的範本](repository-creation-templates.md)。