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

환경 변수를 사용하여 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

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

현재 세션에만 설정하려면

환경 변수를 설정하는 데 set을 사용하면 사용되는 값이 변경되어 현재 명령 프롬프트 세션이 종료될 때까지 또는 변수를 다른 값으로 설정할 때까지 유지됩니다.

C:\> set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE C:\> set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY C:\> set AWS_DEFAULT_REGION=us-west-2
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에 대한 자동 프롬프트를 활성화합니다. 두 가지 설정을 사용할 수 있습니다.

  • 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_file_encoding 환경 변수를 사용합니다. 예를 들어, 기본 인코딩 CP1252와 함께 Windows를 사용하는 경우 aws_cli_file_encoding=UTF-8을 설정하면 UTF-8를 사용하여 텍스트 파일을 열도록 CLI가 설정됩니다.

AWS_CONFIG_FILE

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

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

AWS_DATA_PATH

AWS CLI 데이터를 로드할 때 기본 제공 검색 경로인 ~/.aws/models 외부에서 확인할 추가 디렉터리의 목록입니다. 이 환경 변수를 설정하면 기본 제공 검색 경로로 넘어가기 전에 먼저 확인할 추가 디렉터리가 표시됩니다. 여러 항목은 os.pathsep 문자로 구분해야 합니다. 이 문자는 Linux 또는 macOS의 경우 :이고, Windows의 경우 ;입니다.

AWS_DEFAULT_OUTPUT

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

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

AWS_DEFAULT_REGION

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

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

AWS_EC2_METADATA_DISABLED

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

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

AWS_MAX_ATTEMPTS

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

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

AWS_METADATA_SERVICE_NUM_ATTEMPTS

IAM 역할로 구성된 Amazon EC2 인스턴스에서 자격 증명을 검색할 때 AWS CLI는 인스턴스 메타데이터 서비스에서 자격 증명의 검색을 한 번 시도한 후 중지합니다. Amazon EC2 인스턴스에서 명령이 실행되는 경우 AWS CLI가 검색을 포기하기 전에 여러 번 재시도하도록 이 값을 늘릴 수 있습니다.

AWS_METADATA_SERVICE_TIMEOUT

인스턴스 메타데이터 서비스에 대한 연결 시간이 초과되기까지 경과하는 시간(초)입니다. IAM 역할로 구성된 Amazon EC2 인스턴스에서 자격 증명을 검색하려는 경우 기본적으로 1초 후에 인스턴스 메타데이터 서비스에 대한 연결 시간이 초과됩니다. IAM 역할이 구성된 Amazon EC2 인스턴스에서 실행 중인 경우 필요에 따라 이 값을 늘릴 수 있습니다.

AWS_PAGER

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

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

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

AWS_PROFILE

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

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

AWS_REGION

요청을 전송할 AWS 리전을 지정하는 AWS SDK 호환 환경 변수입니다.

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

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_WEB_IDENTITY_TOKEN_FILE

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

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

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

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

참고

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