Amazon ECR 레지스트리 - Amazon ECR

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

Amazon ECR 레지스트리

Amazon ECR 레지스트리를 사용하면 가용성 및 확장성이 뛰어난 아키텍처로 이미지를 호스팅할 수 있으며, 이를 통해 애플리케이션용 컨테이너를 안정적으로 배포할 수 있습니다. 레지스트리를 사용하여 도커 이미지 및 Open Container Initiative(OCI) 이미지로 구성된 이미지 리포지토리를 관리할 수 있습니다. 각 AWS 계정은 단일(기본값)으로 제공됩니다. Amazon ECR 레지스트리.

레지스트리 개념

  • 기본 레지스트리의 URL은 입니다.https://aws_account_id.dkr.ecr.region.amazonaws.com.

  • 기본적으로 사용자의 계정은 자신의 기본 레지스트리에 있는 리포지토리에 대한 읽기 및 쓰기 액세스 권한을 갖습니다. 그러나, IAM 사용자에게는 Amazon ECR 저장소에서 이미지를 밀거나 끌어올리려면 Amazon ECR 는 다양한 레벨의 사용자 액세스를 제어하는 여러 관리 정책을 제공합니다. 자세한 정보는 단원을 참조하십시오.Amazon Elastic Container Registry 자격 증명 기반 정책 예제.

  • 귀하는 docker push and docker pull 명령을 사용하여 해당 레지스트리에 있는 리포지토리에서 이미지를 밀고 가져옵니다. 자세한 정보는 단원을 참조하십시오.레지스트리 인증.

  • 리포지토리는 IAM 사용자 액세스 정책 및 리포지토리 정책 모두를 사용하여 제어할 수 있습니다. 리포지토리 정책에 대한 자세한 내용은 단원을 참조하십시오.저장소 정책.

레지스트리 인증

사용 가능한 AWS Management 콘솔, AWS CLI, 또는 AWS 저장소를 만들고 관리할 수 있습니다. 이러한 방법을 사용하여 이미지에 대해 목록 조회 또는 삭제 같은 일부 작업을 수행할 수도 있습니다. 이러한 클라이언트는 표준 AWS 인증 방법을 사용합니다. 기술적으로는 Amazon ECR API를 사용하여 이미지를 푸시하고 가져올 수 있지만, Docker CLI 또는 언어별 도커 라이브러리를 사용하는 것이 더 좋습니다.

Docker CLI는 기본 IAM 인증 방법을 지원하지 않습니다. 추가 단계를 수행해야 합니다. Amazon ECR 는 Docker 푸시 및 풀 요청을 인증하고 인증할 수 있습니다.

다음 레지스트리 인증 방법을 사용할 수 있습니다.

사용 Amazon ECR 자격 증명 도우미

Amazon ECR은 에서 이미지를 푸시하고 가져올 때 도커 자격 증명을 더 쉽게 저장하고 사용할 수 있도록 도커 자격 증명 헬퍼를 제공합니다.Amazon ECR. 설치 및 구성 단계는 다음을 참조하세요. Amazon ECR Docker 자격 증명 도우미.

권한 부여

권한 부여 토큰의 권한 범위는 권한 부여 토큰을 검색하는 데 사용된 IAM 보안 주체의 권한 범위와 일치합니다. 인증 Fixlet은 Amazon ECR 귀하의 IAM 원금은 12시간 동안 이용할 수 있으며 유효합니다. 인증 구성을 받으려면, getauthorization username이 포함된 base64 인코딩된 인증 Fixlet을 검색하는 API 작업 AWS 암호화된 암호를 입력합니다. The AWS CLI get-login-password 명령을 사용하면 권한 부여를 검색하여 디코딩하여 docker login 을(를) 인증하는 명령을 명령합니다.

get-login-password를 사용하여 Amazon ECR 레지스트리에 대해 Docker를 인증하려면 aws ecr get-login-password 명령을 실행합니다. 인증 토큰을 docker login 명령에 전달할 때 사용자 이름으로 값 AWS를 사용하고, 인증하려는 Amazon ECR 레지스트리 URI를 지정합니다. 여러 레지스트리에 대해 인증하는 경우 각 레지스트리에 대해 명령을 반복해야 합니다.

중요

오류가 발생하면 최신 버전의 AWS CLI를 설치하거나 업그레이드합니다. 자세한 내용은 AWS Command Line Interface 사용 설명서AWS 명령줄 인터페이스 설치를 참조하십시오.

  • get-login-password(AWS CLI)

    aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
  • Get-ECRLoginCommand(Windows PowerShell용 AWS 도구)

    (Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

1.17.10 이전 AWS CLI 버전을 사용하는 경우 get-login 명령을 사용하여 Amazon ECR 레지스트리에 대해 인증할 수 있습니다. AWS CLI 버전은 aws --version 명령을 통해 확인할 수 있습니다.

  1. aws ecr get-login 명령을 실행합니다. 다음은 요청 계정과 연결된 기본 레지스트리에 대한 예제입니다. 다른 계정 레지스트리에 액세스하려면 --registry-ids aws_account_id 옵션을 사용하십시오. 자세한 정보는 AWS CLI Command Referenceget-login 단원을 참조하십시오.

    aws ecr get-login --region region --no-include-email

    결과 출력은 Amazon ECR 레지스트리에 대해 Docker 클라이언트를 인증하는 데 사용하는 docker login 명령입니다.

    docker login -u AWS -p password https://aws_account_id.dkr.ecr.region.amazonaws.com
  2. docker login 명령을 복사하여 터미널에 붙여 넣어 Docker CLI를 레지스트리에 대해 인증합니다. 이 명령은 지정된 레지스트리에 대해 12시간 동안 유효한 인증 토큰을 제공합니다.

    참고

    Windows PowerShell을 사용 중인 경우에는 이와 같이 긴 문자열을 복사해서 붙여 넣는 방식을 사용할 수 없습니다. 대신 다음 명령을 사용합니다.

    Invoke-Expression -Command (Get-ECRLoginCommand -Region region).Command
    중요

    docker login 명령을 실행할 때 시스템의 다른 사용자가 프로세스 목록(ps -e) 디스플레이에서 해당 명령 문자열을 볼 수 있습니다. docker login 명령에는 인증 자격 증명이 포함되므로, 시스템의 다른 사용자가 이러한 방식으로 이 자격 증명을 볼 수 있는 위험이 있습니다. 또한 다른 사용자가 이 자격 증명을 사용하여 리포지토리에 대한 푸시 및 풀 액세스 권한을 얻을 수 있습니다. 안전한 시스템이 아닐 경우 이 위험을 고려하여 -p password 옵션을 생략하고 요청 시 암호를 입력하는 대화형 방식으로 로그인해야 합니다.

HTTP API 인증 사용

Amazon ECR 지원 도커 레지스트리 HTTP API. 그러나 Amazon ECR은 프라이빗 레지스트리이기 때문에 모든 HTTP 요청에 권한 부여 토큰을 입력해야 합니다. 다음을 사용하여 HTTP 권한 부여 헤더를 추가할 수 있습니다. -H 옵션 curl 승인된 허가 목록을 get-authorization-token AWS CLI 명령.

인증하려면 Amazon ECR HTTP API

  1. 다음 번호로 인증 코드 검색 AWS CLI 환경 변수 로 설정합니다.

    TOKEN=$(aws ecr get-authorization-token --output text --query 'authorizationData[].authorizationToken')
  2. API에 인증하려면 $TOKEN 변수로 -H 옵션 curl. 예를 들어, 다음 명령을 실행하면 이미지 태그가 나열됩니다. Amazon ECR 저장소. 자세한 내용은 도커 레지스트리 HTTP API 참조 문서.

    curl -i -H "Authorization: Basic $TOKEN" https://aws_account_id.dkr.ecr.region.amazonaws.com/v2/amazonlinux/tags/list

    결과:

    HTTP/1.1 200 OK
    Content-Type: text/plain; charset=utf-8
    Date: Thu, 04 Jan 2018 16:06:59 GMT
    Docker-Distribution-Api-Version: registry/2.0
    Content-Length: 50
    Connection: keep-alive
    
    {"name":"amazonlinux","tags":["2017.09","latest"]}