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를 생성하려면,
    • 기등록된 사용자의 경우 : 
      1. AWS Web Console에 로그인한다.
      2. IAM 메뉴에 진입하여 좌측 사이드바의 '사용자'를 선택한다.
      3. Access Key를 생성하려는 사용자를 클릭한다.
      4. 해당 사용자의 상세 메뉴로부터 '보안 자격 증명(또는 Security Credentials)'를 클릭한다.
      5. 사용자 키 생성(또는 Create access key)를 눌러 새로운 키를 생성한다.
        • 이 때, 생성된 Access Key와 Secret Access Key는 각각 ID / PW 역할을 한다고 볼 수 있다.
        • 각각의 정보를 .csv 등을 통해 별도로 저장해둔다. (Secret Access Key의 경우, 해당 페이지를 벗어나면 복구 불가)
    • 새로운 사용자의 경우 : 
      1. IAM > 사용자에 진입하여 사용자 추가를 클릭한다.
      2. 액세스 유형(또는 Access type)에서, 프로그래밍 방식 액세스 (또는 Programmatic access)를 체크하여 생성한다.
        • 프로그래밍 방식 액세스 : CLI / SDK / API 등과 상호작용하기 위한 유형
        • AWS Management Console 액세스 : AWS Web Console과 상호작용하기 위한 유형
      3. 생성된 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]로 한다.