- 여러개의 자격 증명 프로필을 가질 수 있다
- 이 경우에 aws cli, aws sam cli 등 커맨드라인을 사용할 때
- 프로필을 지정해 줘야한다
프로필 추가
terminal1 2
| aws configure --profile newprofile
|
AWS Access Key ID [None]: new
AWS Secret Access Key [None]: newkey
Default region name [None]:
Default output format [None]:
aws configure --profile {profile name}
명령을 치면 위 처럼 나오는데
- 여기에 키아이디와 키를 입력한다
%USERPROFILE%/.aws/credentials1 2 3 4 5 6 7
| [default] aws_access_key_id = xxxxxxxxxxxxxxxxxxxx aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[newprofile] aws_access_key_id = new aws_secret_access_key = newkey
|
- %USERPROFILE%/.aws/credentials 파일을 열어보면 위처럼 [default] 프로필 아래에
- 새로운 프로필이 등록되었을 것이다
프로필 스위치
방법 1; AWS_PROFILE 환경 변수 설정
- 환경 변수
AWS_PROFILE
을 원하는 프로필명으로 설정한다
set AWS_PROFILE {profilename}
setx AWS_PROFILE {profilename}
- 이렇게 2가지를 사용할 수 있다
- set은 해당 터미널에서만 적용된다. 해당 터미널이 닫히면 같이 날라간다
- setx는 모든 터미널에서 적용된다
- setx의 경우 모든 터미널을 닫았다가 열어야 적용된다. vscode 전부 닫았다가 켜야 적용된다
1 2 3 4 5
| echo $AWS_PROFILE
echo %AWS_PROFILE%
|
- 방법 1은 가장 자주 쓰는 프로필을 지정할 때 좋을 것 같다
방법 2; 옵션 사용
- 환경변수 세팅 말고,
- aws cli를 사용할 때
--profile
옵션을 줄 수 있다
- aws cli를 사용하다 보면 옵션을 주지 않아도 프로필이 한 개가 아니면 명령을 실행하다가도 어떤 프로필을 사용할지 물어본다
- 근데 실수로 다른 계정에 배포를 할 수 있으니까..
--profile
옵션을 쓰는 게 좋을 것 같다
- sam cli의 경우 deploy 할 때
sam deploy --profile newprofile
이런 식으로 할 수 있겠다
방법 3 (번외?); config file 사용 (aws-sdk)
- cli에 적용되는 것은 아닌데, nodejs app에서 aws sdk 자격 증명하는데 json 파일을 쓸 수 있다
- 로컬에서 개발하고 클라우드 환경으로 올릴 때, 그 환경마다
aws configure
하는 게 귀찮다
config.json1 2 3 4 5
| { "accessKeyId": "xxxxxxxxxxxxxxxxxxxx", "secretAccessKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "region": "ap-northeast-2" }
|
example.js1 2 3
| import AWS from 'aws-sdk'; import path from 'path'; AWS.config.loadFromPath(path.join(__dirname, './config.json'));
|
참고