본문 바로가기
Engineering/Cloud (AWS, ..)

AWS : AWS-CLI로 Instance 생성 오류 해결 : AWS was not able to validate the provided access credentials

by 알탱2 2021. 12. 5.
반응형

몇 달만에 AWS에 테스트 환경을 구축할 일이 있어 AWS-CLI를 사용하여 Instance를 생성해 보았다.

전에 instance 생성을 이미 해봤던 작업 환경이라 간단하게 ec2 생성을 위한 yml 수정을 완료하고 실행을 해보았다.

 

두둥!! 당황스럽게도 아래와 같은 에러를 마주치게 되었다..

An error occurred (AuthFailure) when calling the RunInstances operation: AWS was not able to validate the provided access credentials

error 문구를 자세히 보니 접근 권한의 문제로 추정 되었으나, aws configure를 통해 이미 정상적으로 활성화 상태의 KEY값임을 확인했던지라.. 바로 구글링을 해보았다.

 

그 결과 아래의 링크에서 몇 가지 시도해 볼 수 있는 가이드를 제공하여 하나씩 따라해 보았다.

결론적으로는 Access Key 재발급 + AWS CLI 버전 업데이트 2가지를 모두 적용한 상태에서 성공을 하였다. (시간 동기화의 경우 가장 처음에 적용해본 것이라 그것도 영향을 미쳤는지는 확실하지 않다.)

https://aws.amazon.com/ko/premiumsupport/knowledge-center/troubleshoot-aws-cli-commands-ec2/

 

EC2 인스턴스에서 AWS CLI 명령 실행 문제 해결

Internet Explorer에 대한 AWS 지원이 07/31/2022에 종료됩니다. 지원되는 브라우저는 Chrome, Firefox, Edge 및 Safari입니다. 자세히 알아보기

aws.amazon.com

 

1. 시간 동기화

가장 빠르게 확인 및 적용을 해볼 수 있어 보여 가장 먼저 시도를 해보았다.

date 명령어로 server 시간을 확인해 보았더니 실제 시간보다 약 4시간정도 시간이 틀어져 있었다. 아마도 전에 시간 관련 테스트를 하고 원복을 하지 않았던 모양이다..

 

아래 명령어로 바로 시간 동기화를 해주고 재시도 해보았다. 

rdate -s time.bora.net

결과는 실패.. 동일한 에러 문구만 출력되었다.

 

 

2. Access Key 재발급

우측 상단에 계정명 클릭 > 보안 자격 증명 클릭

위 페이지에 이미 aws-cli에서 사용하는 access key가 유효함(활성화)은 확인 하였으나, 마지막 사용 날짜가 약 3달 전이라 다시 발급 및 적용을 해보았다.

📌 발급한 키를 aws-cli에서 사용하기 위해서는 리눅스 서버에 아래의 명령어를 통해 재적용 할 수 있다.

aws configure

신규로 발급받은 key로 다시 instance 생성을 시도하였으나 또 실패...

 

 



3. AWS CLI 버전 업데이트

(1) 현재 AWS CLI 버전을 확인해 보았다.

# aws --version
aws-cli/2.1.0 Python/3.7.3 Linux/3.10.0-1160.el7.x86_64 exe/x86_64.centos.7

 

업데이트는 이 링크를 참고하였다.

가이드 링크에 Linux 를 선택하게되면 기본적으로 Install 방법이 나오는데, 자세히 찾아보면 update를 하는 경우 aws install 마지막 명령어에 update 옵션을 주도록 가이드 되어있다.

 

 

(2) 현재 내 설치 환경에 aws 명령어 경로와 실제 설치 경로를 확인하자. (업데이트 시, 옵션에 포함된다.)

[root@vm-centos7 aws]# which aws
/sbin/aws
[root@vm-centos7 aws]# ll /sbin/aws 
lrwxrwxrwx 1 root root 38 Aug  5 15:24 /sbin/aws -> /usr/local/aws-cli/v2/current/dist/aws

 

(3) 업데이트를 해보자.

설치 파일 다운로드 및 압축 해제

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip

 

업데이트 하기 : 위에 (2)번에서 확인된 bin 폴더 경로와 설치 경로를 각자 환경에 맞는 경로로 수정 후 명령어 실행

sudo ./aws/install --bin-dir /sbin --install-dir /usr/local/aws-cli --update

 


(4) 업데이트 후에 다시 버전 확인하기

# aws --version
aws-cli/2.4.5 Python/3.8.8 Linux/3.10.0-1160.el7.x86_64 exe/x86_64.centos.7 prompt/off

 

 

4. 결론

위 2번을 시도한 후, 2번의 AccessKey 재발급 영향이 있는지 없는지를 확인하기 위해 AWS CLI 버전 업데이트 전 기존의 Key로 다시 적용하였고, AWS-CLI 업데이트 후에도 실패하였다.

최종적으로는 AWS-CLI 업데이트 후, 신규 발급한 AccessKey까지 적용하고 성공하였다. 

Access key의 경우 유효기간이 어떻게되는지 모르겠으나, Console 접속 계정의 경우 60일마다 비밀번호를 변경하도록 정책이 되어 있는데, 해당 정책의 영향인지 다른 영향 때문인지는 모르겠다.

Access Key 기간 정책 관련해서는 나중에 다른 문제를 다시 마주치면 좀 더 파봐야겠다.

 

끝.

반응형

댓글