

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon ECR 프라이빗 레지스트리와 업스트림 레지스트리 동기화
<a name="pull-through-cache"></a>

풀스루 캐시 규칙을 사용하면 업스트림 레지스트리의 콘텐츠를 Amazon ECR 프라이빗 레지스트리와 동기화할 수 있습니다.

Amazon ECR은 현재 다음 업스트림 레지스트리에 대한 풀스루 캐시 규칙 생성을 지원합니다.
+ Amazon ECR 퍼블릭, Kubernetes 컨테이너 이미지 레지스트리, Quay(인증 필요 없음)
+ Docker Hub, Microsoft Azure 컨테이너 레지스트리, GitHub 컨테이너 레지스트리, GitLab 컨테이너 레지스트리 및 Chainguard 레지스트리(보안 암호로 AWS Secrets Manager 인증 필요)
+ Amazon ECR( AWS IAM 역할을 사용한 인증 필요)

GitLab Container Registry의 경우 Amazon ECR은 GitLab의 서비스형 소프트웨어(SaaS) 제품을 사용한 풀스루 캐시만 지원합니다. GitLab의 SaaS 제품 사용에 대한 자세한 내용은 [GitLab.com](https://docs.gitlab.com/17.5/subscriptions/choosing_subscription/)을 참조하세요.

보안 암호(예: Docker Hub)를 사용한 인증이 필요한 업스트림 레지스트리의 경우 보안 인증 정보를 AWS Secrets Manager 보안 암호에 저장해야 합니다. Amazon ECR 콘솔을 사용하여 인증된 각 업스트림 레지스트리에 대한 Secrets Manager 보안 암호를 생성할 수 있습니다. Secrets Manager 콘솔을 사용하여 Secrets Manager 보안 암호를 생성하는 방법에 대한 자세한 내용은 [보안 암호에 업스트림 리포지토리 자격 증명 저장 AWS Secrets Manager](pull-through-cache-creating-secret.md) 섹션을 참조하세요.

Amazon ECR의 경우 업스트림 및 다운스트림 Amazon ECR 레지스트리가 다른 AWS 계정에 속하는 경우 IAM 역할을 생성해야 합니다. IAM 역할을 생성하는 방법에 대한 자세한 내용은 [교차 계정 ECR에서 ECR로의 풀스루 캐시에 필요한 IAM 정책](pull-through-cache-private.md#pull-through-cache-private-permissions) 단원을 참조하세요.

업스트림 레지스트리에 대한 풀스루 캐시 규칙을 생성한 후에는 Amazon ECR 프라이빗 레지스트리 URI를 사용하여 해당 업스트림 레지스트리에서 이미지를 가져옵니다. 그러면 Amazon ECR이 리포지토리를 생성하고 해당 이미지를 프라이빗 레지스트리에 캐시합니다. 지정된 태그가 있는 캐시된 이미지의 후속 풀 요청의 경우, Amazon ECR은 업스트림 레지스트리에 해당 태그가 포함된 이미지의 새 버전이 있는지 확인하고 최소 24시간마다 한 번씩 프라이빗 레지스트리에서 이미지 업데이트를 시도합니다.

## 리포지토리 생성 템플릿
<a name="pull-through-cache-respository-creation-template"></a>

Amazon ECR은 리포지토리 생성 템플릿에 대한 지원을 추가했습니다. 이 템플릿을 사용하면 풀스루 캐시 규칙을 사용하여 사용자 대신 Amazon ECR에서 생성하는 새 리포지토리의 초기 구성을 지정할 수 있습니다. 각 템플릿에는 새 리포지토리를 특정 템플릿에 매칭하는 데 사용되는 리포지토리 네임스페이스 접두사가 포함되어 있습니다. 템플릿은 리소스 기반 액세스 정책, 태그 불변성, 암호화, 수명 주기 정책을 비롯한 모든 리포지토리 설정의 구성을 지정할 수 있습니다. 리포지토리 생성 템플릿의 설정은 리포지토리를 생성하는 동안에만 적용되며 기존 리포지토리나 다른 방법을 사용하여 생성한 리포지토리에는 영향을 주지 않습니다. 자세한 내용은 [풀스루 캐시, 푸시 시 생성 또는 복제 작업 중에 생성된 리포지토리를 제어하는 템플릿](repository-creation-templates.md) 단원을 참조하십시오.

## 풀스루 캐시 규칙 사용 시 고려할 사항
<a name="pull-through-cache-considerations"></a>

Amazon ECR 풀스루 캐시 규칙을 사용할 때는 다음 사항을 고려해야 합니다.
+ 다음 리전에서는 풀스루 캐시 규칙 생성이 지원되지 않습니다.
  + 중국(베이징)(`cn-north-1`)
  + 중국(닝샤)(`cn-northwest-1`)
  + AWS GovCloud(미국 동부)(`us-gov-east-1`)
  + AWS GovCloud(미국 서부)(`us-gov-west-1`)
+ AWS Lambda 는 풀스루 캐시 규칙을 사용하여 Amazon ECR에서 컨테이너 이미지 가져오기를 지원하지 않습니다.
+ 풀스루 캐시를 사용하여 이미지를 가져올 경우 이미지를 처음 가져올 때 Amazon ECR FIPS 서비스 엔드포인트가 지원되지 않습니다. Amazon ECR FIPS 서비스 엔드포인트를 사용하면 후속 풀스루에서 작동합니다.
+ 인증이 필요한 업스트림 리포지토리의 경우 이미지를 Amazon ECR 프라이빗 레지스트리 URI를 통해 처음 가져오거나 캐시를 업데이트하면 풀스루 캐시 규칙에 구성된 자격 증명에 연결된 사용자가 이미지 풀을 시작합니다. 이후 풀은 고객의 프라이빗 레지스트리에 있는 캐시에서 직접 이미지를 반환합니다.
+ 인증이 필요하지 않은 업스트림 리포지토리의 경우 Amazon ECR 프라이빗 레지스트리 URI를 통해 이미지를 가져오면 AWS IP 주소에 의해 이미지 가져오기가 시작됩니다.
+ Amazon ECR 프라이빗 레지스트리 URI를 통해 캐시된 이미지를 가져오면 Amazon ECR은 업스트림 리포지토리를 24시간마다 한 번 이상 점검하여 캐시된 이미지가 최신 버전인지 확인합니다. 업스트림 레지스트리에 새 이미지가 있는 경우 Amazon ECR은 캐시된 이미지를 업데이트하려고 시도합니다. 이 타이머는 캐시된 이미지의 마지막 풀을 기반으로 합니다.
+ 어떤 이유로든 Amazon ECR이 업스트림 레지스트리에서 이미지를 업데이트할 수 없고 이미지를 가져오더라도 마지막으로 캐시된 이미지는 여전히 가져옵니다.
+ 업스트림 레지스트리 보안 인증 정보가 포함된 Secrets Manager 보안 암호를 만들 때는 보안 암호 이름에 `ecr-pullthroughcache/` 접두사를 사용해야 합니다. 또한 보안 암호는 풀스루 캐시 규칙이 생성된 동일한 계정 및 리전에 있어야 합니다.
+ 풀스루 캐시 규칙을 사용하여 다중 아키텍처 이미지를 가져오면, Amazon ECR 리포지토리로 매니페스트 목록과 매니페스트 목록에서 참조되는 각 이미지를 가져옵니다. 특정 아키텍처만 가져오려는 경우 매니페스트 목록과 연결된 태그 대신 아키텍처와 연결된 이미지 다이제스트 또는 태그를 사용하여 이미지를 가져올 수 있습니다.
+ Amazon ECR은 서비스 연결 IAM 역할을 사용합니다. 이 역할은 Amazon ECR이 리포지토리를 생성하고 Secrets Manager 보안 암호 값을 검색하여 인증하며 사용자를 대신하여 캐시된 이미지를 푸시하는 데 필요한 권한을 제공합니다. 서비스 연결 IAM 역할은 풀스루 캐시 규칙이 만들어질 때 자동으로 생성됩니다. 자세한 내용은 [풀스루 캐시에 대한 Amazon ECR 서비스 연결 역할](slr-pullthroughcache.md) 단원을 참조하십시오.
+ 기본적으로 캐시된 이미지를 가져오는 IAM 보안 주체에는 IAM 정책을 통해 부여된 권한이 있습니다. Amazon ECR 프라이빗 레지스트리 권한 정책을 사용하여 IAM 엔터티의 권한 범위를 추가로 지정할 수 있습니다. 자세한 정보는 [레지스트리 권한 사용](pull-through-cache-iam.md#pull-through-cache-registry-permissions)을 참조하세요.
+ 풀스루 캐시 워크플로를 사용하여 생성된 Amazon ECR 리포지토리는 다른 모든 Amazon ECR 리포지토리처럼 취급됩니다. 복제 및 이미지 스캔과 같은 모든 리포지토리 기능이 지원됩니다.
+ Amazon ECR이 풀스루 캐시 작업을 사용하여 사용자 대신 새 리포지토리를 생성하는 경우 일치하는 리포지토리 생성 템플릿이 없는 한 다음 기본 설정이 리포지토리에 적용됩니다. 리포지토리 생성 템플릿을 사용하여 Amazon ECR에서 생성한 리포지토리에 적용되는 설정을 사용자 대신 정의할 수 있습니다. 자세한 내용은 [풀스루 캐시, 푸시 시 생성 또는 복제 작업 중에 생성된 리포지토리를 제어하는 템플릿](repository-creation-templates.md) 단원을 참조하십시오.
  + 태그 불변성 - 태그 불변성은 이미지 태그를 덮어쓸 수 있는지 여부를 지정합니다. 기본적으로 이미지 태그는 변경 가능합니다(덮어쓸 수 있음). **변경 가능**을 선택한 경우 **변경 가능 태그 제외** 텍스트 상자에서 또는 **변경 불가능**을 선택한 경우 **변경 불가능 태그 제외** 텍스트 상자에서 태그 제외 필더를 구성하여 태그 동작을 수정할 수 있습니다.
  + 암호화 - 기본 `AES256` 암호화가 사용됩니다.
  + 리포지토리 권한 - 생략됨, 리포지토리 권한 정책이 적용되지 않습니다.
  + 수명 주기 정책 - 생략됨, 수명 주기 정책이 적용되지 않습니다.
  + 리소스 태그 - 생략됨, 리소스 태그가 적용되지 않습니다.
+ 풀스루 캐시 규칙을 사용하여 리포지토리의 이미지 태그 불변성을 활성화하면 Amazon ECR에서 동일한 태그를 사용하는 이미지를 업데이트할 수 없게 됩니다.
+ 풀스루 캐시 규칙을 사용하여 처음으로 이미지를 가져오는 경우 인터넷 경로가 필요할 수 있습니다. 인터넷 경로가 필요한 특정 상황이 있으므로 실패를 방지하기 위해 경로를 설정하는 것이 좋습니다. 따라서를 사용하여 인터페이스 VPC 엔드포인트를 사용하도록 Amazon ECR을 구성한 경우 첫 번째 풀에 인터넷에 대한 경로가 있는지 확인해야 AWS PrivateLink 합니다. 이렇게 하는 한 가지 방법은 인터넷 게이트웨이를 사용하여 동일한 VPC에 퍼블릭 서브넷을 생성한 다음 인터넷에 대한 모든 아웃바운드 트래픽을 프라이빗 서브넷에서 퍼블릭 서브넷으로 라우팅하는 것입니다. 풀스루 캐시 규칙을 사용하는 후속 이미지 가져오기에는 이 설정이 필요하지 않습니다. 자세한 내용을 알아보려면 *Amazon Virtual Private Cloud 사용 설명서*의 [라우팅 옵션 예](https://docs.aws.amazon.com/vpc/latest/userguide/route-table-options.html)을 참조하세요.

# 업스트림 레지스트리와 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 Management Console)
<a name="pull-through-cache-registry-permissions-console"></a>

1. Amazon ECR 콘솔([https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/))을 엽니다.

1. 탐색 모음에서 프라이빗 레지스트리 권한 문을 구성할 리전을 선택합니다.

1. 탐색 창에서 **프라이빗 레지스트리**, **레지스트리 권한**을 선택합니다.

1. **레지스트리 권한(Registry permissions)** 페이지에서 **문 생성(Generate statement)**을 선택합니다.

1. 생성하려는 각 풀스루 캐시 권한 정책 문에 대해 다음을 수행합니다.

   1. **정책 유형(Policy type)**으로 **풀스루 캐시 정책(Pull through cache policy)**을 선택합니다.

   1. **문 ID(Statement id)**에서 풀스루 캐시 문 정책의 이름을 입력합니다.

   1. **IAM 엔터티(IAM entities)**에서 정책에 포함할 사용자, 그룹 또는 역할을 지정합니다.

   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`이라는 이름의 로컬 파일을 생성합니다. 다음 예제에서는 사용자에게 리포지토리를 생성하고 과거에 생성된 풀스루 캐시 규칙에 연결된 업스트림 소스인 Amazon ECR 퍼블릭에서 이미지를 가져올 수 있는 `ecr-pull-through-cache-user` 권한을 부여합니다.

------
#### [ 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) 단원을 참조하십시오.

# 교차 계정 ECR에서 ECR PTC로의 권한 설정
<a name="pull-through-cache-private"></a>

Amazon ECR에서 Amazon ECR로(ECR에서 ECR로) 풀스루 캐시 기능을 사용하면 리전, AWS 계정 또는 둘 다 간에 이미지를 자동으로 동기화할 수 있습니다. ECR - ECR PTC 기능을 사용하면 이미지를 기본 Amazon ECR 레지스트리로 푸시하고 다운스트림 Amazon ECR 레지스트리에 이미지를 캐싱하는 풀스루 캐시 규칙을 구성할 수 있습니다.

## 교차 계정 ECR에서 ECR로의 풀스루 캐시에 필요한 IAM 정책
<a name="pull-through-cache-private-permissions"></a>

여러 AWS 계정의 Amazon ECR 레지스트리 간에 이미지를 캐시하려면 다운스트림 계정에서 IAM 역할을 생성하고이 섹션의 정책을 구성하여 다음 권한을 제공합니다.
+ Amazon ECR에는 사용자 대신 업스트림 Amazon ECR 레지스트리에서 이미지를 가져올 수 있는 권한이 필요합니다. IAM 역할을 생성한 다음 풀스루 캐시 규칙에 이를 지정하여 이러한 권한을 부여할 수 있습니다.
+ 또한 업스트림 레지스트리 소유자는 리소스 정책에서 캐시 레지스트리 소유자에게 이미지를 가져오는 데 필요한 권한을 부여해야 합니다.

**Topics**
+ [풀스루 캐시 권한을 정의하는 IAM 역할 생성](#ecr-policies-for-cross-account-ecr-to-ecr-pull-through-cache)
+ [IAM 역할에 대한 신뢰 정책 생성](#ecr-creating-a-trust-policy-for-the-iam-role)
+ [업스트림 Amazon ECR 레지스트리에서 리소스 정책 생성](#ecr-creating-registry-permissions-policy-in-upstream-registry)

### 풀스루 캐시 권한을 정의하는 IAM 역할 생성
<a name="ecr-policies-for-cross-account-ecr-to-ecr-pull-through-cache"></a>

다음 예제는 사용자 대신 업스트림 Amazon ECR 레지스트리에서 이미지를 가져올 수 있는 권한을 IAM 역할에 부여하는 권한 정책을 보여줍니다. Amazon ECR이 이 역할을 맡으면 이 정책에 지정된 권한을 받게 됩니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ecr:GetDownloadUrlForLayer",
                "ecr:GetAuthorizationToken",
                "ecr:BatchImportUpstreamImage",
                "ecr:BatchGetImage",
                "ecr:GetImageCopyStatus",
                "ecr:InitiateLayerUpload",
                "ecr:UploadLayerPart",
                "ecr:CompleteLayerUpload",
                "ecr:PutImage"
            ],
            "Resource": "*"
        }
    ]
}
```

------

### IAM 역할에 대한 신뢰 정책 생성
<a name="ecr-creating-a-trust-policy-for-the-iam-role"></a>

다음 예제는 Amazon ECR 풀스루 캐시를 역할을 수임할 수 있는 AWS 서비스 보안 주체로 식별하는 신뢰 정책을 보여줍니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "pullthroughcache.ecr.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

### 업스트림 Amazon ECR 레지스트리에서 리소스 정책 생성
<a name="ecr-creating-registry-permissions-policy-in-upstream-registry"></a>

또한 업스트림 Amazon ECR 레지스트리 소유자는 다운스트림 레지스트리 소유자에게 다음 작업을 수행하는 데 필요한 권한을 부여하는 레지스트리 정책 또는 리포지토리 정책을 추가해야 합니다.

**참고**  
다음 리소스 정책은 **교차 계정** ECR에서 ECR로의 풀스루 캐시 구성에만 필요합니다. **동일한 계정, 리전 간** 풀스루 캐시의 경우 이전 섹션에 표시된 IAM 역할 정책 및 신뢰 정책만 필요합니다. 업스트림 및 다운스트림 레지스트리가 동일한 계정에 있는 경우 루트 AWS 계정 보안 주체 권한이 필요하지 않습니다.

```
{
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::444455556666:root"
    },
    "Action": [
        "ecr:BatchGetImage",
        "ecr:GetDownloadUrlForLayer",
        "ecr:BatchImportUpstreamImage",
        "ecr:GetImageCopyStatus"
    ],
    "Resource": "arn:aws:ecr:region:111122223333:repository/*"
}
```

# Amazon ECR에서 풀스루 캐시 규칙 생성
<a name="pull-through-cache-creating-rule"></a>

Amazon ECR 프라이빗 레지스트리에서 캐시하려는 이미지가 포함된 각 업스트림 레지스트리에 대해 풀스루 캐시 규칙을 생성해야 합니다.

보안 암호를 사용한 인증이 필요한 업스트림 레지스트리의 경우 자격 증명을 Secrets Manager 보안 암호로 저장해야 합니다. 기존의 암호를 사용하거나 새 암호를 생성할 수 있습니다. Secrets Manager 보안 암호는 Amazon ECR 콘솔이나 Secrets Manager 콘솔에서 생성할 수 있습니다. Amazon ECR 콘솔 대신 Secrets Manager 콘솔을 사용하여 Secrets Manager 보안 암호를 생성하려면 [보안 암호에 업스트림 리포지토리 자격 증명 저장 AWS Secrets Manager](pull-through-cache-creating-secret.md) 섹션을 참조하세요.

## 사전 조건
<a name="cache-rule-prereq"></a>
+ 풀스루 캐시 규칙을 생성할 수 있는 적절한 IAM 권한이 있는지 확인합니다. 자세한 내용은 [업스트림 레지스트리와 Amazon ECR 프라이빗 레지스트리를 동기화하는 데 필요한 IAM 권한](pull-through-cache-iam.md) 단원을 참조하세요.
+ 보안 암호를 사용한 인증이 필요한 업스트림 레지스트리의 경우: 기존 보안 암호를 사용하려면 Secrets Manager 보안 암호가 다음 요구 사항을 충족하는지 확인합니다.
  + 보안 암호의 이름은 `ecr-pullthroughcache/`로 시작합니다. AWS Management Console 은 `ecr-pullthroughcache/` 접두사가 있는 Secrets Manager 보안 암호만 표시합니다.
  + 보안 암호가 있는 계정 및 리전은 풀스루 캐시 규칙이 있는 계정 및 리전과 일치해야 합니다.

## 풀스루 캐시 규칙을 생성하는 방법(AWS Management Console)
<a name="pull-through-cache-creating-rule-console"></a>

다음 단계는 Amazon ECR 콘솔을 사용하여 풀스루 캐시 규칙 및 Secrets Manager 보안 암호를 생성하는 방법을 보여줍니다. Secrets Manager 콘솔을 사용하여 보안 암호를 생성하려면 [보안 암호에 업스트림 리포지토리 자격 증명 저장 AWS Secrets Manager](pull-through-cache-creating-secret.md) 섹션을 참조하세요.

### Amazon ECR 퍼블릭, Kubernetes 컨테이너 레지스트리 또는 Quay의 경우
<a name="w2aac28c27b9b7b1"></a>

1. Amazon ECR 콘솔([https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/))을 엽니다.

1. 탐색 모음에서 프라이빗 레지스트리 설정을 구성할 리전을 선택합니다.

1. 탐색 창에서 **프라이빗 레지스트리**, **풀스루 캐시**를 선택합니다.

1. **풀스루 캐시 구성(Pull through cache configuration)** 페이지에서 **규칙 추가(Add rule)**를 선택합니다.

1. **1단계: 소스 지정** 페이지에서 **레지스트리**에 대해 업스트림 레지스트리 목록에서 Amazon ECR 퍼블릭, Kubernetes 또는 Quay를 선택한 후 **다음**을 선택합니다.

1. **2단계: 대상 지정** 페이지에서 **Amazon ECR 리포지토리 접두사**에 대해 소스 퍼블릭 레지스트리에서 가져온 이미지를 캐싱할 때 사용할 리포지토리 네임스페이스 접두사를 지정하고 **다음**을 선택합니다. 네임스페이스는 기본적으로 작성되지만, 사용자 지정 네임스페이스를 지정할 수도 있습니다.

1. **3단계: 검토 및 생성** 페이지에서 풀스루 캐시 규칙 구성을 검토한 다음 **생성**을 선택합니다.

1. 생성하려는 각 풀스루 캐시에 대해 이전 단계를 반복합니다. 풀스루 캐시 규칙은 각 리전에 대해 별도로 생성됩니다.

### Docker Hub의 경우
<a name="w2aac28c27b9b7b3"></a>

1. Amazon ECR 콘솔([https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/))을 엽니다.

1. 탐색 모음에서 프라이빗 레지스트리 설정을 구성할 리전을 선택합니다.

1. 탐색 창에서 **프라이빗 레지스트리**, **풀스루 캐시**를 선택합니다.

1. **풀스루 캐시 구성(Pull through cache configuration)** 페이지에서 **규칙 추가(Add rule)**를 선택합니다.

1. **1단계: 소스 지정** 페이지에서 **레지스트리**에 대해 **Docker Hub**, **다음**을 선택합니다.

1. **2단계: 인증 구성** 페이지에서 **업스트림 보안 인증 정보**에 대해 Docker Hub의 인증 관련 보안 인증 정보를 AWS Secrets Manager 보안 암호로 저장해야 합니다. 기존 보안 암호를 지정하거나 Amazon ECR 콘솔을 사용하여 새 보안 암호를 생성할 수 있습니다.

   1. 기존 보안 암호를 사용하려면 **기존 AWS 보안 암호 사용을** 선택합니다. **보안 암호 이름**의 경우 드롭다운을 사용하여 기존 보안 암호를 선택한 후 **다음**을 선택합니다.
**참고**  
에는 `ecr-pullthroughcache/` 접두사를 사용하여 이름이 인 Secrets Manager 보안 암호 AWS Management Console 만 표시됩니다. 또한 보안 암호는 풀스루 캐시 규칙이 생성된 동일한 계정 및 리전에 있어야 합니다.

   1. 새 보안 암호를 만들려면 ** AWS 보안 암호 생성**을 선택하고 다음 작업을 수행한 후 **다음**을 선택합니다.

      1. **보안 암호 이름**에서 보안 암호를 설명하는 이름을 지정합니다. 보안 암호 이름은 1\$1512자의 유니코드 문자를 포함해야 합니다.

      1. **Docker Hub 이메일**에 Docker Hub 이메일을 지정합니다.

      1. **Docker Hub 액세스 토큰**에서 Docker Hub 액세스 토큰을 지정합니다. Docker Hub 액세스 토큰 생성에 대한 자세한 내용은 Docker 설명서의 [Create and manage access tokens](https://docs.docker.com/security/for-developers/access-tokens/)를 참조하세요.

1. **3단계: 대상 지정** 페이지에서 **Amazon ECR 리포지토리 접두사**에 대해 소스 퍼블릭 레지스트리에서 가져온 이미지를 캐싱할 때 사용할 리포지토리 네임스페이스를 지정하고 **다음**을 선택합니다.

   네임스페이스는 기본적으로 작성되지만, 사용자 지정 네임스페이스를 지정할 수도 있습니다.

1. **4단계: 검토 및 생성** 페이지에서 풀스루 캐시 규칙 구성을 검토한 다음 **생성**을 선택합니다.

1. 생성하려는 각 풀스루 캐시에 대해 이전 단계를 반복합니다. 풀스루 캐시 규칙은 각 리전에 대해 별도로 생성됩니다.

### GitHub Container Registry의 경우
<a name="w2aac28c27b9b7b5"></a>

1. Amazon ECR 콘솔([https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/))을 엽니다.

1. 탐색 모음에서 프라이빗 레지스트리 설정을 구성할 리전을 선택합니다.

1. 탐색 창에서 **프라이빗 레지스트리**, **풀스루 캐시**를 선택합니다.

1. **풀스루 캐시 구성(Pull through cache configuration)** 페이지에서 **규칙 추가(Add rule)**를 선택합니다.

1. **1단계: 소스 지정** 페이지에서 **레지스트리**에 대해 **GitHub Container Registry**, **다음**을 선택합니다.

1. **2단계: 인증 구성** 페이지에서 **업스트림 보안 인증 정보**에 대해 GitHub 컨테이너 레지스트리의 인증 관련 보안 인증 정보를 AWS Secrets Manager 보안 암호로 저장해야 합니다. 기존 보안 암호를 지정하거나 Amazon ECR 콘솔을 사용하여 새 보안 암호를 생성할 수 있습니다.

   1. 기존 보안 암호를 사용하려면 **기존 AWS 보안 암호 사용을** 선택합니다. **보안 암호 이름**의 경우 드롭다운을 사용하여 기존 보안 암호를 선택한 후 **다음**을 선택합니다.
**참고**  
에는 `ecr-pullthroughcache/` 접두사를 사용하여 이름이 인 Secrets Manager 보안 암호 AWS Management Console 만 표시됩니다. 또한 보안 암호는 풀스루 캐시 규칙이 생성된 동일한 계정 및 리전에 있어야 합니다.

   1. 새 보안 암호를 만들려면 ** AWS 보안 암호 생성**을 선택하고 다음 작업을 수행한 후 **다음**을 선택합니다.

      1. **보안 암호 이름**에서 보안 암호를 설명하는 이름을 지정합니다. 보안 암호 이름은 1\$1512자의 유니코드 문자를 포함해야 합니다.

      1. **GitHub 컨테이너 레지스트리 사용자 이름**에서 GitHub 컨테이너 레지스트리 사용자 이름을 지정합니다.

      1. **GitHub 컨테이너 레지스트리 액세스 토큰**에서 GitHub 컨테이너 레지스트리 액세스 토큰을 지정합니다. GitHub 액세스 토큰 생성에 대한 자세한 내용은 GitHub 설명서의 [Managing your personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)를 참조하세요.

1. **3단계: 대상 지정** 페이지에서 **Amazon ECR 리포지토리 접두사**에 대해 소스 퍼블릭 레지스트리에서 가져온 이미지를 캐싱할 때 사용할 리포지토리 네임스페이스를 지정하고 **다음**을 선택합니다.

   네임스페이스는 기본적으로 작성되지만, 사용자 지정 네임스페이스를 지정할 수도 있습니다.

1. **4단계: 검토 및 생성** 페이지에서 풀스루 캐시 규칙 구성을 검토한 다음 **생성**을 선택합니다.

1. 생성하려는 각 풀스루 캐시에 대해 이전 단계를 반복합니다. 풀스루 캐시 규칙은 각 리전에 대해 별도로 생성됩니다.

### Microsoft Azure 컨테이너 레지스트리의 경우
<a name="w2aac28c27b9b7b7"></a>

1. Amazon ECR 콘솔([https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/))을 엽니다.

1. 탐색 모음에서 프라이빗 레지스트리 설정을 구성할 리전을 선택합니다.

1. 탐색 창에서 **프라이빗 레지스트리**, **풀스루 캐시**를 선택합니다.

1. **풀스루 캐시 구성(Pull through cache configuration)** 페이지에서 **규칙 추가(Add rule)**를 선택합니다.

1. **1단계: 소스 지정** 페이지에서 다음 작업을 수행합니다.

   1. **레지스트리**에서 **Microsoft Azure 컨테이너 레지스트리**를 선택합니다.

   1. **소스 레지스트리 URL**에서 Microsoft Azure 컨테이너 레지스트리의 이름을 지정하고 **다음**을 선택합니다.
**중요**  
`.azurecr.io` 접미사는 자동으로 채워지므로 접두사만 지정하면 됩니다.

1. **2단계: 인증 구성** 페이지의 **업스트림 보안 인증 정보**에서 Microsoft Azure 컨테이너 레지스트리의 인증 관련 보안 인증 정보를 AWS Secrets Manager 보안 암호로 저장해야 합니다. 기존 보안 암호를 지정하거나 Amazon ECR 콘솔을 사용하여 새 보안 암호를 생성할 수 있습니다.

   1. 기존 보안 암호를 사용하려면 **기존 AWS 보안 암호 사용을** 선택합니다. **보안 암호 이름**의 경우 드롭다운을 사용하여 기존 보안 암호를 선택한 후 **다음**을 선택합니다.
**참고**  
에는 `ecr-pullthroughcache/` 접두사를 사용하여 이름이 인 Secrets Manager 보안 암호 AWS Management Console 만 표시됩니다. 또한 보안 암호는 풀스루 캐시 규칙이 생성된 동일한 계정 및 리전에 있어야 합니다.

   1. 새 보안 암호를 만들려면 ** AWS 보안 암호 생성**을 선택하고 다음 작업을 수행한 후 **다음**을 선택합니다.

      1. **보안 암호 이름**에서 보안 암호를 설명하는 이름을 지정합니다. 보안 암호 이름은 1\$1512자의 유니코드 문자를 포함해야 합니다.

      1. **Microsoft Azure 컨테이너 레지스트리 사용자 이름**에서 Microsoft Azure 컨테이너 레지스트리 사용자 이름을 지정합니다.

      1. **Microsoft Azure 컨테이너 레지스트리 액세스 토큰**에서 Microsoft Azure 컨테이너 레지스트리 액세스 토큰을 지정합니다. Microsoft Azure 컨테이너 레지스트리 액세스 토큰을 만드는 방법에 대한 자세한 내용은 Microsoft Azure 설명서의 [Create token - portal](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-repository-scoped-permissions#create-token---portal)을 참조하세요.

1. **3단계: 대상 지정** 페이지에서 **Amazon ECR 리포지토리 접두사**에 대해 소스 퍼블릭 레지스트리에서 가져온 이미지를 캐싱할 때 사용할 리포지토리 네임스페이스를 지정하고 **다음**을 선택합니다.

   네임스페이스는 기본적으로 작성되지만, 사용자 지정 네임스페이스를 지정할 수도 있습니다.

1. **4단계: 검토 및 생성** 페이지에서 풀스루 캐시 규칙 구성을 검토한 다음 **생성**을 선택합니다.

1. 생성하려는 각 풀스루 캐시에 대해 이전 단계를 반복합니다. 풀스루 캐시 규칙은 각 리전에 대해 별도로 생성됩니다.

### GitLab 컨테이너 레지스트리의 경우
<a name="w2aac28c27b9b7b9"></a>

1. Amazon ECR 콘솔([https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/))을 엽니다.

1. 탐색 모음에서 프라이빗 레지스트리 설정을 구성할 리전을 선택합니다.

1. 탐색 창에서 **프라이빗 레지스트리**, **풀스루 캐시**를 선택합니다.

1. **풀스루 캐시 구성(Pull through cache configuration)** 페이지에서 **규칙 추가(Add rule)**를 선택합니다.

1. **1단계: 소스 지정** 페이지에서 레지스트리에 대해 GitLab 컨테이너 레지스트리, 다음을 선택합니다.

1. **2단계: 인증 구성** 페이지에서 **업스트림 보안 인증 정보**에 대해 GitLab 컨테이너 레지스트리의 인증 자격 증명을 AWS Secrets Manager 보안 암호로 저장해야 합니다. 기존 보안 암호를 지정하거나 Amazon ECR 콘솔을 사용하여 새 보안 암호를 생성할 수 있습니다.

   1. 기존 보안 암호를 사용하려면 **기존 AWS 보안 암호 사용을** 선택합니다. **보안 암호 이름**의 경우 드롭다운을 사용하여 기존 보안 암호를 선택한 후 **다음**을 선택합니다. Secrets Manager 콘솔을 사용하여 Secrets Manager 보안 암호를 생성하는 방법에 대한 자세한 내용은 [보안 암호에 업스트림 리포지토리 자격 증명 저장 AWS Secrets Manager](pull-through-cache-creating-secret.md)을 참조하세요.
**참고**  
에는 `ecr-pullthroughcache/` 접두사를 사용하여 이름이 인 Secrets Manager 보안 암호 AWS Management Console 만 표시됩니다. 또한 보안 암호는 풀스루 캐시 규칙이 생성된 동일한 계정 및 리전에 있어야 합니다.

   1. 새 보안 암호를 만들려면 ** AWS 보안 암호 생성**을 선택하고 다음 작업을 수행한 후 **다음**을 선택합니다.

      1. **보안 암호 이름**에서 보안 암호를 설명하는 이름을 지정합니다. 보안 암호 이름은 1\$1512자의 유니코드 문자를 포함해야 합니다.

      1. **GitLab 컨테이너 레지스트리 사용자 이름**에서 GitLab 컨테이너 레지스트리 사용자 이름을 지정합니다.

      1. **GitLab 컨테이너 레지스트리 액세스 토큰**에서 GitLab 컨테이너 레지스트리 액세스 토큰을 지정합니다. GitLab 컨테이너 레지스트리 액세스 토큰 생성에 대한 자세한 내용은 GitLab 설명서의 [개인 액세스 토큰](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html), [그룹 액세스 토큰](https://docs.gitlab.com/ee/user/group/settings/group_access_tokens.html) 또는 [프로젝트 액세스 토큰](https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html)을 참조하세요.

1. **3단계: 대상 지정** 페이지에서 **Amazon ECR 리포지토리 접두사**에 대해 소스 퍼블릭 레지스트리에서 가져온 이미지를 캐싱할 때 사용할 리포지토리 네임스페이스를 지정하고 **다음**을 선택합니다.

   네임스페이스는 기본적으로 작성되지만, 사용자 지정 네임스페이스를 지정할 수도 있습니다.

1. **4단계: 검토 및 생성** 페이지에서 풀스루 캐시 규칙 구성을 검토한 다음 **생성**을 선택합니다.

1. 생성하려는 각 풀스루 캐시에 대해 이전 단계를 반복합니다. 풀스루 캐시 규칙은 각 리전에 대해 별도로 생성됩니다.

### AWS 계정 내 Amazon ECR 프라이빗 레지스트리의 경우
<a name="ecr-to-pull-images-from-other-regions-within-your-account"></a>

1. Amazon ECR 콘솔([https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/))을 엽니다.

1. 탐색 모음에서 프라이빗 레지스트리 설정을 구성할 리전을 선택합니다.

1. 탐색 창에서 **프라이빗 레지스트리**, **풀스루 캐시**를 선택합니다.

1. **풀스루 캐시 구성(Pull through cache configuration)** 페이지에서 **규칙 추가(Add rule)**를 선택합니다.

1. **1단계: 업스트림 지정** 페이지의 **레지스트리**에서 **Amazon ECR 프라이빗** 및 **이 계정**을 선택합니다. **리전**에서 업스트림 Amazon ECR 레지스트리의 리전을 선택한 후 **다음**을 선택합니다.

1. **2단계: 네임스페이스 지정** 페이지의 **캐시 네임스페이스**에서 **특정 접두사**가 있는 풀스루 캐시 리포지토리를 생성할지 아니면 **접두사가 없는** 풀스루 캐시 리포지토리를 생성할지 선택합니다. **특정 접두사**를 선택하는 경우 업스트림 레지스트리에서 이미지를 캐싱하기 위한 네임스페이스의 일부로 사용할 접두사 이름을 지정해야 합니다.

1. **업스트림 네임스페이스**에서 업스트림 레지스트리에 존재하는 **특정 접두사**를 가져올지 여부를 선택합니다. **접두사 없음**을 선택하는 경우, 업스트림 레지스트리의 모든 리포지토리에서 가져올 수 있습니다. 메시지가 표시되면 업스트림 리포지토리 접두사를 지정한 후 **다음**을 선택합니다.
**참고**  
캐시 및 업스트림 네임스페이스 사용자 지정에 대한 자세한 내용은 [ECR에서 ECR로의 풀스루 캐시에 대한 리포지토리 접두사 사용자 지정](pull-through-cache-private-wildcards.md) 섹션을 참조하세요.

1. **3단계: 검토 및 생성** 페이지에서 풀스루 캐시 규칙 구성을 검토한 다음 **생성**을 선택합니다.

1. 생성하려는 각 풀스루 캐시에 대해 이 단계를 반복합니다. 풀스루 캐시 규칙은 각 리전에 대해 별도로 생성됩니다.

### 다른 AWS 계정의 Amazon ECR 프라이빗 레지스트리의 경우
<a name="w2aac28c27b9b7c13"></a>

1. Amazon ECR 콘솔([https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/))을 엽니다.

1. 탐색 모음에서 프라이빗 레지스트리 설정을 구성할 리전을 선택합니다.

1. 탐색 창에서 **프라이빗 레지스트리**, **풀스루 캐시**를 선택합니다.

1. **풀스루 캐시 구성(Pull through cache configuration)** 페이지에서 **규칙 추가(Add rule)**를 선택합니다.

1. **1단계: 업스트림 지정** 페이지의 **레지스트리**에서 **Amazon ECR 프라이빗** 및 **크로스 계정**을 선택합니다. **리전**에서 업스트림 Amazon ECR 레지스트리의 리전을 선택합니다. **계정**에서 업스트림 Amazon ECR 레지스트리의 AWS 계정 ID를 지정한 **후 다음을** 선택합니다.

1. **2단계: 권한 지정** 페이지에서 **IAM 역할**에 대해 교차 계정 풀스루 캐시 액세스에 사용할 역할을 선택한 다음 **생성**을 선택합니다.
**참고**  
[교차 계정 ECR에서 ECR로의 풀스루 캐시에 필요한 IAM 정책](pull-through-cache-private.md#pull-through-cache-private-permissions)에서 생성된 권한을 사용하는 IAM 역할을 선택해야 합니다.

1. **3단계: 네임스페이스 지정** 페이지의 **캐시 네임스페이스**에서 **특정 접두사**가 있는 풀스루 캐시 리포지토리를 생성할지 아니면 **접두사가 없는** 풀스루 캐시 리포지토리를 생성할지 선택합니다. **특정 접두사**를 선택하는 경우 업스트림 레지스트리에서 이미지를 캐싱하기 위한 네임스페이스의 일부로 사용할 접두사 이름을 지정해야 합니다.

1. **업스트림 네임스페이스**에서 업스트림 레지스트리에 존재하는 **특정 접두사**를 가져올지 여부를 선택합니다. **접두사 없음**을 선택하는 경우, 업스트림 레지스트리의 모든 리포지토리에서 가져올 수 있습니다. 메시지가 표시되면 업스트림 리포지토리 접두사를 지정한 후 **다음**을 선택합니다.
**참고**  
캐시 및 업스트림 네임스페이스 사용자 지정에 대한 자세한 내용은 [ECR에서 ECR로의 풀스루 캐시에 대한 리포지토리 접두사 사용자 지정](pull-through-cache-private-wildcards.md) 섹션을 참조하세요.

1. **4단계: 검토 및 생성** 페이지에서 풀스루 캐시 규칙 구성을 검토한 다음 **생성**을 선택합니다.

1. 생성하려는 각 풀스루 캐시에 대해 이 단계를 반복합니다. 풀스루 캐시 규칙은 각 리전에 대해 별도로 생성됩니다.

### Chainguard 레지스트리의 경우
<a name="w2aac28c27b9b7c15"></a>

1. Amazon ECR 콘솔([https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/))을 엽니다.

1. 탐색 모음에서 프라이빗 레지스트리 설정을 구성할 리전을 선택합니다.

1. 탐색 창에서 **프라이빗 레지스트리**, **풀스루 캐시**를 선택합니다.

1. **풀스루 캐시 구성(Pull through cache configuration)** 페이지에서 **규칙 추가(Add rule)**를 선택합니다.

1. **1단계: 소스 지정** 페이지의 레지스트리에서 Chainguard 레지스트리, 다음을 선택합니다.

1. **2단계: 인증 구성** 페이지에서 **업스트림 자격 증명**의 경우 Chainguard 레지스트리의 인증 자격 증명을 보안 암호에 AWS Secrets Manager 저장해야 합니다. 기존 보안 암호를 지정하거나 Amazon ECR 콘솔을 사용하여 새 보안 암호를 생성할 수 있습니다.

   1. 기존 보안 암호를 사용하려면 **기존 AWS 보안 암호 사용을** 선택합니다. **보안 암호 이름**의 경우 드롭다운을 사용하여 기존 보안 암호를 선택한 후 **다음**을 선택합니다. Secrets Manager 콘솔을 사용하여 Secrets Manager 보안 암호를 생성하는 방법에 대한 자세한 내용은 [보안 암호에 업스트림 리포지토리 자격 증명 저장 AWS Secrets Manager](pull-through-cache-creating-secret.md)을 참조하세요.
**참고**  
에는 `ecr-pullthroughcache/` 접두사를 사용하여 이름이 인 Secrets Manager 보안 암호 AWS Management Console 만 표시됩니다. 또한 보안 암호는 풀스루 캐시 규칙이 생성된 동일한 계정 및 리전에 있어야 합니다.

   1. 새 보안 암호를 만들려면 ** AWS 보안 암호 생성**을 선택하고 다음 작업을 수행한 후 **다음**을 선택합니다.

      1. **보안 암호 이름**에서 보안 암호를 설명하는 이름을 지정합니다. 보안 암호 이름은 1\$1512자의 유니코드 문자를 포함해야 합니다.

      1. **Chainguard 레지스트리 사용자 이름**에서 Chainguard 레지스트리 사용자 이름을 지정합니다.

      1. **Chainguard 레지스트리 풀 토큰**에서 Chainguard 레지스트리 풀 토큰을 지정합니다. Chainguard 레지스트리 풀 토큰 생성에 대한 자세한 내용은 Chainguard 설명서의 [풀 토큰으로 인증을](https://edu.chainguard.dev/chainguard/chainguard-images/chainguard-registry/authenticating/#authenticating-with-a-pull-token) 참조하세요.

1. **3단계: 대상 지정** 페이지의 **Amazon ECR 리포지토리 접두**사에서 소스 레지스트리에서 가져온 이미지를 캐싱할 때 사용할 리포지토리 네임스페이스를 지정한 **후 다음을** 선택합니다.

   네임스페이스는 기본적으로 작성되지만, 사용자 지정 네임스페이스를 지정할 수도 있습니다.

1. **4단계: 검토 및 생성** 페이지에서 풀스루 캐시 규칙 구성을 검토한 다음 **생성**을 선택합니다.

1. 생성하려는 각 풀스루 캐시에 대해 이전 단계를 반복합니다. 풀스루 캐시 규칙은 각 리전에 대해 별도로 생성됩니다.

## 풀스루 캐시 규칙을 생성하는 방법(AWS CLI)
<a name="pull-through-cache-creating-rule-cli"></a>

[create-pull-through-cache-rule](https://docs.aws.amazon.com/cli/latest/reference/ecr/create-pull-through-cache-rule.html) AWS CLI 명령을 사용하여 Amazon ECR 프라이빗 레지스트리에 대한 풀스루 캐시 규칙을 생성합니다. 보안 암호를 사용한 인증이 필요한 업스트림 레지스트리의 경우 자격 증명을 Secrets Manager 보안 암호로 저장해야 합니다. Secrets Manager 콘솔을 사용하여 보안 암호를 생성하려면 [보안 암호에 업스트림 리포지토리 자격 증명 저장 AWS Secrets Manager](pull-through-cache-creating-secret.md) 섹션을 참조하세요.

지원되는 각 업스트림 레지스트리에 대해 다음 예제가 제공됩니다.

### Amazon ECR 퍼블릭의 경우
<a name="w2aac28c27c11b7b1"></a>

다음 예제에서는 Amazon ECR 퍼블릭 레지스트리에 대한 풀스루 캐시 규칙을 생성합니다. 리포지토리 접두사를 `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 Container Registry의 경우
<a name="w2aac28c27c11b7b3"></a>

다음 예제에서는 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의 경우
<a name="w2aac28c27c11b7b5"></a>

다음 예제에서는 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의 경우
<a name="w2aac28c27c11b7b7"></a>

다음 예제에서는 Docker Hub 레지스트리에 대한 풀스루 캐시 규칙을 생성합니다. 리포지토리 접두사를 `docker-hub`으로 지정합니다. 이렇게 하면 풀스루 캐시 규칙을 통해 생성한 각 리포지토리가 `docker-hub/upstream-repository-name`의 명명 체계를 사용하게 됩니다. Docker Hub 보안 인증 정보가 포함된 보안 암호의 전체 Amazon 리소스 이름(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 Container Registry의 경우
<a name="w2aac28c27c11b7b9"></a>

다음 예제에서는 GitHub 컨테이너 레지스트리에 대한 풀스루 캐시 규칙을 생성합니다. 리포지토리 접두사를 `github`으로 지정합니다. 이렇게 하면 풀스루 캐시 규칙을 통해 생성한 각 리포지토리가 `github/upstream-repository-name`의 명명 체계를 사용하게 됩니다. GitHub 컨테이너 레지스트리 보안 인증 정보가 포함된 보안 암호의 전체 Amazon 리소스 이름(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 컨테이너 레지스트리의 경우
<a name="w2aac28c27c11b7c11"></a>

다음 예제에서는 Microsoft Azure 컨테이너 레지스트리에 대한 풀스루 캐시 규칙을 생성합니다. 리포지토리 접두사를 `azure`으로 지정합니다. 이렇게 하면 풀스루 캐시 규칙을 통해 생성한 각 리포지토리가 `azure/upstream-repository-name`의 명명 체계를 사용하게 됩니다. Microsoft Azure 컨테이너 레지스트리 보안 인증 정보가 포함된 보안 암호의 전체 Amazon 리소스 이름(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 컨테이너 레지스트리의 경우
<a name="w2aac28c27c11b7c13"></a>

다음 예제에서는 GitLab 컨테이너 레지스트리에 대한 풀스루 캐시 규칙을 생성합니다. 리포지토리 접두사를 `gitlab`으로 지정합니다. 이렇게 하면 풀스루 캐시 규칙을 통해 생성한 각 리포지토리가 `gitlab/upstream-repository-name`의 명명 체계를 사용하게 됩니다. GitLab 컨테이너 레지스트리 보안 인증 정보가 포함된 보안 암호의 전체 Amazon 리소스 이름(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
```

### AWS 계정 내 Amazon ECR 프라이빗 레지스트리의 경우
<a name="w2aac28c27c11b7c15"></a>

다음 예제에서는 동일한 AWS 계정 내의 리전 간 Amazon ECR 프라이빗 레지스트리에 대한 풀스루 캐시 규칙을 생성합니다. 리포지토리 접두사를 `ecr`으로 지정합니다. 이렇게 하면 풀스루 캐시 규칙을 통해 생성한 각 리포지토리가 `ecr/upstream-repository-name`의 명명 체계를 사용하게 됩니다.

```
aws ecr create-pull-through-cache-rule \
     --ecr-repository-prefix ecr \
     --upstream-registry-url aws_account_id.dkr.ecr.region.amazonaws.com \
     --region us-east-2
```

### 다른 AWS 계정의 Amazon ECR 프라이빗 레지스트리의 경우
<a name="w2aac28c27c11b7c17"></a>

다음 예제에서는 동일한 AWS 계정 내의 리전 간 Amazon ECR 프라이빗 레지스트리에 대한 풀스루 캐시 규칙을 생성합니다. 리포지토리 접두사를 `ecr`으로 지정합니다. 이렇게 하면 풀스루 캐시 규칙을 통해 생성한 각 리포지토리가 `ecr/upstream-repository-name`의 명명 체계를 사용하게 됩니다. [Amazon ECR에서 풀스루 캐시 규칙 생성](#pull-through-cache-creating-rule)에서 생성된 권한을 사용하여 IAM 역할의 전체 Amazon 리소스 이름(ARN)을 지정해야 합니다.

```
aws ecr create-pull-through-cache-rule \
 --ecr-repository-prefix ecr \
 --upstream-registry-url aws_account_id.dkr.ecr.region.amazonaws.com \
 --custom-role-arn arn:aws:iam::aws_account_id:role/example-role \
 --region us-east-2
```

### Chainguard 레지스트리의 경우
<a name="w2aac28c27c11b7c19"></a>

다음 예제에서는 Chainguard 레지스트리에 대한 풀스루 캐시 규칙을 생성합니다. 리포지토리 접두사를 `chainguard`으로 지정합니다. 이렇게 하면 풀스루 캐시 규칙을 통해 생성한 각 리포지토리가 `chainguard/upstream-repository-name`의 명명 체계를 사용하게 됩니다. Chainguard 레지스트리 자격 증명이 포함된 보안 암호의 전체 Amazon 리소스 이름(ARN)을 지정해야 합니다.

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

## 다음 단계
<a name="pull-through-cache-creating-rule-next-steps"></a>

풀스루 캐시 규칙을 생성한 후 다음 단계는 다음과 같습니다.
+ 리포지토리 생성 템플릿을 생성합니다. 리포지토리 생성 템플릿을 사용하면 풀스루 캐시 작업 중에 Amazon ECR에서 사용자 대신 생성한 새 리포지토리에 사용할 설정을 정의할 수 있습니다. 자세한 내용은 [풀스루 캐시, 푸시 시 생성 또는 복제 작업 중에 생성된 리포지토리를 제어하는 템플릿](repository-creation-templates.md) 단원을 참조하십시오.
+ 풀스루 캐시 규칙의 유효성을 검증합니다. 풀스루 캐시 규칙의 유효성을 검증할 때 Amazon ECR은 업스트림 레지스트리와 네트워크 연결을 만들고 업스트림 레지스트리의 보안 인증 정보가 포함된 Secrets Manager 보안 암호에 액세스할 수 있는지와 인증이 성공했는지 확인합니다. 자세한 내용은 [Amazon ECR에서 풀스루 캐시 규칙 검증](pull-through-cache-working-validating.md) 단원을 참조하십시오.
+ 풀스루 캐시 규칙 사용을 시작합니다. 자세한 내용은 [Amazon ECR에서 풀스루 캐시 규칙으로 이미지 가져오기](pull-through-cache-working-pulling.md) 단원을 참조하십시오.

# Amazon ECR에서 풀스루 캐시 규칙 검증
<a name="pull-through-cache-working-validating"></a>

인증이 필요한 업스트림 레지스트리에 대해 풀스루 캐시 규칙을 생성한 후 규칙이 제대로 작동하는지 검증할 수 있습니다. 풀스루 캐시 규칙을 검증할 때 Amazon ECR은 업스트림 레지스트리와 네트워크 연결을 만들고 업스트림 레지스트리의 보안 인증 정보가 포함된 Secrets Manager 보안 암호에 액세스할 수 있는지 확인하며 인증이 성공했는지 확인합니다.

풀스루 캐시 규칙 작업을 시작하기 전에 적절한 IAM 권한이 있는지 확인합니다. 자세한 내용은 [업스트림 레지스트리와 Amazon ECR 프라이빗 레지스트리를 동기화하는 데 필요한 IAM 권한](pull-through-cache-iam.md) 단원을 참조하십시오.

## 풀스루 캐시 규칙(AWS Management Console)을 검증하려면
<a name="pull-through-cache-working-verifying-console"></a>

다음 단계는 Amazon ECR 콘솔을 사용하여 풀스루 캐시 규칙을 검증하는 방법을 보여줍니다.

1. Amazon ECR 콘솔([https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/))을 엽니다.

1. 탐색 모음에서 검증할 풀스루 캐시 규칙이 포함된 리전을 선택합니다.

1. 탐색 창에서 **프라이빗 레지스트리**, **풀스루 캐시**를 선택합니다.

1. **풀스루 캐시 구성** 페이지에서 검증할 풀스루 캐시 규칙을 선택합니다. 그런 다음 **작업** 드롭다운 메뉴를 사용하여 **세부 정보 보기**를 선택합니다.

1. 풀스루 캐시 규칙 세부 정보 페이지에서 **작업** 드롭다운 메뉴를 사용하고 **인증 확인**을 선택합니다. Amazon ECR은 결과가 포함된 배너를 표시합니다.

1. 검증하려는 각 풀스루 캐시 규칙에 대해 이러한 단계를 반복합니다.

## 풀스루 캐시 규칙(AWS CLI)을 검증하려면
<a name="pull-through-cache-working-verifying-cli"></a>

[validate-pull-through-cache-rule](https://docs.aws.amazon.com/cli/latest/reference/ecr/validate-pull-through-cache-rule.html) AWS CLI 명령은 Amazon ECR 프라이빗 레지스트리에 대한 풀스루 캐시 규칙을 검증하는 데 사용됩니다. 다음 예시에서는 `ecr-public` 네임스페이스 접두사를 사용합니다. 이 값을 검증할 풀스루 캐시 규칙의 접두사 값으로 바꿉니다.

```
aws ecr validate-pull-through-cache-rule \
     --ecr-repository-prefix ecr-public \
     --region us-east-2
```

응답에서 `isValid` 파라미터는 검증의 성공 여부를 나타냅니다. `true`인 경우 Amazon ECR은 업스트림 레지스트리에 연결할 수 있으며 인증에 성공했습니다. `false`인 경우 문제가 발생하여 검증에 실패했습니다. `failure` 파라미터는 원인을 나타냅니다.

# Amazon ECR에서 풀스루 캐시 규칙으로 이미지 가져오기
<a name="pull-through-cache-working-pulling"></a>

다음 예제는 풀 스루 캐시 규칙을 사용하여 이미지를 가져올 때 사용하는 명령 구문을 보여줍니다. 풀스루 캐시 규칙을 사용하여 업스트림 이미지를 가져오는 도중에 오류가 발생하면 [Amazon ECR에서 풀스루 캐시 문제 해결](error-pullthroughcache.md) 섹션을 참조하여 가장 일반적인 오류 및 해결 방법을 확인하세요.

풀스루 캐시 규칙 작업을 시작하기 전에 적절한 IAM 권한이 있는지 확인합니다. 자세한 내용은 [업스트림 레지스트리와 Amazon ECR 프라이빗 레지스트리를 동기화하는 데 필요한 IAM 권한](pull-through-cache-iam.md) 단원을 참조하십시오.

**참고**  
다음 예제에서는에서 사용하는 기본 Amazon ECR 리포지토리 네임스페이스 값을 AWS Management Console 사용합니다. 직접 구성한 Amazon ECR 프라이빗 리포지토리 URI를 사용해야 합니다.

## Amazon ECR 퍼블릭의 경우
<a name="w2aac28c31b9b1"></a>

```
docker pull aws_account_id.dkr.ecr.region.amazonaws.com/ecr-public/repository_name/image_name:tag
```

## Kubernetes 컨테이너 레지스트리
<a name="w2aac28c31b9b3"></a>

```
docker pull aws_account_id.dkr.ecr.region.amazonaws.com/kubernetes/repository_name/image_name:tag
```

## Quay
<a name="w2aac28c31b9b5"></a>

```
docker pull aws_account_id.dkr.ecr.region.amazonaws.com/quay/repository_name/image_name:tag
```

## Docker Hub
<a name="w2aac28c31b9b7"></a>

Docker Hub 공식 이미지의 경우:

```
docker pull aws_account_id.dkr.ecr.region.amazonaws.com/docker-hub/library/image_name:tag
```

**참고**  
Docker Hub 공식 이미지의 경우 `/library` 접두사를 포함해야 합니다. 다른 모든 Docker Hub 리포지토리의 경우 `/library` 접두사를 생략해야 합니다.

기타 모든 Docker Hub 이미지의 경우:

```
docker pull aws_account_id.dkr.ecr.region.amazonaws.com/docker-hub/repository_name/image_name:tag
```

## GitHub 컨테이너 레지스트리
<a name="w2aac28c31b9b9"></a>

```
docker pull aws_account_id.dkr.ecr.region.amazonaws.com/github/repository_name/image_name:tag
```

## Microsoft Azure 컨테이너 레지스트리
<a name="w2aac28c31b9c11"></a>

```
docker pull aws_account_id.dkr.ecr.region.amazonaws.com/azure/repository_name/image_name:tag
```

## GitLab 컨테이너 레지스트리
<a name="w2aac28c31b9c13"></a>

```
docker pull aws_account_id.dkr.ecr.region.amazonaws.com/gitlab/repository_name/image_name:tag
```

## Chainguard 레지스트리
<a name="w2aac28c31b9c15"></a>

```
docker pull aws_account_id.dkr.ecr.region.amazonaws.com/chainguard/repository_name/image_name:tag
```

# 보안 암호에 업스트림 리포지토리 자격 증명 저장 AWS Secrets Manager
<a name="pull-through-cache-creating-secret"></a>

인증이 필요한 업스트림 리포지토리에 대한 풀스루 캐시 규칙을 생성할 때는 보안 인증 정보를 Secrets Manager 보안 암호로 저장해야 합니다. Secrets Manager 보안 암호를 사용하면 비용이 발생할 수 있습니다. 자세한 내용은 [AWS Secrets Manager 요금](https://aws.amazon.com/secrets-manager/pricing/)을 참조하십시오.

다음 절차는 지원되는 각 업스트림 리포지토리에 대해 Secrets Manager 보안 암호를 생성하는 방법을 안내합니다. Secrets Manager 콘솔을 사용하여 보안 암호를 생성하는 대신 Amazon ECR 콘솔의 풀스루 캐시 규칙 생성 워크플로를 사용하여 보안 암호를 생성할 수도 있습니다. 자세한 내용은 [Amazon ECR에서 풀스루 캐시 규칙 생성](pull-through-cache-creating-rule.md) 단원을 참조하십시오.

------
#### [ Docker Hub ]

**Docker Hub 보안 인증 정보(AWS Management Console)를 위한 Secrets Manager 보안 암호를 생성하려면**Secrets Manager 보안 암호(AWS Management Console)를 생성하려면

1. [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)에서 Secrets Manager 콘솔을 엽니다.

1. **새 보안 암호 저장**을 선택합니다.

1. **보안 암호 유형 선택** 페이지에서 다음을 수행합니다.

   1. **보안 암호 유형**에서 **다른 유형의 보안 암호**를 선택합니다.

   1. **키/값 페어**에서 Docker Hub 보안 인증 정보를 위한 행을 두 개 생성합니다. 보안 암호에는 최대 65,536바이트까지 저장할 수 있습니다.

      1. 첫 번째 키/값 페어의 경우 `username`을 키로 지정하고 Docker Hub 사용자 이름을 값으로 지정합니다.

      1. 두 번째 키/값 페어의 경우 `accessToken`을 키로 지정하고 Docker Hub 액세스 토큰을 값으로 지정합니다. Docker Hub 액세스 토큰 생성에 대한 자세한 내용은 Docker 설명서의 [Create and manage access tokens](https://docs.docker.com/security/for-developers/access-tokens/)를 참조하세요.

   1. **암호화 키**의 경우 기본 **aws/secretsmanager** AWS KMS key 값을 유지하고 **다음**을 선택합니다. 이 키를 사용하는 데 드는 비용은 없습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager의 보안 암호 암호화 및 복호화](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html)를 참조하세요.
**중요**  
보안 암호를 암호화하려면 기본 `aws/secretsmanager` 암호화 키를 사용해야 합니다. Amazon ECR은 이를 위한 고객 관리형 키(CMK) 사용을 지원하지 않습니다.

1. **보안 암호 구성** 페이지에서 다음을 수행합니다.

   1. 설명이 포함된 **Secret name**(보안 암호 이름)과 **Description**(설명)을 입력합니다. 보안 암호 이름은 1\$1512자의 유니코드 문자를 포함하고 `ecr-pullthroughcache/`가 접두사로 지정되어야 합니다.
**중요**  
Amazon ECR에는 `ecr-pullthroughcache/` 접두사를 사용하는 이름이 있는 Secrets Manager 보안 암호 AWS Management Console 만 표시됩니다.

   1. (선택 사항) **Tags**(태그) 섹션에서 보안 암호에 태그를 추가합니다. 태깅 전략은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager 보안 암호 태그 지정](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets_tagging.html)을 참조하세요. 민감한 정보는 암호화되지 않으므로 태그에 저장하지 마세요.

   1. (선택 사항) **리소스 권한(Resource permissions)**에서 리소스 정책을 보안 암호에 추가하려면 **권한 편집(Edit permissions)**을 선택합니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager 보안 암호에 권한 정책 연결](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-policies.html)을 참조하세요.

   1. (선택 사항) **보안 암호 복제**에서 보안 암호를 다른에 복제하려면 **보안 암호 복제**를 AWS 리전선택합니다. 보안 암호를 지금 복제하거나 페이지로 다시 돌아와서 나중에 복제할 수 있습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [보안 암호를 다른 리전으로 복제](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create-manage-multi-region-secrets.html)를 참조하세요.

   1. **다음**을 선택합니다.

1. (선택 사항) **교체 구성(Configure rotation)** 페이지에서 자동 교체를 켤 수 있습니다. 현재 교체를 끈 다음 나중에 켤 수도 있습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager 보안 암호 교체](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html)를 참조하세요. **다음**을 선택합니다.

1. **검토(Review)** 페이지에서 보안 암호 세부 정보를 검토한 후 **저장(Store)**을 선택합니다.

   Secrets Manager는 보안 암호 목록으로 돌아갑니다. 암호가 표시되지 않으면 Refresh(새로 고침)를 선택합니다.

------
#### [ GitHub Container Registry ]

**GitHub 컨테이너 레지스트리 보안 인증 정보(AWS Management Console)를 위한 Secrets Manager 보안 암호를 생성하려면**Secrets Manager 보안 암호(AWS Management Console)를 생성하려면

1. [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)에서 Secrets Manager 콘솔을 엽니다.

1. **새 보안 암호 저장**을 선택합니다.

1. **보안 암호 유형 선택** 페이지에서 다음을 수행합니다.

   1. **보안 암호 유형**에서 **다른 유형의 보안 암호**를 선택합니다.

   1. **키/값 페어**에서 GitHub 보안 인증 정보를 위한 행을 두 개 생성합니다. 보안 암호에는 최대 65,536바이트까지 저장할 수 있습니다.

      1. 첫 번째 키/값 페어의 경우 `username`을 키로 지정하고 GitHub 사용자 이름을 값으로 지정합니다.

      1. 두 번째 키/값 페어의 경우 `accessToken`을 키로 지정하고 GitHub 액세스 토큰을 값으로 지정합니다. GitHub 액세스 토큰 생성에 대한 자세한 내용은 GitHub 설명서의 [Managing your personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)를 참조하세요.

   1. **암호화 키**의 경우 기본 **aws/secretsmanager** AWS KMS key 값을 유지하고 **다음**을 선택합니다. 이 키를 사용하는 데 드는 비용은 없습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager의 보안 암호 암호화 및 복호화](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html)를 참조하세요.
**중요**  
보안 암호를 암호화하려면 기본 `aws/secretsmanager` 암호화 키를 사용해야 합니다. Amazon ECR은 이를 위한 고객 관리형 키(CMK) 사용을 지원하지 않습니다.

1. **보안 구성(Configure secret)** 페이지에서 다음을 수행합니다.

   1. 설명이 포함된 **Secret name**(보안 암호 이름)과 **Description**(설명)을 입력합니다. 보안 암호 이름은 1\$1512자의 유니코드 문자를 포함하고 `ecr-pullthroughcache/`가 접두사로 지정되어야 합니다.
**중요**  
Amazon ECR에는 `ecr-pullthroughcache/` 접두사를 사용하는 이름이 있는 Secrets Manager 보안 암호 AWS Management Console 만 표시됩니다.

   1. (선택 사항) **Tags**(태그) 섹션에서 보안 암호에 태그를 추가합니다. 태깅 전략은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager 보안 암호 태그 지정](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets_tagging.html)을 참조하세요. 민감한 정보는 암호화되지 않으므로 태그에 저장하지 마세요.

   1. (선택 사항) **리소스 권한(Resource permissions)**에서 리소스 정책을 보안 암호에 추가하려면 **권한 편집(Edit permissions)**을 선택합니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager 보안 암호에 권한 정책 연결](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-policies.html)을 참조하세요.

   1. (선택 사항) **보안 암호 복제**에서 보안 암호를 다른에 복제하려면 **보안 암호 복제**를 AWS 리전선택합니다. 보안 암호를 지금 복제하거나 페이지로 다시 돌아와서 나중에 복제할 수 있습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [보안 암호를 다른 리전으로 복제](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create-manage-multi-region-secrets.html)를 참조하세요.

   1. **다음**을 선택합니다.

1. (선택 사항) **교체 구성(Configure rotation)** 페이지에서 자동 교체를 켤 수 있습니다. 현재 교체를 끈 다음 나중에 켤 수도 있습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager 보안 암호 교체](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html)를 참조하세요. **다음**을 선택합니다.

1. **검토(Review)** 페이지에서 보안 암호 세부 정보를 검토한 후 **저장(Store)**을 선택합니다.

   Secrets Manager는 보안 암호 목록으로 돌아갑니다. 암호가 표시되지 않으면 Refresh(새로 고침)를 선택합니다.

------
#### [ Microsoft Azure Container Registry ]

**Microsoft Azure 컨테이너 레지스트리 보안 인증 정보(AWS Management Console)를 위한 Secrets Manager 보안 암호를 만들려면**Secrets Manager 보안 암호(AWS Management Console)를 생성하려면

1. [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)에서 Secrets Manager 콘솔을 엽니다.

1. **새 보안 암호 저장**을 선택합니다.

1. **보안 암호 유형 선택** 페이지에서 다음을 수행합니다.

   1. **보안 암호 유형**에서 **다른 유형의 보안 암호**를 선택합니다.

   1. **키/값 페어**에서 Microsoft Azure 보안 인증 정보를 위한 행을 두 개 생성합니다. 보안 암호에는 최대 65,536바이트까지 저장할 수 있습니다.

      1. 첫 번째 키/값 페어의 경우 `username`을 키로 지정하고 Microsoft Azure 컨테이너 레지스트리 사용자 이름을 값으로 지정합니다.

      1. 두 번째 키/값 페어의 경우 `accessToken`을 키로 지정하고 Microsoft Azure 컨테이너 레지스트리 액세스 토큰을 값으로 지정합니다. Microsoft Azure 액세스 토큰을 만드는 방법에 대한 자세한 내용은 Microsoft Azure 설명서의 [Create token - portal](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-repository-scoped-permissions#create-token---portal)을 참조하세요.

   1. **암호화 키**의 경우 기본 **aws/secretsmanager** AWS KMS key 값을 유지하고 **다음**을 선택합니다. 이 키를 사용하는 데 드는 비용은 없습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager의 보안 암호 암호화 및 복호화](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html)를 참조하세요.
**중요**  
보안 암호를 암호화하려면 기본 `aws/secretsmanager` 암호화 키를 사용해야 합니다. Amazon ECR은 이를 위한 고객 관리형 키(CMK) 사용을 지원하지 않습니다.

1. **보안 구성(Configure secret)** 페이지에서 다음을 수행합니다.

   1. 설명이 포함된 **Secret name**(보안 암호 이름)과 **Description**(설명)을 입력합니다. 보안 암호 이름은 1\$1512자의 유니코드 문자를 포함하고 `ecr-pullthroughcache/`가 접두사로 지정되어야 합니다.
**중요**  
Amazon ECR에는 `ecr-pullthroughcache/` 접두사를 사용하는 이름이 있는 Secrets Manager 보안 암호 AWS Management Console 만 표시됩니다.

   1. (선택 사항) **Tags**(태그) 섹션에서 보안 암호에 태그를 추가합니다. 태깅 전략은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager 보안 암호 태그 지정](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets_tagging.html)을 참조하세요. 민감한 정보는 암호화되지 않으므로 태그에 저장하지 마세요.

   1. (선택 사항) **리소스 권한(Resource permissions)**에서 리소스 정책을 보안 암호에 추가하려면 **권한 편집(Edit permissions)**을 선택합니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager 보안 암호에 권한 정책 연결](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-policies.html)을 참조하세요.

   1. (선택 사항) **보안 암호 복제**에서 보안 암호를 다른에 복제하려면 **보안 암호 복제**를 AWS 리전선택합니다. 보안 암호를 지금 복제하거나 페이지로 다시 돌아와서 나중에 복제할 수 있습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [보안 암호를 다른 리전으로 복제](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create-manage-multi-region-secrets.html)를 참조하세요.

   1. **다음**을 선택합니다.

1. (선택 사항) **교체 구성(Configure rotation)** 페이지에서 자동 교체를 켤 수 있습니다. 현재 교체를 끈 다음 나중에 켤 수도 있습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager 보안 암호 교체](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html)를 참조하세요. **다음**을 선택합니다.

1. **검토(Review)** 페이지에서 보안 암호 세부 정보를 검토한 후 **저장(Store)**을 선택합니다.

   Secrets Manager는 보안 암호 목록으로 돌아갑니다. 암호가 표시되지 않으면 Refresh(새로 고침)를 선택합니다.

------
#### [ GitLab Container Registry ]

**GitLab 컨테이너 레지스트리 보안 인증 정보(AWS Management Console)를 위한 Secrets Manager 보안 암호를 생성하려면**Secrets Manager 보안 암호(AWS Management Console)를 생성하려면

1. [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)에서 Secrets Manager 콘솔을 엽니다.

1. **새 보안 암호 저장**을 선택합니다.

1. **보안 암호 유형 선택** 페이지에서 다음을 수행합니다.

   1. **보안 암호 유형**에서 **다른 유형의 보안 암호**를 선택합니다.

   1. **키/값 페어**에서 GitLab 보안 인증 정보를 위한 행을 두 개 생성합니다. 보안 암호에는 최대 65,536바이트까지 저장할 수 있습니다.

      1. 첫 번째 키/값 페어의 경우 `username`을 키로 지정하고 GitLab 컨테이너 레지스트리 사용자 이름을 값으로 지정합니다.

      1. 두 번째 키/값 페어의 경우 `accessToken`을 키로 지정하고 GitLab 컨테이너 레지스트리 액세스 토큰을 값으로 지정합니다. GitLab 컨테이너 레지스트리 액세스 토큰 생성에 대한 자세한 내용은 GitLab 설명서의 [개인 액세스 토큰](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html), [그룹 액세스 토큰](https://docs.gitlab.com/ee/user/group/settings/group_access_tokens.html) 또는 [프로젝트 액세스 토큰](https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html)을 참조하세요.

   1. **암호화 키**의 경우 기본 **aws/secretsmanager** AWS KMS key 값을 유지하고 **다음**을 선택합니다. 이 키를 사용하는 데 드는 비용은 없습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager의 보안 암호 암호화 및 복호화](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html)를 참조하세요.
**중요**  
보안 암호를 암호화하려면 기본 `aws/secretsmanager` 암호화 키를 사용해야 합니다. Amazon ECR은 이를 위한 고객 관리형 키(CMK) 사용을 지원하지 않습니다.

1. **보안 구성(Configure secret)** 페이지에서 다음을 수행합니다.

   1. 설명이 포함된 **Secret name**(보안 암호 이름)과 **Description**(설명)을 입력합니다. 보안 암호 이름은 1\$1512자의 유니코드 문자를 포함하고 `ecr-pullthroughcache/`가 접두사로 지정되어야 합니다.
**중요**  
Amazon ECR에는 `ecr-pullthroughcache/` 접두사를 사용하는 이름이 있는 Secrets Manager 보안 암호 AWS Management Console 만 표시됩니다.

   1. (선택 사항) **Tags**(태그) 섹션에서 보안 암호에 태그를 추가합니다. 태깅 전략은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager 보안 암호 태그 지정](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets_tagging.html)을 참조하세요. 민감한 정보는 암호화되지 않으므로 태그에 저장하지 마세요.

   1. (선택 사항) **리소스 권한(Resource permissions)**에서 리소스 정책을 보안 암호에 추가하려면 **권한 편집(Edit permissions)**을 선택합니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager 보안 암호에 권한 정책 연결](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-policies.html)을 참조하세요.

   1. (선택 사항) **보안 암호 복제**에서 보안 암호를 다른에 복제하려면 **보안 암호 복제**를 AWS 리전선택합니다. 보안 암호를 지금 복제하거나 페이지로 다시 돌아와서 나중에 복제할 수 있습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [보안 암호를 다른 리전으로 복제](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create-manage-multi-region-secrets.html)를 참조하세요.

   1. **다음**을 선택합니다.

1. (선택 사항) **교체 구성(Configure rotation)** 페이지에서 자동 교체를 켤 수 있습니다. 현재 교체를 끈 다음 나중에 켤 수도 있습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager 보안 암호 교체](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html)를 참조하세요. **다음**을 선택합니다.

1. **검토(Review)** 페이지에서 보안 암호 세부 정보를 검토한 후 **저장(Store)**을 선택합니다.

   Secrets Manager는 보안 암호 목록으로 돌아갑니다. 암호가 표시되지 않으면 Refresh(새로 고침)를 선택합니다.

------
#### [ Chainguard Registry ]

**Chainguard 자격 증명에 대한 Secrets Manager 보안 암호를 생성하려면(AWS Management Console)**Secrets Manager 보안 암호(AWS Management Console)를 생성하려면

1. [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)에서 Secrets Manager 콘솔을 엽니다.

1. **새 보안 암호 저장**을 선택합니다.

1. **보안 암호 유형 선택** 페이지에서 다음을 수행합니다.

   1. **보안 암호 유형**에서 **다른 유형의 보안 암호**를 선택합니다.

   1. **키/값 페어**에서 Chainguard 자격 증명에 대한 두 개의 행을 생성합니다. 보안 암호에는 최대 65,536바이트까지 저장할 수 있습니다.

      1. 첫 번째 키/값 페어의 경우를 키`username`로 지정하고 Chainguard 레지스트리 사용자 이름을 값으로 지정합니다.

      1. 두 번째 키/값 페어의 경우를 키`accessToken`로 지정하고 Chainguard 레지스트리 액세스 토큰을 값으로 지정합니다. Chainguard 레지스트리 풀 토큰 생성에 대한 자세한 내용은 Chainguard 설명서의 [풀 토큰으로 인증을 ](https://edu.chainguard.dev/chainguard/chainguard-images/chainguard-registry/authenticating/#authenticating-with-a-pull-token) 참조하세요.

   1. **암호화 키**의 경우 기본 **aws/secretsmanager** AWS KMS key 값을 유지하고 **다음**을 선택합니다. 이 키를 사용하는 데 드는 비용은 없습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager의 보안 암호 암호화 및 복호화](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html)를 참조하세요.
**중요**  
보안 암호를 암호화하려면 기본 `aws/secretsmanager` 암호화 키를 사용해야 합니다. Amazon ECR은 이를 위한 고객 관리형 키(CMK) 사용을 지원하지 않습니다.

1. **보안 구성(Configure secret)** 페이지에서 다음을 수행합니다.

   1. 설명이 포함된 **Secret name**(보안 암호 이름)과 **Description**(설명)을 입력합니다. 보안 암호 이름은 1\$1512자의 유니코드 문자를 포함하고 `ecr-pullthroughcache/`가 접두사로 지정되어야 합니다.
**중요**  
Amazon ECR에는 `ecr-pullthroughcache/` 접두사를 사용하는 이름이 있는 Secrets Manager 보안 암호 AWS Management Console 만 표시됩니다.

   1. (선택 사항) **Tags**(태그) 섹션에서 보안 암호에 태그를 추가합니다. 태깅 전략은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager 보안 암호 태그 지정](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets_tagging.html)을 참조하세요. 민감한 정보는 암호화되지 않으므로 태그에 저장하지 마세요.

   1. (선택 사항) **리소스 권한(Resource permissions)**에서 리소스 정책을 보안 암호에 추가하려면 **권한 편집(Edit permissions)**을 선택합니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager 보안 암호에 권한 정책 연결](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-policies.html)을 참조하세요.

   1. (선택 사항) **보안 암호 복제**에서 보안 암호를 다른에 복제하려면 **보안 암호 복제**를 AWS 리전선택합니다. 보안 암호를 지금 복제하거나 페이지로 다시 돌아와서 나중에 복제할 수 있습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [보안 암호를 다른 리전으로 복제](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create-manage-multi-region-secrets.html)를 참조하세요.

   1. **다음**을 선택합니다.

1. (선택 사항) **교체 구성(Configure rotation)** 페이지에서 자동 교체를 켤 수 있습니다. 현재 교체를 끈 다음 나중에 켤 수도 있습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [Secrets Manager 보안 암호 교체](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html)를 참조하세요. **다음**을 선택합니다.

1. **검토(Review)** 페이지에서 보안 암호 세부 정보를 검토한 후 **저장(Store)**을 선택합니다.

   Secrets Manager는 보안 암호 목록으로 돌아갑니다. 암호가 표시되지 않으면 Refresh(새로 고침)를 선택합니다.

------

# ECR에서 ECR로의 풀스루 캐시에 대한 리포지토리 접두사 사용자 지정
<a name="pull-through-cache-private-wildcards"></a>

풀스루 캐시 규칙은 **ecr 리포지토리 접두사**와 **업스트림 리포지토리 접두사**를 모두 지원합니다. **ecr 리포지토리 접두사**는 규칙과 연결된 Amazon ECR 캐시 레지스트리의 리포지토리 네임스페이스 접두사입니다. 이 접두사를 사용하는 모든 리포지토리는 규칙에 정의된 업스트림 레지스트리에 대해 풀스루 캐시가 활성화된 리포지토리가 됩니다. 예를 들어 접두사 `prod`는 `prod/`로 시작하는 모든 리포지토리에 적용됩니다. 연결된 풀스루 케시 규칙이 없는 레지스트리의 모든 리포지토리에 템플릿을 적용하려면 `ROOT`를 접두사로 사용합니다.

**중요**  
접두사 끝에는 항상 위임된 `/`가 적용됩니다. `ecr-public`을 접두사로 지정하는 경우 Amazon ECR은 `ecr-public/`을 접두사로 취급합니다.

**업스트림 리포지토리 접두사**는 업스트림 리포지토리 이름과 일치합니다. 기본적으로 이는 `ROOT`로 설정되므로 모든 업스트림 리포지토리와 일치시킬 수 있습니다. Amazon ECR 리포지토리 접두사에 `ROOT`가 아닌 값이 있는 경우에만 **업스트림 리포지토리 접두사**를 설정할 수 있습니다.

다음 표는 풀스루 캐시 규칙의 접두사 구성을 기반으로 캐시 리포지토리 이름과 업스트림 리포지토리 이름 간의 매핑을 보여줍니다.


|  캐시 네임스페이스  |  업스트림 네임스페이스  |  매핑 관계(캐시 리포지토리 → 업스트림 리포지토리)  | 
| --- | --- | --- | 
|  ecr-public  |  ROOT(기본값)  |  `ecr-public/my-app/image1` → `my-app/image1` `ecr-public/my-app/image2` → `my-app/image2`  | 
|  ROOT  |  ROOT  |  `my-app/image1` → `my-app/image1`  | 
|  team-a  |  team-a  |  `team-a/myapp/image1` → `team-a/myapp/image1`  | 
|  my-app  |  upstream-app  |  `my-app/image1` → `upstream-app/image1`  | 

# Amazon ECR에서 풀스루 캐시 문제 해결
<a name="error-pullthroughcache"></a>

풀스루 캐시 규칙을 사용하여 업스트림 이미지를 가져올 때 수신할 수 있는 가장 일반적인 오류는 다음과 같습니다.

**리포지토리가 존재하지 않음**  
리포지토리가 존재하지 않는다는 오류는 Amazon ECR 프라이빗 레지스트리에 리포지토리가 없거나 업스트림 이미지를 가져오는 IAM 보안 주체에게 `ecr:CreateRepository` 권한이 부여되지 않았기 때문에 가장 자주 발생합니다. 이 오류를 해결하려면 pull 명령의 리포지토리 URI가 올바른지, 업스트림 이미지를 가져오는 IAM 보안 주체에 필요한 IAM 권한이 부여되었는지, 또는 푸시될 업스트림 이미지에 대한 리포지토리가 업스트림 이미지 풀을 수행하기 전에 Amazon ECR 프라이빗 레지스트리에 생성되었는지 확인해야 합니다. 필요한 IAM 권한에 대한 자세한 정보는 [업스트림 레지스트리와 Amazon ECR 프라이빗 레지스트리를 동기화하는 데 필요한 IAM 권한](pull-through-cache-iam.md) 섹션을 참조하세요.  
다음은 이 오류의 예입니다.  

```
Error response from daemon: repository 111122223333.dkr.ecr.us-east-1.amazonaws.com/ecr-public/amazonlinux/amazonlinux not found: name unknown: The repository with name 'ecr-public/amazonlinux/amazonlinux' does not exist in the registry with id '111122223333'
```

**요청한 이미지를 찾을 수 없음**  
이미지를 찾을 수 없음을 나타내는 오류는 이미지가 업스트림 레지스트리에 존재하지 않거나 업스트림 이미지를 가져오는 IAM 보안 주체에게 `ecr:BatchImportUpstreamImage` 권한이 부여되지 않았지만 리포지토리가 이미 Amazon ECR 프라이빗에서 생성되고 있기 때문에 가장 자주 발생합니다. 이 오류를 해결하려면 업스트림 이미지 및 이미지 태그 이름이 올바른지, 해당 항목이 존재하는지, 그리고 업스트림 이미지를 가져오는 IAM 보안 주체에 필요한 IAM 권한이 부여되었는지를 확인해야 합니다. 필요한 IAM 권한에 대한 자세한 정보는 [업스트림 레지스트리와 Amazon ECR 프라이빗 레지스트리를 동기화하는 데 필요한 IAM 권한](pull-through-cache-iam.md) 섹션을 참조하세요.  
다음은 이 오류의 예입니다.  

```
Error response from daemon: manifest for 111122223333.dkr.ecr.us-east-1.amazonaws.com/ecr-public/amazonlinux/amazonlinux:latest not found: manifest unknown: Requested image not found
```

**Docker Hub 리포지토리에서 가져올 경우 403 금지됨 오류 발생**  
**Docker 공식 이미지**로 태그가 지정된 Docker Hub 리포지토리에서 가져올 때는 사용하는 URI에 `/library/`를 포함해야 합니다. 예를 들어 `aws_account_id.dkr.ecr.region.amazonaws.com/docker-hub/library/image_name:tag`입니다. Docker Hub 공식 이미지에 대해 `/library/`를 생략할 경우 풀스루 캐시 규칙을 사용하여 이미지를 가져오려고 하면 `403 Forbidden` 오류가 반환됩니다. 자세한 내용은 [Amazon ECR에서 풀스루 캐시 규칙으로 이미지 가져오기](pull-through-cache-working-pulling.md) 단원을 참조하십시오.  
다음은 이 오류의 예입니다.  

```
Error response from daemon: failed to resolve reference "111122223333.dkr.ecr.us-west-2.amazonaws.com/docker-hub/amazonlinux:2023": pulling from host 111122223333.dkr.ecr.us-west-2.amazonaws.com failed with status code [manifests 2023]: 403 Forbidden
```