Amazon ECR Docker 자격 증명 도우미는 Amazon Elastic Container Registry를 더 쉽게 사용할 수 있게 해주는 Docker 데몬용 자격 증명 도우미입니다.
전제 조건
설치 중
아마존 리눅스 2023(AL2023)
아마존 리눅스 2(AL2)
맥 OS
Debian Buster(및 향후 버전)
Ubuntu 19.04 Disco Dingo 이상
아치 리눅스
알파인 리눅스
윈도우
소스에서
구성
도커
AWS 자격 증명
Amazon ECR Docker 자격 증명 도우미
용법
문제 해결
보안 공개
특허
시스템에 Docker 1.11 이상이 설치되어 있어야 합니다.
또한 사용 가능한 AWS 자격 증명이 있어야 합니다. 다양한 AWS 자격 증명을 사용하는 방법에 대한 자세한 내용은 AWS 자격 증명 섹션을 참조하십시오.
Amazon Linux 2023 리포지토리에서 Amazon ECR 자격 증명 헬퍼를 설치할 수 있습니다.
$ sudo dnf install -y amazon-ecr-credential-helper
자격 증명 도우미를 설치한 후 도우미와 함께 작동하도록 Docker를 구성하는 방법에 대한 지침은 구성 섹션을 참조하세요.
docker
또는 ecs
extras에서 Amazon ECR Credential Helper를 설치할 수 있습니다.
$ sudo amazon-linux-extras 도커 활성화 $ sudo yum install amazon-ecr-credential-helper
자격 증명 도우미를 설치한 후 도우미와 함께 작동하도록 Docker를 구성하는 방법에 대한 지침은 구성 섹션을 참조하세요.
커뮤니티가 관리하는 Homebrew 공식은 코어 탭에서 사용할 수 있습니다.
$ 양조 설치 docker-credential-helper-ecr
macOS에서 커뮤니티가 관리하는 또 다른 설치 방법은 MacPorts를 사용하는 것입니다.
$ sudo 포트 설치 docker-credential-helper-ecr
자격 증명 도우미를 설치한 후 도우미와 함께 작동하도록 Docker를 구성하는 방법에 대한 지침은 구성 섹션을 참조하세요.
Debian Buster 아카이브에서 Amazon ECR Credential Helper를 설치할 수 있습니다. 이 패키지는 향후 데비안 릴리스에도 포함될 것입니다.
$ sudo 적절한 업데이트 $ sudo apt install amazon-ecr-credential-helper
자격 증명 도우미를 설치한 후 도우미와 함께 작동하도록 Docker를 구성하는 방법에 대한 지침은 구성 섹션을 참조하세요.
Ubuntu 19.04 Disco Dingo(및 최신) 아카이브에서 Amazon ECR 자격 증명 헬퍼를 설치할 수 있습니다.
$ sudo 적절한 업데이트 $ sudo apt install amazon-ecr-credential-helper
자격 증명 도우미를 설치한 후 도우미와 함께 작동하도록 Docker를 구성하는 방법에 대한 지침은 구성 섹션을 참조하세요.
커뮤니티가 관리하는 패키지는 Arch User Repository에서 사용할 수 있습니다.
$ git 클론 https://aur.archlinux.org/amazon-ecr-credential-helper.git $ cd amazon-ecr-credential-helper $ makepkg -si
자격 증명 도우미를 설치한 후 도우미와 함께 작동하도록 Docker를 구성하는 방법에 대한 지침은 구성 섹션을 참조하세요.
커뮤니티에서 관리하는 패키지는 Alpine Linux aports Repository에서 사용할 수 있습니다.
$ apk docker-credential-ecr-login 추가
메모
배지에는 Edge만 표시됩니다. 저장소에서 안정적인 릴리스를 확인하거나 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
추가하세요.
자격 증명 도우미를 설치한 후 도우미와 함께 작동하도록 Docker를 구성하는 방법에 대한 지침은 구성 섹션을 참조하세요.
Windows 실행 파일은 GitHub 릴리스를 통해 사용할 수 있습니다.
메모
Windows ARM 지원은 실험적인 것으로 간주됩니다.
#795 참조
Amazon ECR Docker Credential Helper를 구축하고 설치하려면 Go 1.19 이상, git
및 make
시스템에 설치하는 것이 좋습니다.
방금 Go를 설치한 경우 PATH 또는 환경 변수(Windows)에도 추가했는지 확인하세요. 예를 들어:
$ export GOPATH=$HOME/go $ export PATH=$PATH:$GOPATH/bin
또는 Windows에서:
setx GOPATH %USERPROFILE%go <your existing PATH definitions>;%USERPROFILE%gobin
PATH를 정의하지 않은 경우 아래 명령은 자동으로 실패하고 docker-credential-ecr-login
실행하면 command not found
출력됩니다.
go
명령줄 도구를 통해 설치할 수 있습니다.
설치하려면 다음을 실행하세요.
go install github.com/awslabs/amazon-ecr-credential-helper/ecr-login/cli/docker-credential-ecr-login@latest
경고
고지 사항: 이 리포지토리의 Dockerfile은 GitHub Actions CI에서 Amazon ECR 자격 증명 헬퍼 바이너리의 교차 컴파일을 테스트하고 소스에서 로컬로 구축하기 위한 개발자 유틸리티로 사용됩니다. 이는 참조 구현이며 프로덕션 컨테이너를 구축하고 실행하기 위해 보안이 강화되지 않았습니다.
이미 Docker 환경이 있는 경우 이 저장소를 어디든 복제하고 make build-in-docker
실행하세요. 이 명령은 Docker 컨테이너 내부에 Go를 사용하여 바이너리를 빌드하고 로컬 디렉터리에 출력합니다.
TARGET_GOOS
환경 변수를 사용하면 바이너리를 크로스 컴파일할 수도 있습니다.
자격 증명 도우미를 설치한 후 도우미와 함께 작동하도록 Docker를 구성하는 방법에 대한 지침은 구성 섹션을 참조하세요.
docker login
또는 docker logout
사용할 필요가 없습니다.
docker-credential-ecr-login
바이너리를 PATH
에 배치하고 ~/.docker/config.json
파일의 내용을 다음과 같이 설정합니다.
{ "credsStore": "ecr-로그인"}
그러면 모든 Amazon ECR 레지스트리에 대해 자격 증명 헬퍼를 사용하도록 Docker 데몬이 구성됩니다.
Amazon ECR Docker 자격 증명 도우미는 기존 Docker 로그인 인증 토큰과 함께 사용할 수 있습니다.
{ "credsStore": "ecr-login", "auths": { "https://index.docker.io/v1/": { "auth": [docker.io-auth-token] }, "registry.gitlab.com": { "인증": [gitlab-auth-token] }, } }
Docker 1.13.0 이상에서는 다양한 ECR 레지스트리에 대해 다양한 자격 증명 도우미를 사용하도록 Docker를 구성할 수 있습니다. 특정 ECR 레지스트리에 대해 이 자격 증명 도우미를 사용하려면 ECR 레지스트리의 URI를 사용하여 credHelpers
섹션을 생성합니다.
{ "credHelpers": { "public.ecr.aws": "ecr-login", "<aws_account_id>.dkr.ecr.<region>.amazonaws.com": "ecr-login" } }
이는 docker
사용하여 다른 인증 자격 증명을 사용하는 레지스트리에서 작업하는 경우 유용합니다.
Amazon ECR Docker Credential Helper를 사용하면 다양한 위치에 저장된 AWS 자격 증명을 사용할 수 있습니다. 표준에는 다음이 포함됩니다.
공유 자격 증명 파일( ~/.aws/credentials
)
AWS_ACCESS_KEY_ID
및 AWS_SECRET_ACCESS_KEY
환경 변수
Amazon ECS 작업에 대한 IAM 역할
Amazon EC2의 IAM 역할
공유 자격 증명 파일( ~/.aws/credentials
)에서 다른 명명된 프로필과 연결된 자격 증명을 사용하려면 AWS_PROFILE
환경 변수를 설정할 수 있습니다.
Amazon ECR Docker 자격 증명 헬퍼는 AWS 공유 구성 파일( ~/.aws/config
)에 지정된 일부 구성 옵션을 읽고 지원합니다. 이러한 옵션을 비활성화하려면 AWS_SDK_LOAD_CONFIG
환경 변수를 false
로 설정해야 합니다. 지원되는 옵션은 다음과 같습니다.
role_arn
및 source_profile
로 지정된 가정된 역할
credential_process
로 지정된 외부 자격 증명 프로세스
Kubernetes의 서비스 계정에 대한 IAM 역할과 같은 웹 ID( 참고: 루트가 아닌 사용자가 있는 컨테이너를 사용하는 Kubernetes 사용자는 이 버그에 설명된 권한 문제가 발생할 수 있으며 Kubernetes securityContext
조정하는 해결 방법을 사용해야 할 수 있습니다. )
Amazon ECR Docker 자격 증명 헬퍼는 AWS CLI 및 AWS SDK와 동일한 자격 증명을 사용합니다. AWS 자격 증명 구성에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서 의 구성 및 자격 증명 파일을 참조하십시오.
자격 증명에는 Amazon ECR에 대한 액세스를 허용하는 정책이 적용되어 있어야 합니다.
환경변수 | 샘플 값 | 설명 |
---|---|---|
AWS_ECR_DISABLE_CACHE | 진실 | 비어 있지 않은 값으로 설정된 경우 로컬 파일 인증 캐시를 비활성화합니다. |
AWS_ECR_CACHE_DIR | ~/.ecr | 로컬 파일 인증 캐시 디렉터리 위치를 지정합니다. |
AWS_ECR_IGNORE_CREDS_STORAGE | 진실 | docker 로그인 또는 로그아웃 호출을 무시하고 성공한 척 |
docker pull 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-repository:my-tag
docker push 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-repository:my-tag
docker pull public.ecr.aws/amazonlinux/amazonlinux:latest
AWS CLI에 사용할 추가 프로필을 구성한 경우 docker
호출 시 AWS_PROFILE
환경 변수를 지정하여 해당 프로필을 사용할 수 있습니다. 예를 들어:
AWS_PROFILE=myprofile docker pull 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-repository:my-tag
docker login
또는 docker logout
사용할 필요가 없습니다.
이전에 docker login
명령을 수동으로 사용하여 ECR 저장소에 인증한 경우 Docker는 이후 만료된 인증 토큰을 저장했을 수 있습니다. Docker는 자격 증명 도우미를 활용하는 대신 캐시된 인증 토큰을 계속 사용하려고 시도합니다. docker logout 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-repository
사용하여 이전에 캐시된 만료된 토큰을 명시적으로 제거해야 합니다. 그 후 Docker는 ECR 자격 증명 도우미를 활용하여 새로운 자격 증명을 가져오기 시작하므로 더 이상 docker login
또는 docker logout
사용할 필요가 없습니다.
Amazon ECR Docker 자격 증명 헬퍼의 로그는 ~/.ecr/log
에 저장됩니다.
Amazon ECR에 대한 자세한 내용은 Amazon Elastic Container Registry 사용 설명서를 참조하세요.
실험적이라고 표시된 기능은 선택적으로 사용자가 테스트하고 피드백을 제공할 수 있도록 제공됩니다.
실험적인 기능을 테스트하는 경우 다음과 관련된 기능의 추적 문제를 통해 피드백을 제공할 수 있습니다.
해당 기능에 대한 귀하의 경험
문제 또는 문제
제안된 개선 사항
실험적 기능은 설계 및 구현이 불완전합니다. 이전 버전과 호환되지 않는 변경 사항은 언제든지 도입되거나 지원이 완전히 중단될 수 있습니다. 따라서 실험적 기능은 프로덕션 환경에서 사용 하지 않는 것이 좋습니다 .
잠재적인 보안 문제를 발견했다고 생각되면 문제에 게시하지 마세요. 대신 여기의 지침을 따르거나 AWS 보안 담당자에게 직접 이메일을 보내주십시오.
Amazon ECR Docker 자격 증명 도우미는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다.