환경 변수를 사용하여 AWS CLI 구성 - AWS Command Line Interface

Python 2.7, 3.4 및 3.5는 AWS CLI 버전 1에서 사용 중단되었습니다. 자세한 내용은 AWS CLI 버전 정보의 AWS CLI 버전 1 섹션을 참조하세요.

환경 변수를 사용하여 AWS CLI 구성

환경 변수는 구성 옵션과 자격 증명을 지정하는 다른 방법을 제공하며, 스크립팅을 수행하거나 명명된 프로필을 임시로 기본값으로 설정할 때 유용할 수 있습니다.

참고

환경 변수를 사용하여 AWS Single Sign-On(AWS SSO) 인증을 지정할 수 없습니다. 대신 공유 구성 파일 .aws/config에서 명명된 프로파일을 사용해야 합니다. 자세한 내용은 AWS Single Sign-On를 사용하도록 AWS CLI 구성 단원을 참조하세요.

옵션의 우선 순위

  • 이 주제에 설명된 환경 변수 중 하나를 사용하여 옵션을 지정할 경우, 구성 파일의 프로파일에서 로드된 값을 재정의합니다.

  • AWS CLI 명령줄에서 파라미터를 사용하여 옵션을 지정할 경우, 구성 파일에서 해당하는 환경 변수 또는 프로파일의 값을 재정의합니다.

우선 순위 및 AWS CLI에서 사용할 자격 증명을 결정하는 방법에 대한 자세한 내용은 구성 설정 및 우선 순위 단원을 참조하세요.

환경 변수를 설정하는 방법

다음은 기본 사용자에 대한 환경 변수를 구성할 수 있는 방법을 보여주는 예입니다.

Linux or macOS
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE $ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY $ export AWS_DEFAULT_REGION=us-west-2

환경 변수를 설정하면 사용되는 값이 변경되어 셸 세션이 종료될 때까지 또는 변수를 다른 값으로 설정할 때까지 유지됩니다. 셸의 스타트업 스크립트에서 변수를 설정하면 해당 변수가 향후 세션에서도 영구적으로 적용되도록 할 수 있습니다.

Windows Command Prompt
C:\> setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLE C:\> setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY C:\> setx AWS_DEFAULT_REGION us-west-2

환경 변수를 설정하는 데 set을 사용하면 사용되는 값이 변경되어 현재 명령 프롬프트 세션이 종료될 때까지 또는 변수를 다른 값으로 설정할 때까지 유지됩니다. 환경 변수를 설정하는 데 setx를 사용하면 현재 명령 프롬프트 세션과 명령 실행 후 생성한 모든 명령 프롬프트 세션에서 사용되는 값이 변경됩니다. 명령을 실행하는 시점에 이미 실행 중인 다른 명령 셸에는 영향을 주지 않습니다.

PowerShell
PS C:\> $Env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" PS C:\> $Env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" PS C:\> $Env:AWS_DEFAULT_REGION="us-west-2"

이전 예에 표시된 대로 PowerShell 프롬프트에서 환경 변수를 설정하면 현재 세션 기간에만 해당 값이 저장됩니다. 모든 PowerShell 및 명령 프롬프트 세션에서 환경 변수 설정이 영구적으로 적용되도록 하려면 제어판에서 시스템 애플리케이션을 사용하여 해당 설정을 저장합니다. 또는 PowerShell 프로파일에 변수를 추가하여 향후 모든 PowerShell 세션에 적용되도록 변수를 설정할 수 있습니다. 환경 변수 저장 또는 세션에 영구적 적용에 대한 자세한 내용은 PowerShell 설명서를 참조하세요.

AWS CLI 지원되는 환경 변수

AWS CLI는 다음과 같은 환경 변수를 지원합니다.

AWS_ACCESS_KEY_ID

IAM 사용자 또는 역할과 연결된 AWS 액세스 키를 지정합니다.

정의된 경우 이 환경 변수는 aws_access_key_id 프로파일 설정 값을 재정의합니다. 명령줄 옵션으로 액세스 키 ID를 지정할 수는 없습니다.

AWS_CA_BUNDLE

HTTPS 인증서 확인에 사용할 인증서 번들의 경로를 지정합니다.

정의된 경우 이 환경 변수는 ca_bundle 프로파일 설정 값을 재정의합니다. --ca-bundle 명령줄 파라미터를 사용하여 이 환경 변수를 재정의할 수 있습니다.

AWS_CLI_AUTO_PROMPT
이 기능은 AWS CLI 버전 2에서만 사용할 수 있습니다.

다음 기능은 AWS CLI 버전 2를 사용하는 경우에만 사용할 수 있습니다. AWS CLI 버전 1을 실행하는 경우에는 사용할 수 없습니다. 버전 2 설치 방법에 대한 자세한 내용은 AWS CLI 버전 2 설치, 업데이트 및 제거 단원을 참조하세요.

AWS CLI 버전 2에 대한 자동 프롬프트를 활성화합니다. 두 가지 설정을 사용할 수 있습니다.

  • onaws 명령을 실행할 때마다 전체 자동 프롬프트 모드를 사용합니다. 여기에는 전체 명령 또는 불완전한 명령 다음에 Enter 키를 누르는 것이 포함됩니다.

    aws_cli_auto_prompt=on
  • on-partial은 부분 자동 프롬프트 모드를 사용합니다. 명령이 불완전하거나 클라이언트 측 유효성 검사 오류로 인해 실행할 수 없는 경우 자동 프롬프트가 사용됩니다. 이 모드는 기존 스크립트 또는 Runbook이 있거나, 모든 명령에 대한 프롬프트가 아니라 익숙하지 않은 명령에 대해서만 자동 프롬프트를 사용하려는 경우 특히 유용합니다.

    aws_cli_auto_prompt=on-partial

정의된 경우 이 환경 변수는 cli_auto_prompt 프로파일 설정 값을 재정의합니다. --cli-auto-prompt--no-cli-auto-prompt 명령줄 파라미터를 사용하여 이 환경 변수를 재정의할 수 있습니다.

AWS CLI 버전 2 자동 프롬프트 기능에 대한 자세한 내용은 명령에 AWS CLI 프롬프트 사용 섹션을 참조하세요.

AWS_CLI_FILE_ENCODING

AWS CLI 버전 2(한정) 텍스트 파일에 사용되는 인코딩을 지정합니다. 기본적으로 인코딩은 로캘과 일치합니다. 로캘과 다른 인코딩을 설정하려면 aws_cli_file_encoding 환경 변수를 사용합니다. 예를 들어, 기본 인코딩 CP1252와 함께 Windows를 사용하는 경우 aws_cli_file_encoding=UTF-8을 설정하면 UTF-8를 사용하여 텍스트 파일을 열도록 CLI가 설정됩니다.

AWS_CONFIG_FILE

AWS CLI에서 구성 프로파일을 저장하는 데 사용하는 파일의 위치를 지정합니다. 기본 경로는 ~/.aws/config입니다.

명명된 프로파일 설정에서 또는 명령줄 파라미터를 사용하여 이 값을 지정할 수 없습니다.

AWS_DEFAULT_OUTPUT

사용할 출력 형식을 지정합니다.

정의된 경우 이 환경 변수는 output 프로파일 설정 값을 재정의합니다. --output 명령줄 파라미터를 사용하여 이 환경 변수를 재정의할 수 있습니다.

AWS_DEFAULT_REGION

요청을 전송할 AWS 리전을 지정합니다.

정의된 경우 이 환경 변수는 region 프로파일 설정 값을 재정의합니다. --region 명령줄 파라미터를 사용하여 이 환경 변수를 재정의할 수 있습니다.

AWS_EC2_METADATA_DISABLED

Amazon EC2 인스턴스 메타데이터 서비스(IMDS)사용을 비활성화합니다.

true로 설정하면 IMDS에서 사용자 자격 증명 또는 구성(예: 리전)을 요청하지 않습니다.

AWS_MAX_ATTEMPTS

AWS CLI 재시도 핸들러에서 사용하는 최대 재시도 횟수 값을 지정합니다. 여기서 초기 호출은 사용자가 제공한 값에 포함됩니다. 재시도에 대한 자세한 내용은 AWS CLI 재시도을 참조하세요.

정의된 경우 이 환경 변수는 프로파일 설정 max_attempts 값을 재정의합니다.

AWS_PAGER

출력에 사용할 페이저 프로그램을 지정합니다. 기본적으로 AWS CLI 버전 2는 운영 체제의 기본 페이저 프로그램을 통해 모든 출력을 반환합니다.

외부 페이징 프로그램 사용을 모두 비활성화하려면 변수를 빈 문자열로 설정합니다.

정의된 경우 이 환경 변수는 cli_pager 프로파일 설정 값을 재정의합니다.

AWS_PROFILE

사용할 자격 증명과 옵션이 있는 AWS CLI 프로파일의 이름을 지정합니다. 이 이름은 credentials 또는 config 파일에 저장된 프로필 이름이거나 기본 프로필을 사용할 값 default일 수 있습니다.

정의된 경우 이 환경 변수는 구성 파일에서 [default]라는 프로파일을 사용할 때의 동작을 재정의합니다. --profile 명령줄 파라미터를 사용하여 이 환경 변수를 재정의할 수 있습니다.

AWS_RETRY_MODE

AWS CLI에 사용될 재시도 모드를 지정합니다. 레거시(기본값), 표준 및 적응형, 이렇게 3가지 재시도 모드를 사용할 수 있습니다. 재시도에 대한 자세한 내용은 AWS CLI 재시도을 참조하세요.

정의된 경우 이 환경 변수는 프로파일 설정 retry_mode 값을 재정의합니다.

AWS_ROLE_ARN

AWS CLI 명령을 실행하는 데 사용할 IAM 역할(웹 자격 증명 공급자 포함)의 Amazon 리소스 이름(ARN)을 지정합니다.

AWS_WEB_IDENTITY_TOKEN_FILEAWS_ROLE_SESSION_NAME 환경 변수와 함께 사용됩니다.

정의된 경우 이 환경 변수는 프로파일 설정 role_arn 값을 재정의합니다. 명령줄 파라미터로 역할 세션 이름을 지정할 수 없습니다.

참고

이러한 환경 변수는 웹 자격 증명 공급자를 사용한 역할 수임에만 적용되며 일반적인 역할 수임 공급자 구성에는 적용되지 않습니다.

웹 자격 증명 사용에 대한 자세한 내용은 웹 자격 증명을 사용한 역할 수임 단원을 참조하세요.

AWS_ROLE_SESSION_NAME

역할 세션에 연결할 이름을 지정합니다. 이 값은 RoleSessionName가 AWS CLI 작업을 호출할 때 AssumeRole 파라미터에 제공되고 수임한 역할 사용자 ARN의 일부가 됩니다. arn:aws:sts::123456789012:assumed-role/role_name/role_session_name. 이는 선택 가능한 파라미터입니다. 이 값을 제공하지 않은 경우 세션 이름이 자동으로 생성됩니다. 이 이름은 이 세션과 연결된 항목에 대한 AWS CloudTrail 로그에 나타납니다.

정의된 경우 이 환경 변수는 프로파일 설정 role_session_name 값을 재정의합니다.

AWS_ROLE_ARNAWS_WEB_IDENTITY_TOKEN_FILE 환경 변수와 함께 사용됩니다.

웹 자격 증명 사용에 대한 자세한 내용은 웹 자격 증명을 사용한 역할 수임 단원을 참조하세요.

참고

이러한 환경 변수는 웹 자격 증명 공급자를 사용한 역할 수임에만 적용되며 일반적인 역할 수임 공급자 구성에는 적용되지 않습니다.

AWS_SECRET_ACCESS_KEY

액세스 키와 연결된 보안 키를 지정합니다. 이는 액세스 키에 대한 기본적인 "암호"입니다.

정의된 경우 이 환경 변수는 aws_secret_access_key 프로파일 설정 값을 재정의합니다. 명령줄 옵션으로 보안 액세스 키 ID를 지정할 수는 없습니다.

AWS_SESSION_TOKEN

AWS STS 작업에서 직접 검색한 임시 보안 자격 증명을 사용하는 경우 필요한 세션 토큰 값을 지정합니다. 자세한 내용은 AWS CLI 명령 참조에서 assume-role 명령의 출력 섹션을 참조하세요.

정의된 경우 이 환경 변수는 aws_session_token 프로파일 설정 값을 재정의합니다.

AWS_SHARED_CREDENTIALS_FILE

AWS CLI에서 액세스 키를 저장하는 데 사용하는 파일의 위치를 지정합니다. 기본 경로는 ~/.aws/credentials입니다.

명명된 프로파일 설정에서 또는 명령줄 파라미터를 사용하여 이 값을 지정할 수 없습니다.

AWS_STS_REGIONAL_ENDPOINTS

AWS CLI에서 AWS 클라이언트가 AWS CLI(AWS Security Token Service)와 통신하는 데 사용하는 AWS STS 서비스 엔드포인트를 결정하는 방법을 지정합니다.

  • AWS CLI 버전 1의 기본값은 legacy입니다.

  • AWS CLI 버전 2의 기본값은 regional입니다.

다음 두 값 중 하나를 지정할 수 있습니다.

  • legacy – 글로벌 STS 엔드포인트와 sts.amazonaws.com를 다음 AWS 리전에 사용합니다.ap-northeast-1, ap-south-1, ap-southeast-1, ap-southeast-2, aws-global, ca-central-1, eu-central-1, eu-north-1, eu-west-1, eu-west-2, eu-west-3, sa-east-1, us-east-1, us-east-2, us-west-1, us-west-2. 다른 모든 리전은 해당 리전 엔드포인트를 자동으로 사용합니다.

  • regional – AWS CLI에서는 현재 구성된 리전에 항상 AWS STS 엔드포인트를 사용합니다. 예를 들어 클라이언트가 us-west-2를 사용하도록 구성된 경우, AWS STS에 대한 모든 호출은 전역 엔드포인트 sts.us-west-2.amazonaws.com 대신 리전 엔드포인트 sts.amazonaws.com에 대해 이루어집니다. 이 설정이 활성화된 상태에서 전역 엔드포인트에 요청을 보내려면 Region을 aws-global로 설정하면 됩니다.

AWS_WEB_IDENTITY_TOKEN_FILE

자격 증명 공급자가 제공하는 OAuth 2.0 액세스 토큰 또는 OpenID Connect ID 토큰을 포함하는 파일의 경로를 지정합니다. AWS CLI에서 이 파일의 내용을 로드하고 해당 파일을 WebIdentityToken 작업에 대한 AssumeRoleWithWebIdentity 인수로 전달합니다.

AWS_ROLE_ARNAWS_ROLE_SESSION_NAME 환경 변수와 함께 사용됩니다.

정의된 경우 이 환경 변수는 web_identity_token_file 프로파일 설정 값을 재정의합니다.

웹 자격 증명 사용에 대한 자세한 내용은 웹 자격 증명을 사용한 역할 수임 단원을 참조하세요.

참고

이러한 환경 변수는 웹 자격 증명 공급자를 사용한 역할 수임에만 적용되며 일반적인 역할 수임 공급자 구성에는 적용되지 않습니다.