명령 줄에서 여러 AWS 계정을 사용하는 방법은 무엇입니까?


114

Amazon EC2에서 호스팅하는 두 가지 앱이 있습니다 (두 번째 앱은 곧 올라갈 것입니다).

명령 줄 (Mac OS X)에서 두 계정을 모두 사용하면서 EC2 키와 인증서를 별도로 유지하려면 어떻게해야합니까? 각 ec2- * 명령을 실행하기 전에 환경 변수를 변경해야합니까?

별칭을 사용하고이를 환경 설정에 인라인으로 적용 하시겠습니까? 다음과 같은 것 :

별칭 ec2-describe-instances1 = 내보내기 EC2_PRIVATE_KEY = / path; ec2-describe-instances

답변:


17

환경 변수 EC2_PRIVATE_KEY(및 심지어 EC2_CERT) 대신 다음 명령 옵션을 사용할 수 있어야 합니다.

  • -K <private key>
  • -C <certificate>

예를 들어 이러한 별칭을 내부에 넣을 수 있습니다.

alias ec2-describe-instances1 ec2-describe-instances -K /path/to/key.pem

309

aws 명령 줄에서 두 개의 프로필 을 생성하여 두 개의 계정으로 작업 할 수 있습니다 . AWS 액세스 키 ID, AWS 보안 액세스 키 및 원하는 리전을 묻는 메시지가 표시 되므로 준비하십시오.

예 :

$ aws configure --profile account1
$ aws configure --profile account2

그런 다음 명령에 프로필을 전달하여 계정간에 전환 할 수 있습니다.

$ aws dynamodb list-tables --profile account1
$ aws s3 ls --profile account2

노트 :

프로파일 이름을하는 경우가 될 default이 될 것입니다 기본 프로필 즉 때 어떤 --profile명령에 PARAM.


기본 프로필에 대해 자세히 알아보기

account1을 사용하는 데 더 많은 시간을 할애하는 경우 AWS_DEFAULT_PROFILE 환경 변수를 설정하여 기본값으로 설정할 수 있습니다. 기본 환경 변수가 설정되면 각 명령에 프로필을 지정할 필요가 없습니다.

Linux, OS X 예 :

$ export AWS_DEFAULT_PROFILE=account1
$ aws dynamodb list-tables

Windows 예 :

$ set AWS_DEFAULT_PROFILE=account1
$ aws s3 ls

지역을 구성하려면-여기에 지역 "코드"목록이 있습니다.- docs.aws.amazon.com
general

66

여전히 누군가를 도울 수 있습니다. 수동으로 설정할 수 있습니다.

1) 파일에서 설정

~/.aws/credentials

[default]
aws_access_key_id={{aws_access_key_id}}
aws_secret_access_key={{aws_secret_access_key}}

[{{profile_name}}]
aws_access_key_id={{aws_access_key_id}}
aws_secret_access_key={{aws_secret_access_key}}

2) 파일에서 설정

~/.aws/config

[default]
region={{region}}
output={{output:"json||text"}}

[profile {{profile_name}}]
region={{region}}
output={{output:"json||text"}}

3) AWS Command Line으로 테스트하면 명령 및 출력이 JSON이됩니다.

aws ec2 describe-instances --profile {{profile_name}}

Ref

http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-multiple-profiles


2
@iBrianCox- 예를 들어 시작했을 때 사용자가 한 프로필에서 다른 프로필로 설정을 이동하는 방법을 이해할 수 있도록 이 정보를 가장 많이 찬성 응답 ( stackoverflow.com/a/34246053/1199564 ) 으로 병합하는 것이 좋습니다. 기본 프로필 만 사용하고 별도의 전용 프로필을 계속 사용하려고합니다.
mgd

@slm 위의 내 댓글을 읽어주세요 (댓글 당 하나의 언급 만 할 수있었습니다)
mgd

제안을 주셔서 감사합니다,하지만 더 @mgd - 때문에 처음에는이 대답은 아니라고 내 - 그리고 두 번째이 다른 접근 방식을 설정하는 방법입니다
BG BRUNO

@mgd Q "댓글 당 하나의 멘션"이 의미하는 바를 자세히 설명 할 수 있습니까?
BG BRUNO

내가 의미하는 것은 내 첫 번째 댓글에서 iBrianCox와 slm (각각 다른 답변의 저자 및 편집자)을 모두 언급하려고 했지만 댓글 당 한 번만 언급 할 수 있으므로 두 가지를 모두 언급하기 위해 다른 댓글을 추가해야했습니다. . 답변이 다른 접근 방식이라는 것은 맞지만, 특히 프로필간에 설정을 복사하려는 경우 정보가 저장되는 위치를 아는 것이 매우 유용합니다.
mgd


0

사용자 입력에 따라 각 계정에 해당하는 환경 변수 값을 설정하는 셸 스크립트를 작성할 수 있습니다. 이렇게하면 별칭을 만들 필요가 없으며 ELB 도구, Auto Scaling 명령 줄 도구와 같은 도구도 여러 계정에서 작동합니다.


0

AWS 계정간에 전환 할 수 있는 간단한 도구 aaws를 만들었습니다 .

AWS_DEFAULT_PROFILE셸에서 설정하면 작동 합니다. ~/.aws/credentials파일에 몇 가지 항목이 있는지 확인하면 여러 계정간에 쉽게 전환됩니다.

/tmp
$ aws s3 ls
Unable to locate credentials. You can configure credentials by running "aws configure".
/tmp
$ aaws luk3

[luk3] 🔐 /tmp
$ aws s3 ls
2013-11-05 21:40:04 luk3thomas.com
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.