튜토리얼: GitLab.com 프로젝트에 대한 인증된 액세스를 위한 AWS ECR Pull Through Cache 규칙 구성
GitLab v19.5요약
Step 1: Specify a source 페이지에서 Registry에 GitLab Container Registry를 선택하고 Next를 선택합니다. Step 2: Configure authentication 페이지에서 Upstream credentials의 경우, GitLab Container Registry에 대한 인증 자격 증명을 AWS Secrets Manager 시크릿에 저장해야 합니다.
- https://console.aws.amazon.com/ecr에서 Amazon ECR 콘솔을 엽니다.
- 탐색 모음에서 프라이빗 레지스트리 설정을 구성할 리전을 선택합니다.
- 탐색 창에서 Private registry, Pull through cache를 선택합니다.
- Pull through cache configuration 페이지에서 Add rule을 선택합니다.
Step 1: Specify a source 페이지에서 Registry에 GitLab Container Registry를 선택하고 Next를 선택합니다.
Step 2: Configure authentication 페이지에서 Upstream credentials의 경우, GitLab Container Registry에 대한 인증 자격 증명을 AWS Secrets Manager 시크릿에 저장해야 합니다. 기존 시크릿을 지정하거나 Amazon ECR 콘솔을 사용해 새 시크릿을 생성할 수 있습니다.
기존 시크릿을 사용하려면 Use an existing AWS secret을 선택합니다. Secret name에서 드롭다운을 사용해 기존 시크릿을 선택한 다음 Next를 선택합니다. Secrets Manager 콘솔을 사용해 Secrets Manager 시크릿을 생성하는 방법에 대한 자세한 내용은 Storing your upstream repository credentials in an AWS Secrets Manager secret을 참고합니다.
AWS Management Console에는 이름이 ecr-pullthroughcache/ 접두사를 사용하는 Secrets Manager 시크릿만 표시됩니다. 또한 시크릿은 pull through cache 규칙이 생성되는 계정 및 리전과 동일한 계정과 리전에 있어야 합니다.
새 시크릿을 생성하려면 Create an AWS secret을 선택하고 다음을 수행한 다음 Next를 선택합니다.
Secret name에는 시크릿을 설명하는 이름을 지정합니다. 시크릿 이름은 1~512개의 유니코드 문자를 포함해야 합니다.
GitLab Container Registry username에는 GitLab Container Registry 사용자 이름을 지정합니다.
GitLab Container Registry access token에는 GitLab Container Registry 액세스 토큰을 지정합니다. 최소 권한 원칙을 따르려면 Guest 권한과 read_registry 스코프만 있는 Group Access Token을 생성합니다.
Step 3: Specify a destination 페이지에서 Amazon ECR repository prefix에는 소스 퍼블릭 레지스트리에서 풀한 이미지를 캐싱할 때 사용할 리포지터리 네임스페이스를 지정한 다음 Next를 선택합니다.
기본적으로 네임스페이스가 자동으로 채워지지만 사용자 지정 네임스페이스를 지정할 수도 있습니다.
Step 4: Review and create 페이지에서 pull through cache 규칙 구성을 검토한 다음 Create를 선택합니다.
생성하려는 각 pull through cache에 대해 이전 단계를 반복합니다. Pull through cache 규칙은 리전마다 별도로 생성됩니다.
ECR Pull Through Cache 규칙이 성공적으로 생성되었는지 확인하려면 AWS CLI를 통해 다음 명령을 실행하여 규칙을 검증할 수 있습니다.
aws ecr validate-pull-through-cache-rule \
--ecr-repository-prefix ecr-public \
--region us-east-2
ECR Pull Through Cache 규칙이 GitLab.com 업스트림 레지스트리에 대한 pull-through 액세스를 제공하는지 확인하려면 docker pull 명령을 실행하여 검증할 수 있습니다.
docker pull aws_account_id.dkr.ecr.region.amazonaws.com/{destination-namespace e.g. gitlab-ef1b}/{path to Gitlab.com project/group where image is hosted}/image_name:tag
docker pull 명령 예시:
docker pull aws_account_id.dkr.ecr.region.amazonaws.com/gitlab-ef1b/guided-explorations/ci-components/working-code-examples/kaniko-component-multiarch-build:latest