풀스루 캐시 규칙 사용 - Amazon ECR

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

풀스루 캐시 규칙 사용

풀스루 캐시 규칙을 사용하면 업스트림 레지스트리의 콘텐츠를 Amazon ECR 프라이빗 레지스트리와 동기화할 수 있습니다. Amazon ECR은 현재 다음 업스트림 레지스트리에 대한 풀스루 캐시 규칙 생성을 지원합니다.

  • 도커 허브, Microsoft Azure 컨테이너 레지스트리, GitHub 컨테이너 레지스트리 (인증 필요)

  • Amazon ECR 퍼블릭, Kubernetes 컨테이너 이미지 레지스트리, Quay(인증 필요 없음)

인증이 필요한 업스트림 레지스트리의 경우 자격 증명을 비밀로 저장해야 합니다. AWS Secrets Manager Amazon ECR 콘솔을 사용하면 인증된 업스트림 레지스트리 각각에 대해 Secrets Manager 보안 암호를 쉽게 생성할 수 있습니다. Secrets Manager 콘솔을 사용하여 Secrets Manager 보안 암호를 생성하는 방법에 대한 자세한 내용은 업스트림 리포지토리 자격 증명을 비밀에 저장 AWS Secrets Manager을 참조하세요.

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

Amazon ECR은 현재 평가판으로 제공되며 리포지토리 생성 템플릿에 대한 지원을 추가했습니다. 이 템플릿에서는 사용자 대신 풀스루 캐시 규칙을 사용하여 Amazon ECR에서 생성한 새 리포지토리의 초기 구성을 지정할 수 있습니다. 각 템플릿에는 새 리포지토리를 특정 템플릿에 매칭하는 데 사용되는 리포지토리 네임스페이스 접두사가 포함되어 있습니다. 템플릿은 리소스 기반 액세스 정책, 태그 불변성, 암호화, 수명 주기 정책을 비롯한 모든 리포지토리 설정의 구성을 지정할 수 있습니다. 리포지토리 생성 템플릿의 설정은 리포지토리를 생성하는 동안에만 적용되며 기존 리포지토리나 다른 방법을 사용하여 생성한 리포지토리에는 영향을 주지 않습니다. 자세한 정보는 리포지토리 생성 템플릿 관리을 참조하세요.

풀스루 캐시 사용 시 고려할 사항

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를 통해 캐시된 이미지를 가져오면 IP 주소를 기준으로 이미지 가져오기가 시작됩니다. AWS 이렇게 하면 이미지 풀이 업스트림 레지스트리에서 구현한 풀 레이트 할당량에 포함되지 않습니다.

  • 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 서비스 연결 역할을 참조하세요.

  • 기본적으로 캐시된 이미지를 가져오는 IAM 보안 주체에는 IAM 정책을 통해 부여된 권한이 있습니다. Amazon ECR 프라이빗 레지스트리 권한 정책을 사용하여 IAM 엔터티의 권한 범위를 추가로 지정할 수 있습니다. 자세한 정보는 레지스트리 권한 사용을 참조하세요.

  • 풀스루 캐시 워크플로를 사용하여 생성된 Amazon ECR 리포지토리는 다른 모든 Amazon ECR 리포지토리처럼 취급됩니다. 복제 및 이미지 스캔과 같은 모든 리포지토리 기능이 지원됩니다.

  • Amazon ECR이 풀스루 캐시 작업을 사용하여 사용자 대신 새 리포지토리를 생성하는 경우 일치하는 리포지토리 생성 템플릿이 없는 한 다음 기본 설정이 리포지토리에 적용됩니다. 리포지토리 생성 템플릿을 사용하여 Amazon ECR에서 생성한 리포지토리에 적용되는 설정을 사용자 대신 정의할 수 있습니다. 자세한 정보는 리포지토리 생성 템플릿 관리을 참조하세요.

    • 태그 불변성 - 이 기능을 비활성화하면 태그는 변경 가능하며 덮어쓸 수 있습니다.

    • 암호화 - 기본 AES256 암호화가 사용됩니다.

    • 리포지토리 권한 - 생략됨, 리포지토리 권한 정책이 적용되지 않습니다.

    • 수명 주기 정책 - 생략됨, 수명 주기 정책이 적용되지 않습니다.

    • 리소스 태그 - 생략됨, 리소스 태그가 적용되지 않습니다.

  • 풀스루 캐시 규칙을 사용하여 리포지토리의 이미지 태그 불변성을 활성화하면 Amazon ECR에서 동일한 태그를 사용하는 이미지를 업데이트할 수 없게 됩니다.

  • 풀스루 캐시 규칙을 사용하여 이미지를 처음으로 가져오는 경우 인터넷으로의 경로가 필요할 수 있습니다. 특정 상황에서는 인터넷 경로가 필요하므로 장애가 발생하지 않도록 경로를 설정하는 것이 가장 좋습니다. 따라서 를 AWS PrivateLink 사용하는 인터페이스 VPC 엔드포인트를 사용하도록 Amazon ECR을 구성한 경우 첫 번째 pull 시 인터넷 경로가 있는지 확인해야 합니다. 이를 위한 한 가지 방법은 인터넷 게이트웨이가 있는 동일한 VPC에 퍼블릭 서브넷을 만든 다음, 모든 아웃바운드 트래픽을 프라이빗 서브넷에서 퍼블릭 서브넷으로 인터넷으로 라우팅하는 것입니다. 풀스루 캐시 규칙을 사용한 후속 이미지 풀에는 이 설정이 필요하지 않습니다. 자세한 내용을 알아보려면 Amazon Virtual Private Cloud 사용 설명서라우팅 옵션 예을 참조하세요.

필수 IAM 권한

풀스루 캐시 규칙을 효과적으로 사용하기 위해서는 프라이빗 레지스트리에 인증하고 이미지를 푸시하고 가져오는 데 필요한 Amazon ECR API 권한과 더불어 다음과 같은 추가 권한이 필요합니다.

  • ecr:CreatePullThroughCacheRule – 풀스루 캐시 규칙을 생성할 수 있는 권한을 부여합니다. 이 권한은 자격 증명 기반 IAM 정책을 통해 부여되어야 합니다.

  • ecr:BatchImportUpstreamImage – 외부 이미지를 검색하고 이 이미지를 프라이빗 레지스트리로 가져올 수 있는 권한을 부여합니다. 이 권한은 프라이빗 레지스트리 권한 정책, 자격 증명 기반 IAM 정책을 사용하거나 리소스 기반 리포지토리 권한 정책을 사용하여 부여될 수 있습니다. 리포지토리 권한에 대한 자세한 내용은 프라이빗 리포지토리 정책 섹션을 참조하세요.

  • ecr:CreateRepository – 프라이빗 레지스트리에 리포지토리를 생성할 수 있는 권한을 부여합니다. 이 권한은 캐시된 이미지를 저장하는 리포지토리가 이미 존재하지 않는 경우에 필요합니다. 이 권한은 자격 증명 기반 IAM 정책 또는 프라이빗 레지스트리 권한 정책에 의해 부여할 수 있습니다.

  • ecr:TagResource - Amazon ECR 리소스에 메타데이터 태그를 추가할 수 있는 권한을 부여합니다. 이 권한은 리포지토리에 리소스 태그를 추가하도록 구성된 관련 리포지토리 생성 템플릿이 있는 풀스루 캐시 규칙을 사용하는 이미지를 가져오는 경우에만 필요합니다. 이 권한은 자격 증명 기반 IAM 정책을 통해 부여되어야 합니다.

레지스트리 권한 사용

Amazon ECR 프라이빗 레지스트리 권한은 풀스루 캐시를 사용하도록 개별 IAM 엔터티의 권한 범위를 지정하는 데 활용할 수 있습니다. IAM 엔터티에 레지스트리 권한 정책에서 허용하는 권한보다 IAM 정책에서 부여한 권한이 많을 경우 IAM 정책이 우선합니다. 예를 들어, 사용자에게 ecr:* 권한이 부여된 경우에는 레지스트리 수준에서 추가 권한이 필요하지 않습니다.

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

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

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

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

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

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

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

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

    4. 리포지토리 네임스페이스(Repository namespace)로 정책을 연결할 풀스루 캐시 규칙을 선택합니다.

    5. 리포지토리 이름(Repository names)에서 규칙을 적용할 리포지토리 기본 이름을 지정합니다. 예를 들어, Amazon ECR Public에서 Amazon Linux 리포지토리를 지정하려는 경우 리포지토리 이름은 amazonlinux입니다.

다음 AWS CLI 명령을 사용하여 사설 레지스트리 권한을 지정합니다. AWS CLI

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

    { "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

다음 단계

풀스루 캐시 규칙을 사용할 준비가 되었으면 다음 단계는 다음과 같습니다.

  • 풀스루 캐시 규칙을 생성합니다. 자세한 정보는 풀스루 캐시 규칙 생성을 참조하세요.

  • 리포지토리 생성 템플릿을 생성합니다. 리포지토리 생성 템플릿을 사용하면 풀스루 캐시 작업 중에 Amazon ECR에서 사용자 대신 생성한 새 리포지토리에 사용할 설정을 정의할 수 있습니다. 자세한 정보는 리포지토리 생성 템플릿 관리을 참조하세요.

  • 풀스루 캐시 규칙 사용 방법에 대해 알아보세요. 자세한 정보는 풀스루 캐시 규칙 작업을 참조하세요.