AWS를 사용하게 되면, 특히 실제 업무에서 활용하게 되면, 여러 account를 전환하면서 사용해야 하는 경우가 발생한다. 쉽게는 개발/검증 등의 계정을 각각 둘 수도 있고, 개인적인 경우라면 회사용, 개인 개발용, 학습용 등등을 두고 사용하는 것이 가능하다.

여기서는 이러한 계정들을 다 하나의 PC에 설치해 두고, 서로 전환해 가면서 사용할 수 있는 방법을 살펴보고자 한다. 여기서 계정을 설치한다는 의미는 awscli 상에 로그인 정보를 넣어두는 것을 의미하며, 웹 콘솔에 대한 부분은 아니다.

AWS Configure --profile

처음에 AWS Console 의 IAM에서 생성한 사용자에 대해, access key 를 생성해두면, 로컬 환경에서 다음과 같이 설정하여 configure 할 수 있다.

aws configure

AWS Access Key ID [****************XXXX]:
AWS Secret Access Key [****************XXXX]:
Default region name [ap-northeast-2]:
Default output format [json]:

사실 계정을 전환하려면 위 명령어 aws configure를 한 번 더 입력하고 다시 계정 정보를 입력하면 되지만, 비밀번호도 아닌 access key 를 가지고 하는 저 과정을 매번 전환하면서 하기란 귀찮은 일이다.

이럴때는 --profile옵션을 이용하여 각 configure정보를 profile에 저장한다.

aws configure --profile testUser

AWS Access Key ID [****************XXXX]:
AWS Secret Access Key [****************XXXX]:
Default region name [ap-northeast-2]:
Default output format [json]:

저렇게 profile을 지정해 두면, awscli 명령어 뒤에 --profile과 함께 사용하고자 하는 profile 이름을 입력하여 사용할 수 있다.

aws s3 ls --profile testUser

기본 프로파일 설정하기

위와 같이 설정하면, 프로파일로 동작하긴 하지만, 다른 툴이나 바이너리에서 aws 인증정보를 활용하려고 할 때 여전히 사용하지 못한다. 따라서 아래와 같이 AWS_DEFAULT_PROFILE 값을 지정해 주면 문제없이 사용이 가능하다.

export AWS_DEFAULT_PROFILE=testUser

이제 --profile 옵션 없이 command 실행해도 정상적으로 동작한다.

aws s3 ls 

기본값 활성화하기

만약 profile을 정말 자주 변경해야 한다면, 위와 같이 set 명령어를 이용해서 설정을 매번 바꿔줘야 한다. 하지만 매번 로그인하던 것 보다는 훨씬 편하다.

자주 변경되지는 않으나 종종 변경해야 하고, 기본값이 되었으면 하는 profile이 명확하다면 위 설정 부분을 .zshrc 혹은 .bashrc에 넣는다.

출처 및 참고자료


Leave a comment