[AWS] no basic auth credentials 에러

아홉번째태양·2023년 7월 13일
0
post-thumbnail

생성한 도커 이미지를 AWS ECR에 푸시하려할 때 나타날 수 있는 에러다.

% docker push aws_account_id.dkr.ecr.ap-northeast-2.amazonaws.com/repo_name
Using default tag: latest
The push refers to repository [aws_account_id.dkr.ecr.ap-northeast-2.amazonaws.com/repo_name]
2ae400039901: Preparing 
960d5ae4ed5f: Preparing 
3a17d5628d9c: Preparing 
f96c96b0fc77: Preparing 
0a8156f1371f: Preparing 
167a2b037359: Waiting 
dc76478c3f39: Preparing 
1d0868567012: Waiting 
88afb0b34e7a: Waiting 
727bd179078b: Waiting 
61f2871f545a: Waiting 
no basic auth credentials

ECR 프라이빗 레포지토리에 접근하려할 때 인증을 요구하는 것인데, 이 비밀번호는 aws-cli에 로그인이 이미 되어있고 필요한 권한이 있다는 가정하에 다음의 명령어를 통해 얻을 수 있다.

aws ecr get-login-password --region ap-northeast-2

단, 이 결과를 그대로 복사해서 사용하는 것은 바람직한 방법이 아니며, 도커 푸시를 할 때 다음의 명령어를 조합하여 사용하면 비밀번호가 노출되는 일 없이 안전하게 사용이 가능하다.

$ aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

Login Succeeded

Logging in with your password grants your terminal complete access to your account. 
For better security, log in with a limited-privilege personal access token. Learn more at https://docs.docker.com/go/access-tokens/

혹은 이렇게도 사용이 가능하다.

docker login -u AWS -p $(aws ecr get-login-password --region ap-northeast-2) aws_account_id.dkr.ecr.REGION.amazonaws.com

이제 다시 푸시를 해보자.

% docker push aws_account_id.dkr.ecr.ap-northeast-2.amazonaws.com/repo_name
Using default tag: latest
The push refers to repository [aws_account_id.dkr.ecr.ap-northeast-2.amazonaws.com/repo_name]
2ae4000399xx: Pushed 
960d5ae4edxx: Pushed 
3a17d5628dxx: Pushed 
f96c96b0fcxx: Pushed 
0a8156f137xx: Pushed 
167a2b0373xx: Pushed 
dc76478c3fxx: Pushed 
1d08685670xx: Pushed 
88afb0b34exx: Pushed 
727bd17907xx: Pushed 
61f2871f54xx: Pushed 
latest: digest: sha256:xxxx size: 2618



참고자료
AWS ECS Guide - Creating a container image
AWS ECR Guide - Using Amazon ECR with the AWS CLI

0개의 댓글