Cloud./aws
[AWS] aws configure
인쥭
2020. 11. 25. 13:36
반응형
1. aws cli
- 터미널에서 CLI를 통해 aws와 상호작용할 수 있다.
- AWS와 상호작용(예시 : EC2 인스턴스 생성)하기 위해서는 :
- GUI : AWS Web Console에 접속하여 아이디 / 비밀번호를 통해 로그인한 후 원하는 서비스로 진입한다.
- CLI : 로컬 터미널에서 aws cli를 통해 관련 된 서비스 명령어를 사용한다.
- CLI의 경우, 원하는 서비스에 해당 사용자가 접근할 수 있는지 확인하는 것은 IAM에서 생성한 Access Key가 된다.
- Access Key를 생성하려면,
- 기등록된 사용자의 경우 :
- AWS Web Console에 로그인한다.
- IAM 메뉴에 진입하여 좌측 사이드바의 '사용자'를 선택한다.
- Access Key를 생성하려는 사용자를 클릭한다.
- 해당 사용자의 상세 메뉴로부터 '보안 자격 증명(또는 Security Credentials)'를 클릭한다.
- 사용자 키 생성(또는 Create access key)를 눌러 새로운 키를 생성한다.
- 이 때, 생성된 Access Key와 Secret Access Key는 각각 ID / PW 역할을 한다고 볼 수 있다.
- 각각의 정보를 .csv 등을 통해 별도로 저장해둔다. (Secret Access Key의 경우, 해당 페이지를 벗어나면 복구 불가)
- 새로운 사용자의 경우 :
- IAM > 사용자에 진입하여 사용자 추가를 클릭한다.
- 액세스 유형(또는 Access type)에서, 프로그래밍 방식 액세스 (또는 Programmatic access)를 체크하여 생성한다.
- 프로그래밍 방식 액세스 : CLI / SDK / API 등과 상호작용하기 위한 유형
- AWS Management Console 액세스 : AWS Web Console과 상호작용하기 위한 유형
- 생성된 Key 정보는 별도로 저장해둔다.
- 기등록된 사용자의 경우 :
2. aws configure 명령어
- 우선 aws cli를 로컬에 설치한다.
- aws cli를 설치한 후 aws cli 명령어를 사용할 수 있으며, 아래는 parameter를 사용하지 않았을 경우는 default 프로필에 대한 설정이다.
[~] aws configure
AWS Access Key ID [None]: [여기에 AWS Access Key를 입력]
AWS Secret Access Key [None]: [여기에 AWS Secret Access Key를 입력]
Default region name [None]: [여기에 Default Region을 입력]
Default output format [None]: [여기에 output format을 입력]
- 입력한 정보는 다음의 의미를 갖는다
- AWS Access Key ID : default 프로필이 사용할 Access Key
- AWS Secret Access Key : default 프로필이 사용할 Secret Access Key
- Default region name : default 프로필이 aws cli 명령어를 사용할 때, 기본적으로 적용할 리전
- Default output format : default 프로필을 통해 aws cli 명령어를 사용할 때, 반환된 정보의 output 형식
- 지원되는 format은 링크를 참조할 것 :
- 입력한 정보는 다음의 위치에 저장된다.
- ~/.aws/configure : 각 프로필 별 리전 및 output format
- ~/.aws/credentials : 각 프로필 별 Access Key / Secret Access Key
- 입력 예시는 다음과 같다.
[~] aws configure
AWS Access Key ID [None]: EXAMPLE_OF_ACCESS_KEY
AWS Secret Access Key [None]: EXAMPLE_OF_SECRET_ACCESS_KEY
Default region name [None]: ap-northeast-2
Default output format [None]: json
[~] aws configure --profile ingnoh
AWS Access Key ID [None]: EXAMPLE_OF_INGNOHS_ACCESS_KEY
AWS Secret Access Key [None]: EXAMPLE_OF_INGNOHS_SECRET_ACCESS_KEY
Default region name [None]: ap-northeast-2
Default output format [None]: json
[~] cat ~/.aws/config
[default]
region = ap-northeast-2
output = json
[profile ingnoh]
region = ap-northeast-2
output = json
[~] cat ~/.aws/credentials
[default]
aws_access_key_id = EXAMPLE_OF_ACCESS_KEY
aws_secret_access_key = EXAMPLE_OF_SECRET_ACCESS_KEY
[ingnoh]
aws_access_key_id = EXAMPLE_OF_INGNOHS_ACCESS_KEY
aws_secret_access_key = EXAMPLE_OF_INGNOHS_SECRET_ACCESS_KEY
3. aws profile 사용
- 터미널에서 aws cli 명령어를 사용할 때, 별도의 parameter를 사용하지 않는다면 기본적으로 default profile이 적용된다.
- 특정 사용자의 profile로 aws cli 명령어를 사용하고 싶다면, --profile [PROFILE_NAME]을 parameter로 전달한다.
- 입력 예시는 다음과 같다.
[~] aws s3 ls
2020-11-25 10:26:43 my-default-bucketname-001
2020-11-25 15:00:16 my-default-bucketname-002
2020-11-25 16:37:34 my-default-bucketname-003
[~] aws s3 --profile ingnoh ls
2020-11-25 16:58:20 my-ingnoh-bucketname-001
2020-11-25 17:55:13 my-ingnoh-bucketname-002
- aws s3 ls의 경우 default 프로필을 사용하며, 두번째 명령어의 경우 --profile을 명시하므로 ingnoh 프로필을 사용하게 된다.
4. aws configure set
- 특정 프로필을 만들어주려면 set 명령어를 사용한다.
- aws configure set 명령어 한 번에 모든 정보를 설정할 수는 없는 듯...
#!/bin/bash
# test.sh 내용
PROFILE=$1
ACCESS=$2
SECRET=$3
aws configure set aws_access_key_id $2 --profile $1
aws configure set aws_secret_access_key $3 --profile $1
aws configure set region ap-northeast-2 --profile $1
- 해당 .sh 사용은 chmod +x test.sh;./test.sh [PROFILE] [ACCESS_KEY] [SECRET_ACCESS_KEY]로 한다.