효율적으로 여러 AWS CLI 프로필을 구성하고 관리하는 방법

AWS CLI 명명된 프로필을 사용하여 여러 AWS 계정 및 환경을 효율적으로 관리하는 방법을 알아보세요. 이 가이드는 다양한 AWS 자격 증명 및 설정 세트를 구성하고, 전환하고, 보호하는 방법에 대한 단계별 지침을 제공합니다. 프로필 관리를 마스터하여 생산성과 보안을 향상시키고 클라우드 워크플로를 최적화하십시오.

35 조회수

AWS CLI 프로필 이해하기

AWS 명령줄 인터페이스(AWS CLI)는 Amazon Web Services와 상호 작용하기 위한 강력한 도구입니다. 여러 AWS 계정이나 계정 내의 다른 역할을 관리하는 사용자의 경우, 효율적인 워크플로우 관리를 위해 프로필을 구성하고 전환하는 것이 매우 중요합니다. 명명된 프로필을 사용하면 서로 다른 자격 증명 세트, 기본 리전 및 출력 형식을 저장할 수 있어 매번 자격 증명을 수동으로 지정할 필요 없이 다양한 AWS 환경 간에 원활하게 전환할 수 있습니다.

이 가이드는 여러 AWS CLI 프로필을 설정, 관리 및 사용하는 방법을 안내합니다. 완료되면 보안과 생산성을 향상시키면서 다른 AWS 계정 전반의 명령줄 상호 작용을 최적화할 수 있습니다.

AWS CLI 구성 파일 설정하기

AWS CLI는 구성 정보를 config 파일에, 자격 증명은 credentials 파일에 저장합니다. 기본적으로 이 파일들은 사용자 홈 디렉터리의 .aws 디렉터리(Linux/macOS에서는 ~/.aws/, Windows에서는 %USERPROFILE%\.aws\)에 위치합니다.

기본 프로필

aws configure를 사용하여 AWS CLI를 처음 구성할 때, [default]라는 이름의 기본 프로필이 생성됩니다. 다른 프로필이 지정되지 않은 경우 이 프로필이 사용됩니다.

# ~/.aws/credentials에 있는 기본 프로필 예시
[default]
aws_access_key_id = YOUR_DEFAULT_ACCESS_KEY
aws_secret_access_key = YOUR_DEFAULT_SECRET_KEY
# ~/.aws/config에 있는 기본 프로필 예시
[default]
region = us-east-1
output = json

명명된 프로필 생성하기

명명된 프로필을 생성하려면 credentialsconfig 파일에 설명적인 이름을 사용하여 새 섹션을 추가하기만 하면 됩니다. 예를 들어, 프로덕션 계정용 프로필과 개발 계정용 프로필을 생성하려면 다음과 같이 합니다.

1. ~/.aws/credentials 편집:

프로필 이름(예: [prod], [dev])을 사용하여 새 섹션을 추가합니다.

# ~/.aws/credentials

[default]
aws_access_key_id = YOUR_DEFAULT_ACCESS_KEY
aws_secret_access_key = YOUR_DEFAULT_SECRET_KEY

[prod]
aws_access_key_id = YOUR_PROD_ACCESS_KEY
aws_secret_access_key = YOUR_PROD_SECRET_KEY

[dev]
aws_access_key_id = YOUR_DEV_ACCESS_KEY
aws_secret_access_key = YOUR_DEV_SECRET_KEY

2. ~/.aws/config 편집:

마찬가지로 config 파일에도 해당 섹션을 추가합니다. 프로필별로 리전 및 출력 형식을 지정할 수 있습니다.

# ~/.aws/config

[default]
region = us-east-1
output = json

[profile prod]
region = us-west-2
output = text

[profile dev]
region = eu-central-1
output = json

중요 참고 사항:
* ~/.aws/config에서 프로필을 정의할 때는 프로필 이름 앞에 반드시 profile을 붙여야 합니다(예: [profile prod]). 이는 프로필 이름만 사용하는 ~/.aws/credentials와 다릅니다(예: [prod]).
* [default] 프로필과 명명된 프로필 모두에 설정이 정의된 경우, 명명된 프로필의 설정이 우선합니다.

프로필 간 전환하기

명명된 프로필을 설정했으면 AWS CLI 명령과 함께 --profile 옵션을 지정하여 사용할 수 있습니다.

예시: 프로덕션 계정의 S3 버킷을 나열하려면 다음과 같이 합니다.

aws s3 ls --profile prod

예시: 개발 계정의 EC2 인스턴스를 설명하려면 다음과 같이 합니다.

aws ec2 describe-instances --profile dev

--profile 옵션을 생략하면 CLI는 [default] 프로필을 사용합니다.

환경에 대한 기본 프로필 설정하기

--profile을 계속 입력하는 것은 번거로울 수 있습니다. 환경 변수를 설정하여 현재 세션에서 AWS CLI가 기본적으로 사용할 프로필을 지정할 수 있습니다.

AWS_PROFILE 환경 변수 사용:

Linux/macOS:

export AWS_PROFILE=prod

# 이제 명령은 기본적으로 'prod' 프로필을 사용합니다
aws s3 ls
aws ec2 describe-instances

설정을 해제하려면:

unset AWS_PROFILE

Windows(명령 프롬프트):

set AWS_PROFILE=prod

# 이제 명령은 기본적으로 'prod' 프로필을 사용합니다
aws s3 ls

설정을 해제하려면:

set AWS_PROFILE=

Windows(PowerShell):

$env:AWS_PROFILE = "prod"

# 이제 명령은 기본적으로 'prod' 프로필을 사용합니다
aws s3 ls

설정을 해제하려면:

Remove-Item Env:\AWS_PROFILE

프로필을 사용한 여러 AWS 계정 관리

이는 명명된 프로필의 일반적인 사용 사례입니다. 각 프로필은 다른 AWS 계정에 대한 IAM 사용자의 액세스 키로 구성될 수 있습니다. 이는 다음의 경우 특히 유용합니다.

  • 개발 대 프로덕션: 보안을 위해 개발 및 프로덕션 환경을 분리하여 유지 관리.
  • 다른 팀/프로젝트: 별도의 팀이나 프로젝트에 대한 리소스 및 권한 격리.
  • 교차 계정 액세스: 관리자 또는 개발자로서 여러 계정의 리소스를 관리해야 하는 경우.

모범 사례: IAM 역할 사용

자격 증명 파일에 각 계정에 대한 장기 실행 액세스 키를 직접 저장하는 대신 IAM 역할을 사용하는 것이 더 안전하고 권장되는 방법입니다. 여기에는 다음이 포함됩니다.

  1. 대상 계정에 IAM 역할 생성: 기본 계정에 있는 IAM 사용자가 가정(assume)할 수 있는 역할 생성.
  2. 로컬 AWS CLI 구성: 특정 프로필을 사용할 때 이 역할을 가정하도록 구성.

~/.aws/config에서 역할 가정 설정을 구성하려면:

# ~/.aws/config

[profile dev-role]
role_arn = arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME
source_profile = default  # 역할을 가정할 권한이 있는 다른 프로필
region = us-east-1
output = json

aws ec2 describe-instances --profile dev-role을 사용하면 CLI는 지정된 IAM 역할을 자동으로 가정하려고 시도하고 얻은 임시 자격 증명을 사용합니다.

고급 구성 옵션

자격 증명과 리전 외에도 프로필은 다른 AWS CLI 설정을 지정할 수 있습니다.

  • output: json, text, table
  • region: 예: us-east-1
  • s3.max_concurrent_requests: S3 작업에 대한 병렬 요청 수.
  • s3.max_queue_size: S3 다중 파트 업로드를 위한 큐 크기.
  • cli_binary_url: CLI 바이너리 다운로드에 대한 사용자 지정 URL 지정(드물게 사용).

특정 프로필에 대한 S3 설정 구성 예시

# ~/.aws/config

[profile s3-optimized]
region = us-east-1
output = json
s3.max_concurrent_requests = 50
s3.max_queue_size = 10000

팁 및 모범 사례

  • 설명적인 프로필 이름 사용: 프로필 이름을 계정 또는 환경을 명확하게 나타내도록 지정합니다(예: prod-admin, dev-web, sandbox-research).
  • 자격 증명 보안 유지: ~/.aws/credentials 파일을 버전 제어 시스템에 커밋하지 마십시오. 가능하다면 교차 계정 액세스에는 IAM 역할을 사용하여 장기 실행 액세스 키 저장을 피하십시오.
  • 액세스 키 정기 검토: 액세스 키를 사용해야 하는 경우 주기적으로 키를 교체하고 이전 키는 비활성화합니다.
  • 환경 변수 활용: 임시 전환 또는 특정 계정을 대상으로 해야 하는 CI/CD 파이프라인의 경우 AWS_PROFILE을 사용합니다.
  • 프로필과 환경 변수 결합: AWS_PROFILE 환경 변수가 설정된 경우, --profile로 지정된 프로필을 덮어씁니다.

결론

AWS CLI 프로필을 숙달하는 것은 Amazon Web Services를 광범위하게 사용하는 모든 사람에게 기본적인 기술입니다. 명명된 프로필을 올바르게 구성하고 활용하면 생산성을 크게 향상시키고, 더 나은 보안 관행을 유지하며, 여러 AWS 환경을 쉽게 관리할 수 있습니다. 개발, 스테이징, 프로덕션 계정을 전환하든 다른 클라이언트를 위한 리소스를 관리하든, 프로필은 효율적인 클라우드 운영에 필요한 유연성과 제어 기능을 제공합니다.