본문 바로가기
카테고리 없음

[AWS] AWS CLI 계정 관리하기

by coking 2025. 11. 20.
반응형

AWS CLI를 사용하다 보면 개발/운영 환경을 분리하거나, 회사 계정과 개인 계정을 동시에 사용해야 하는 경우가 많습니다.

하지만 자주 바꾸질 않으니 사용할 때마다 헷갈려서 이번 기회에 정리를 해봅니다!

1️⃣ 현재 계정 정보 확인하기

먼저 현재 어떤 AWS 계정으로 인증되어 있는지 확인하는 방법입니다.

🔍 가장 빠른 방법

aws sts get-caller-identity

이 명령어를 실행하면 다음과 같은 정보를 확인할 수 있습니다:

{
    "UserId": "AIDA...",
    "Account": "123456789012",
    "Arn": "arn:aws:iam::123456789012:user/jeon"
}

동작 원리

여기서 중요한 점은 Account 정보가 로컬에 저장되어 있는 게 아니라는 것입니다. get-caller-identity 명령어는 다음과 같이 동작합니다:

  1. 로컬 credentials 읽기: ~/.aws/credentials에 저장된 Access Key와 Secret Key를 읽습니다
  2. AWS API 호출: 이 credentials로 AWS STS(Security Token Service)에 요청을 보냅니다
  3. AWS 응답: AWS가 해당 credentials의 소유자 정보를 반환합니다

즉, "현재 내가 어떤 계정으로 인증되어 있는지" 실시간으로 확인하는 명령어입니다.

📋 다른 확인 방법들

# credentials 파일 직접 확인
cat ~/.aws/credentials

# config 파일 확인
cat ~/.aws/config

# 설정된 프로필 목록 확인
aws configure list-profiles

# 현재 프로필의 설정 확인
aws configure list

# 특정 값만 확인
aws configure get aws_access_key_id
aws configure get region

2️⃣ 여러 계정 설정하기 (프로필)

AWS CLI는 프로필(profile) 기능을 통해 여러 계정을 쉽게 관리할 수 있습니다.

방법 1: 명령어로 프로필 추가하기 (추천)

가장 안전하고 실수가 적은 방법입니다.

# 새 프로필 설정 (대화형)
aws configure --profile company-dev

그러면 순서대로 입력을 요구합니다:

AWS Access Key ID [None]: AKIA...
AWS Secret Access Key [None]: ...
Default region name [None]: us-east-1
Default output format [None]: json

방법 2: 파일 직접 편집하기

더 빠르게 여러 프로필을 한 번에 설정하고 싶다면 파일을 직접 편집할 수 있습니다.

 credentials 파일 편집

nano ~/.aws/credentials
[default]
aws_access_key_id = AKIA...
aws_secret_access_key = ...

[company-dev]
aws_access_key_id = AKIA...
aws_secret_access_key = ...

[company-prod]
aws_access_key_id = AKIA...
aws_secret_access_key = ...

[personal]
aws_access_key_id = AKIA...
aws_secret_access_key = ...

저장: Ctrl + O → Enter → Ctrl + X

 config 파일 편집

nano ~/.aws/config
[default]
region = ap-northeast-2
output = json

[profile company-dev]
region = us-east-1
output = json

[profile company-prod]
region = ap-northeast-2
output = json

[profile personal]
region = ap-northeast-2
output = json

주의: credentials 파일에서는 [profile-name]이지만, config 파일에서는 default를 제외하고 [profile profile-name] 형식입니다.

✔️ 설정 확인

# 프로필 목록 확인
aws configure list-profiles

# 특정 프로필의 설정 확인
aws configure list --profile company-dev

# 특정 값만 확인
aws configure get region --profile company-dev

3️⃣ 프로필 전환하기

프로필을 설정했으면 이제 상황에 맞게 전환하며 사용할 수 있습니다.

🎯 방법 1: 명령어마다 직접 지정 (일회성)

가끔 다른 프로필을 사용할 때 적합합니다.

aws s3 ls --profile company-dev
aws sts get-caller-identity --profile personal
aws ec2 describe-instances --profile company-prod

⭐ 방법 2: 환경변수로 설정 (세션 전체)

가장 많이 사용하는 방법입니다. 터미널에서 직접 실행합니다.

# 프로필 변경
export AWS_PROFILE=company-dev

# 현재 프로필 확인
echo $AWS_PROFILE

# 이제 모든 AWS 명령어가 company-dev 프로필 사용
aws s3 ls
aws sts get-caller-identity
aws ec2 describe-instances

# 다른 프로필로 변경
export AWS_PROFILE=personal

# default 프로필로 돌아가기 (환경변수 제거)
unset AWS_PROFILE

💡 동작 방식

  • export 명령어는 현재 열려있는 터미널 세션에만 적용됩니다
  • 터미널을 닫으면 설정이 사라집니다
  • 새 터미널 창을 열면 다시 설정해야 합니다

💼 실전 사용 예시

# 터미널 1 - 개발 환경 작업
export AWS_PROFILE=company-dev
aws s3 ls
aws ec2 describe-instances

# 터미널 2 - 운영 환경 작업 (다른 터미널 창 열기)
export AWS_PROFILE=company-prod
aws s3 ls

# 터미널 3 - 개인 계정 작업 (또 다른 터미널 창)
export AWS_PROFILE=personal
aws s3 ls

이렇게 터미널 창별로 다른 프로필을 사용할 수 있습니다.

 

방법 3: 쉘 설정 파일에 기본값 설정 (영구 적용)

항상 같은 프로필을 기본으로 사용하고 싶다면 쉘 설정 파일에 추가합니다.

# zsh 사용 시
nano ~/.zshrc

# bash 사용 시
nano ~/.bashrc

파일 끝에 다음 내용 추가:

# AWS 기본 프로필 설정
export AWS_PROFILE=company-dev

저장 후 적용:

source ~/.zshrc  # 또는 source ~/.bashrc

이제 새 터미널을 열 때마다 자동으로 company-dev 프로필이 설정됩니다.

 

마치며

AWS CLI 프로필 기능을 잘 활용하면 여러 AWS 계정을 안전하고 효율적으로 관리할 수 있습니다.

특히 개발/운영 환경 분리, 회사/개인 계정 분리 등의 상황에서 매우 유용합니다.

반응형

댓글