구성 및 자격 증명 파일 설정
AWS CLI에서 유지되는 파일에 자주 사용되는 구성 설정과 자격 증명을 저장할 수 있습니다.
파일은 profiles로 나뉩니다. 기본적으로 AWS CLI는 default라는 프로파일에서 확인된 설정을 사용합니다. 대체 설정을 사용하려면 추가 프로파일을 생성해 참조할 수 있습니다. 명명된 프로파일에 대한 자세한 내용은 AWS CLI에 사용되는 명명된 프로파일 섹션을 참조하세요.
지원되는 환경 변수 중 하나를 설정하거나 명령줄 파라미터를 사용하여 개별 설정을 재정의할 수 있습니다. 구성 설정 우선 순위에 대한 자세한 내용은 구성 설정 및 우선 순위 섹션을 참조하세요.
주제
- 구성 설정이 저장되는 장소
- 구성 설정 지정 및 보기
- 지원되는 config 파일 설정
구성 설정이 저장되는 장소
AWS CLI는 aws configure를 사용하여 지정하는 민감한 자격 증명 정보를 홈 디렉터리의 credentials라는 폴더에 있는 .aws라는 로컬 파일에 저장합니다. aws configure를 사용하여 지정하는 덜 민감한 구성 옵션은 config라는 로컬 파일에 저장되며, 홈 디렉터리의 .aws 폴더에도 저장됩니다.
AWS CLI는 config 파일에서 자격 증명을 읽을 수 있으므로 모든 프로파일 설정을 단일 파일에 보관할 수 있습니다. 동일한 이름을 공유하는 프로파일에 대한 자격 증명이 두 파일 모두에 있는 경우 자격 증명 파일의 키가 우선합니다.
이들 파일은 다양한 언어의 소프트웨어 개발 키트(SDK)에서도 사용됩니다. SDK 중 하나를 사용하는 경우 AWS CLI는 또한 자격 증명을 자체 파일에 저장해야 하는지 여부를 확인합니다.
홈 디렉터리 위치는 운영 체제에 따라 달라지지만 Windows에서는 %UserProfile% 환경 변수를, Unix 기반 시스템에서는 $HOME 또는 ~(물결표) 환경 변수를 사용하여 참조됩니다. AWS_CONFIG_FILE 및 AWS_SHARED_CREDENTIALS_FILE 환경 변수를 다른 로컬 경로로 설정하여 파일에 대해 기본이 아닌 위치를 지정할 수 있습니다. 세부 정보는 환경 변수를 사용하여 AWS CLI 구성 단원을 참조하세요.
예를 들어 aws configure로 구성된 기본 프로파일에 대해 AWS CLI에서 생성된 파일은 다음과 유사합니다.
~/.aws/credentials
[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY~/.aws/config
[default] region=us-west-2 output=json여러 개의 명명된 프로파일이 있는 파일의 예는 AWS CLI에 사용되는 명명된 프로파일 섹션을 참조하세요.
AWS Identity and Access Management(IAM) 역할을 지정하는 공유 프로파일을 사용할 때 AWS CLI에서 AWS STS AssumeRole 작업을 호출하여 임시 자격 증명을 검색합니다. 이러한 자격 증명은 (~/.aws/cli/cache)에 저장됩니다. 후속 AWS CLI 명령은 캐시된 임시 자격 증명이 만료될 때까지 사용하고 해당 시점에서 AWS CLI가 자격 증명을 자동으로 새로 고칩니다.
구성 설정 지정 및 보기
파일에서 구성 설정을 보고 지정하는 몇 가지 방법이 있습니다.
Credentials 및 config 파일
텍스트 편집기에서 config 및 credentials 파일을 직접 편집하여 설정을 보고 편집합니다. 자세한 내용은 구성 설정이 저장되는 장소 섹션을 참조하세요.
설정을 제거하려면 config 및 credentials 파일에서 해당 설정을 삭제합니다.
aws configure보안 인증 정보, 리전 및 출력 형식을 빠르게 설정하고 보려면 이 명령을 실행합니다. 다음 예제는 샘플 값을 보여줍니다.
$ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json자세한 내용은 aws configure를 통한 빠른 구성 섹션을 참조하세요.
aws configure setaws configure set를 사용하여 자격 증명 또는 구성 설정을 지정할 수 있습니다. --profile 설정으로 보거나 수정하려는 프로파일을 지정합니다.
예를 들어 다음 명령은 region프로파일에서 integ을 설정합니다.
$ aws configure set region us-west-2 --profile integ설정을 제거하려면 빈 문자열을 값으로 사용하거나 텍스트 편집기에서 config 및 credentials 파일의 설정을 수동으로 삭제합니다.
$ aws configure set cli_pager "" --profile integaws configure getaws configure get을 사용하여 설정한 자격 증명 또는 구성 설정을 검색할 수 있습니다. --profile 설정으로 보거나 수정하려는 프로파일을 지정합니다.
예를 들어 다음 명령은 region프로파일에서 integ 설정을 검색합니다.
$ aws configure get region --profile integ us-west-2출력이 비어 있으면 설정이 명시적으로 지정되지 않고 기본값을 사용합니다.
aws configure importCSV 웹 콘솔에서 생성된 AWS 자격 증명을 가져옵니다. IAM 사용자 이름과 일치하는 프로파일 이름을 이용해 CSV 파일을 가져옵니다. CSV 파일에는 다음 헤더가 포함되어야 합니다.
사용자 이름
액세스 키 ID
보안 액세스 키
초기 키 페어 생성 중에 .csv 파일 다운로드(Download .csv file) 대화 상자를 닫으면 대화 상자를 닫은 후 비밀 액세스 키에 액세스할 수 없습니다. .csv 파일이 있어야 하는 경우 필요한 헤더와 저장된 키 페어 정보를 사용하여 파일을 직접 만들어야 합니다. 키 페어 정보에 액세스할 수 없는 경우 새 키 페어를 생성해야 합니다.
$ aws configure import --csv file://credentials.csv키 페어에 대한 자세한 내용은 액세스 키 ID 및 보안 액세스 키 섹션을 참조하세요.
aws configure list모든 구성 데이터를 나열하려면 aws configure list 명령을 사용합니다. 이 명령은 구성한 모든 설정의 AWS CLI 이름, 해당 값 및 구성을 검색한 위치를 표시합니다.
$ aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************ABCD shared-credentials-file secret_key ****************ABCD shared-credentials-file region us-west-2 env AWS_DEFAULT_REGION aws configure list-profiles모든 프로파일 이름을 나열하려면 aws configure list-profiles 명령을 사용합니다.
$ aws configure list-profiles default test지원되는 config 파일 설정
주제
- Global settings(글로벌 설정)
- S3 사용자 지정 명령 설정
config 파일에서는 다음 설정이 지원됩니다. 같은 이름의 환경 변수나 같은 이름의 명령줄 옵션으로 재정의되지 않는 한, 지정된(또는 기본 설정된) 프로파일에 나열된 값들이 사용됩니다. 어떤 순서 설정이 우선적으로 사용되는지에 대한 자세한 내용은 구성 설정 및 우선 순위 섹션을 참조하세요.
Global settings(글로벌 설정)
aws_access_key_id
명령 요청을 인증하기 위한 자격 증명의 일부로 사용되는 AWS 액세스 키를 지정합니다. 이 키는 config 파일에 저장될 수도 있지만, credentials 파일에 저장하는 것이 좋습니다.
AWS_ACCESS_KEY_ID 환경 변수로 재정의할 수도 있습니다. 명령줄 옵션으로 액세스 키 ID를 지정할 수는 없습니다.
aws_access_key_id = AKIAIOSFODNN7EXAMPLE키 페어에 대한 자세한 내용은 액세스 키 ID 및 보안 액세스 키 섹션을 참조하세요.
aws_secret_access_key명령 요청을 인증하기 위한 자격 증명의 일부로 사용되는 AWS 비밀 키를 지정합니다. 이 키는 config 파일에 저장될 수도 있지만, credentials 파일에 저장하는 것이 좋습니다.
AWS_SECRET_ACCESS_KEY 환경 변수로 재정의할 수도 있습니다. 명령줄 옵션으로 보안 액세스 키를 지정할 수는 없습니다.
키 페어에 대한 자세한 내용은 액세스 키 ID 및 보안 액세스 키 섹션을 참조하세요.
aws_session_tokenAWS 세션 토큰을 지정합니다. 세션 토큰은 수동으로 임시 보안 자격 증명을 지정하는 경우에만 필요합니다. 이 키는 config 파일에 저장될 수도 있지만, credentials 파일에 저장하는 것이 좋습니다.
AWS_SESSION_TOKEN 환경 변수로 재정의할 수도 있습니다. 명령줄 옵션으로 세션 토큰을 지정할 수는 없습니다.
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgkca_bundleSSL 인증서를 확인하는 데 사용되는 CA 인증서 번들(확장자가 .pem인 파일)을 지정합니다.
AWS_CA_BUNDLE 환경 변수나 --ca-bundle 명령줄 옵션으로 재정의할 수도 있습니다.
ca_bundle = dev/apps/ca-certs/cabundle-2019mar05.pemcli_auto_promptAWS CLI 버전 2에 대한 자동 프롬프트를 활성화합니다. 두 가지 설정을 사용할 수 있습니다.
on은 aws 명령을 실행할 때마다 전체 자동 프롬프트 모드를 사용합니다. 여기에는 전체 명령 또는 불완전한 명령 다음에 Enter 키를 누르는 것이 포함됩니다.
cli_auto_prompt = onon-partial은 부분 자동 프롬프트 모드를 사용합니다. 명령이 불완전하거나 클라이언트 측 유효성 검사 오류로 인해 실행할 수 없는 경우 자동 프롬프트가 사용됩니다. 이 모드는 기존 스크립트 또는 Runbook이 있거나, 모든 명령에 대한 프롬프트가 아니라 익숙하지 않은 명령에 대해서만 자동 프롬프트를 사용하려는 경우 특히 유용합니다.
cli_auto_prompt = on-partial
aws_cli_auto_prompt 환경 변수 또는 --cli-auto-prompt 및 --no-cli-auto-prompt 명령줄 파라미터를 사용하여 이 설정을 재정의할 수 있습니다.
AWS CLI 버전 2 자동 프롬프트 기능에 대한 자세한 내용은 명령에 AWS CLI 프롬프트 사용 섹션을 참조하세요.
cli_binary_formatAWS CLI 버전 2에서 이진 입력 파라미터를 해석하는 방법을 지정합니다. 다음 값 중 하나일 수 있습니다.
base64 - 기본값입니다. BLOB(이진 대용량 객체)로 입력되는 입력 파라미터는 base64로 인코딩된 문자열을 받습니다. 실제 이진 콘텐츠를 전달하려면 해당 콘텐츠를 파일에 넣고 fileb:// 접두사와 함께 파일 경로와 이름을 파라미터 값으로 입력합니다. 파일에 포함된 base64 인코딩 텍스트를 전달하려면 file:// 접두사와 함께 파일 경로와 이름을 파라미터 값으로 입력합니다.
raw-in-base64-out – 이진 값을 리터럴로 전달해야 하는 AWS CLI 버전 1 동작과의 이전 버전 호환성을 제공합니다.
이 항목은 동등한 수준의 환경 변수를 갖지 않습니다. --cli-binary-format raw-in-base64-out 파라미터를 사용하여 단일 명령에서 값을 지정할 수 있습니다.
cli_binary_format = raw-in-base64-outfileb:// 접두사 표기법을 사용하여 파일의 이진 값을 참조하는 경우 AWS CLI에서 항상 파일에 원시 이진 콘텐츠가 포함될 것으로 예상하며 값을 변환하지 않습니다.
file:// 접두사 표기법을 사용하여 파일의 이진 값을 참조하는 경우 AWS CLI에서 현재 cli_binary_format 설정에 따라 파일을 처리합니다. 해당 설정의 값이 base64(명시적으로 설정되지 않은 경우 기본값)이면 AWS CLI에서 파일에 base64로 인코딩된 텍스트가 포함될 것으로 예상합니다. 이 설정의 값이 raw-in-base64-out이면 AWS CLI에서 파일에 원시 이진 콘텐츠가 포함될 것으로 예상합니다.
cli_history기본 설정은 "Disable"입니다. 이 설정은 AWS CLI에 대한 명령 기록을 활성화합니다. 이 설정을 활성화하면 AWS CLI에서 aws 명령 내역을 기록합니다.
cli_history = enabled기록을 나열하려면 aws history list 명령을 사용하고 세부 정보를 보려면 aws history show 명령에 결과 command_ids를 사용할 수 있습니다. 자세한 내용은 AWS CLI 참조 가이드의 aws history 섹션을 참조하세요.
cli_pager출력에 사용할 페이저 프로그램을 지정합니다. 기본적으로 AWS CLI 버전 2는 운영 체제의 기본 페이저 프로그램을 통해 모든 출력을 반환합니다.
AWS_PAGER 환경 변수로 재정의할 수도 있습니다.
cli_pager=less외부 페이징 프로그램 사용을 모두 비활성화하려면, 다음 예제와 같이 변수를 빈 문자열로 설정합니다.
cli_pager= cli_timestamp_format출력에 포함된 타임스탬프 값의 형식을 지정합니다. 다른 값 중 하나를 지정할 수 있습니다.
iso8601 – AWS CLI 버전 2의 기본값입니다. 지정된 경우 AWS CLI는 ISO 8601에 따라 모든 타임스탬프의 형식을 변경합니다.
ISO 8601 형식의 타임스탬프는 다음 예제와 같습니다. 첫 번째 예에서는 시간 뒤에 Z를 포함하여 UTC(협정 세계시)로 시간을 보여 줍니다. 날짜와 시간은 T로 구분됩니다.
2019-10-31T22:21:41Z다른 시간대를 지정하려면 Z 대신 + 또는 -를 지정하고 원하는 시간대가 UTC를 기준으로 앞이나 뒤로 몇 시간 차이가 있는지를 두 자리 값으로 지정합니다. 다음 예제에서는 이전 예제와 동일한 시간을 보여 주지만 UTC보다 8시간 뒤인 태평양 표준시로 조정했습니다.
2019-10-31T14:21:41-08wire – AWS CLI 버전 1의 기본값입니다. 지정된 경우 AWS CLI는 HTTP 쿼리 응답에서 수신된 것과 똑같이 모든 타임스탬프 값을 표시합니다.
이 항목은 동등한 수준의 환경 변수나 명령줄 옵션을 가지고 있지 않습니다.
cli_timestamp_format = iso8601credential_process이 명령에서 사용할 인증 자격 증명을 생성 또는 수신하기 위해 AWS CLI가 실행하는 외부 명령을 지정합니다. 이 명령은 특정 형식으로 자격 증명을 반환해야 합니다. 이 설정을 사용하는 방법에 대한 자세한 내용은 외부 프로세스를 통해 자격 증명 소싱 단원을 참조하십시오.
이 항목은 동등한 수준의 환경 변수나 명령줄 옵션을 가지고 있지 않습니다.
credential_process = /opt/bin/awscreds-retriever --username susancredential_sourceAWS CLI에서 role_arn 파라미터로 지정된 역할을 수임하는 데 사용하는 자격 증명을 찾을 수 있는 위치를 지정하기 위해 Amazon EC2 인스턴스 또는 컨테이너 내에서 사용됩니다. source_profile과 credential_source 모두를 동일한 프로파일에서 지정할 수 없습니다.
이 파라미터는 다음 세 가지 값 중 하나를 가질 수 있습니다.
Environment – AWS CLI가 환경 변수의 소스 자격 증명을 검색하도록 지정합니다.
Ec2InstanceMetadata – AWS CLI가 EC2 인스턴스 프로파일에 연결된 IAM 역할을 사용하여 소스 자격 증명을 가져오도록 지정합니다.
EcsContainer – AWS CLI가 ECS 컨테이너에 연결된 IAM 역할을 소스 자격 증명으로 사용하도록 지정합니다.
역할 세션의 최대 기간(초)을 지정합니다. 이 값의 범위는 900초(15분)부터 해당 역할에 대한 최대 세션 기간 설정(최대값: 43200초)까지 가능합니다. 이는 선택적 파라미터이며 기본적으로 값이 3600초로 설정됩니다.
external_id타사에서 고객 계정의 역할을 수임하는 데 사용하는 고유한 식별자를 지정합니다. 이는 ExternalId 작업의 AssumeRole 파라미터로 매핑됩니다. 이 파라미터는 역할에 대한 신뢰 정책에서 ExternalId에 값을 지정하는 경우에만 필요합니다. 자세한 내용은 IAM 사용 설명서의 AWS 리소스에 대한 액세스 권한을 서드 파티에 부여할 때 외부 ID를 사용하는 방법을 참조하세요.
max_attemptsAWS CLI 재시도 핸들러에서 사용하는 최대 재시도 시도 횟수 값을 지정합니다. 여기서 초기 호출은 사용자가 제공한 max_attempts 값에 포함됩니다.
AWS_MAX_ATTEMPTS 환경 변수를 사용하여 이 값을 재정의할 수 있습니다.
max_attempts = 3mfa_serial역할 수임 시 사용하는 MFA 디바이스의 식별 번호입니다. 이는 수임 중인 역할의 신뢰 정책에 MFA 인증을 필요로 하는 조건이 포함된 경우에만 필수입니다. 이 값은 하드웨어 디바이스용 일련 번호(예: GAHT12345678) 또는 가상 MFA 디바이스용 Amazon 리소스 이름(ARN)(예: arn:aws:iam::123456789012:mfa/user)일 수 있습니다.
output이 프로파일을 사용하여 요청된 명령의 기본 출력 형식을 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.
json - 출력은 JSON 문자열로 형식이 지정됩니다.
yaml - 출력은 YAML 문자열로 형식이 지정됩니다.
yaml-stream - 출력은 스트리밍되고 YAML 문자열로 형식이 지정됩니다. 스트리밍을 통해 대용량 데이터 유형을 빠르게 처리할 수 있습니다.
text - 출력은 여러 줄의 탭으로 구분된 문자열 값으로 형식이 지정됩니다. 출력을 grep, sed 또는 awk와 같은 텍스트 프로세서로 전달하는 데 사용할 수 있습니다.
table - 출력은 셀 테두리를 형성하기 위해 +|- 문자를 사용하여 표로 형식이 지정됩니다. 일반적으로 읽기는 쉽지만 프로그래밍 방식으로는 유용하지 않은 "인간 친화적" 형식으로 정보를 표시합니다.
AWS_DEFAULT_OUTPUT 환경 변수나 --output 명령줄 옵션으로 재정의할 수도 있습니다.
output = tableparameter_validationAWS CLI 클라이언트가 AWS 서비스 엔드포인트에 전달하기 전에 파라미터를 검증할지 여부를 지정합니다.
true - 기본값입니다. 지정된 경우 AWS CLI는 명령줄 파라미터를 로컬로 검증합니다.
false – 지정된 경우 AWS CLI는 AWS 서비스 엔드포인트에 전달하기 전에 명령줄 파라미터를 검증하지 않습니다.
이 항목은 동등한 수준의 환경 변수나 명령줄 옵션을 가지고 있지 않습니다.
parameter_validation = falseregion이 프로파일을 사용하여 요청된 명령에서 요청을 전송할 AWS 리전을 지정합니다.
Amazon Web Services 일반 참조의 AWS 리전 및 엔드포인트에 나열된 대로 선택한 서비스에서 사용할 수 있는 모든 리전 코드를 지정할 수 있습니다.
aws_global을 사용하면 리전 엔드포인트 외에 AWS Security Token Service (AWS STS) 및 Amazon Simple Storage Service(Amazon S3)와 같이 글로벌 엔드포인트를 지원하는 서비스에 글로벌 엔드포인트를 지정할 수 있습니다.
AWS_REGION 환경 변수, AWS_DEFAULT_REGION 환경 변수 또는 --region 명령줄 옵션을 사용하여 이 값을 재정의할 수 있습니다.
region = us-west-2retry_modeAWS CLI에 사용될 재시도 모드를 지정합니다. 레거시(기본값), 표준 및 적응형, 이렇게 3가지 재시도 모드를 사용할 수 있습니다. 재시도에 대한 자세한 내용은 AWS CLI 재시도을 참조하십시오.
AWS_RETRY_MODE 환경 변수를 사용하여 이 값을 재정의할 수 있습니다.
retry_mode = standardrole_arnAWS CLI 명령을 실행하는 데 사용할 IAM 역할의 Amazon 리소스 이름(ARN)을 지정합니다. 또한 다음 파라미터 중 하나를 지정하여 이 역할을 수임할 수 있는 권한이 있는 자격 증명을 식별해야 합니다.
source_profile
credential_source
환경 변수 AWS_ROLE_ARN이 이 설정을 재정의합니다.
웹 자격 증명 사용에 대한 자세한 내용은 웹 자격 증명을 사용한 역할 수임 단원을 참조하세요.
role_session_name역할 세션에 연결할 이름을 지정합니다. 이 값은 RoleSessionName가 AWS CLI 작업을 호출할 때 AssumeRole 파라미터에 제공되고 수임한 역할 사용자 ARN의 일부가 됩니다. arn:aws:sts::123456789012:assumed-role/role_name/role_session_name. 이는 선택 가능한 파라미터입니다. 이 값을 제공하지 않은 경우 세션 이름이 자동으로 생성됩니다. 이 이름은 이 세션과 연결된 항목에 대한 AWS CloudTrail 로그에 나타납니다.
role_session_name = maria_garcia_role환경 변수 AWS_ROLE_SESSION_NAME이 이 설정을 재정의합니다.
웹 자격 증명 사용에 대한 자세한 내용은 웹 자격 증명을 사용한 역할 수임 단원을 참조하세요.
source_profileAWS CLI에서 role_arn 파라미터로 지정한 역할을 수임하는 데 사용할 수 있는 장기 자격 증명으로 명명된 프로파일을 지정합니다. source_profile과 credential_source 모두를 동일한 프로파일에서 지정할 수 없습니다.
source_profile = production-profilesso_account_id연결된 IAM Identity Center 사용자에게 부여할 권한이 있는 IAM 역할이 포함된 AWS 계정 ID를 지정합니다.
이 설정에는 환경 변수 또는 명령줄 옵션이 없습니다.
sso_account_id = 123456789012sso_region
AWS 액세스 포털 호스트가 포함된 AWS 리전을 지정합니다. 이 값은 기본 CLI region 파라미터와 별개이며 다른 리전일 수 있습니다.
이 설정에는 환경 변수 또는 명령줄 옵션이 없습니다.
sso_region = us_west-2sso_role_name
이 프로파일을 사용할 때 사용자의 권한을 정의하는 IAM 역할의 기억하기 쉬운 이름을 지정합니다.
이 설정에는 환경 변수 또는 명령줄 옵션이 없습니다.
sso_role_name = ReadAccesssso_start_url
조직의 AWS 액세스 포털을 가리키는 URL을 지정합니다. AWS CLI는 이 URL을 통해 IAM Identity Center 서비스와의 세션을 설정하여 사용자를 인증합니다. AWS 액세스 포털 URL을 찾으려면 다음 중 하나를 사용합니다.
초대 이메일을 엽니다. AWS 액세스 포털 URL이 나와 있습니다.
//console.aws.amazon.com/singlesignon/에서 AWS IAM Identity Center (successor to AWS Single Sign-On) 콘솔을 엽니다. AWS 액세스 포털 URL이 설정에 나와 있습니다.
이 설정에는 환경 변수 또는 명령줄 옵션이 없습니다.
sso_start_url = //my-sso-portal.awsapps.com/startweb_identity_token_file
자격 증명 공급자가 제공하는 OAuth 2.0 액세스 토큰 또는 OpenID Connect ID 토큰을 포함하는 파일의 경로를 지정합니다. AWS CLI에서 이 파일의 내용을 로드하고 해당 파일을 WebIdentityToken 작업에 대한 AssumeRoleWithWebIdentity 인수로 전달합니다.
환경 변수 AWS_WEB_IDENTITY_TOKEN_FILE이 이 설정을 재정의합니다.
웹 자격 증명 사용에 대한 자세한 내용은 웹 자격 증명을 사용한 역할 수임 단원을 참조하세요.
tcp_keepaliveAWS CLI 클라이언트가 TCP keep-alive 패킷을 사용할 것인지 여부를 지정합니다.
이 항목은 동등한 수준의 환경 변수나 명령줄 옵션을 가지고 있지 않습니다.
tcp_keepalive = falseS3 사용자 지정 명령 설정
Amazon S3는 AWS CLI에서 Amazon S3 작업을 수행하는 방법을 구성하는 몇 가지 설정을 지원합니다. 일부 설정은 s3api 및s3 네임스페이스의 모든 S3 명령에 적용됩니다. 다른 설정은 특별히 공통 작업을 추상화하고 API 작업에 대한 일대일 매핑을 한 번 이상 수행하는 S3 "사용자 지정" 명령을 위한 것입니다. aws s3 이전 명령인 cp, sync, mv 및 rm에는 S3 이전을 제어하는 데 사용할 수 있는 추가 설정이 있습니다.
이러한 옵션은 모두 config 파일에서 s3 중첩 설정을 지정하여 구성할 수 있습니다. 각 설정은 자체의 줄에서 들여쓰기가 됩니다.
이러한 설정은 전적으로 선택 사항입니다. 이러한 설정을 구성하지 않고도 aws s3 이전 명령을 성공적으로 사용할 수 있어야 합니다. 이러한 설정은 성능을 조정하거나 aws s3 명령을 실행 중인 특정 환경을 설명할 수 있도록 하기 위해 제공됩니다.
이러한 설정은 모두 상위 수준 s3 파일의 config 키에서 지정됩니다(development 프로파일의 경우 다음 예제 참조).
[profile development] s3 = max_concurrent_requests = 20 max_queue_size = 10000 multipart_threshold = 64MB multipart_chunksize = 16MB max_bandwidth = 50MB/s use_accelerate_endpoint = true addressing_style = path아래 설정은 s3 또는 s3api 네임스페이스의 모든 S3 명령에 적용됩니다.
addressing_style
사용할 주소 지정 방식을 지정합니다. 버킷 이름이 호스트 이름에 있는지 또는 URL의 일부분인지 여부를 제어합니다. 유효 값은 path, virtual 및 auto입니다. 기본값은 auto입니다.
Amazon S3 엔드포인트는 두 가지 방식으로 구성할 수 있습니다. 첫 번째는 virtual이라고 하는 방식으로 호스트 이름의 일부로 버킷 이름을 포함하고 있습니다. 예: //bucketname.s3.amazonaws.com. 아니면 path 방식을 사용하여 마치 URI의 경로인 것처럼 버킷 이름을 취급합니다(예: //s3.amazonaws.com/bucketname). CLI은 auto를 사용하도록 기본 설정되어 있는데, 가능한 경우 virtual 방식을 사용하되, 필요할 때는 path 방식으로 돌아갑니다. 예를 들어 DNS를 준수하지 않은 버킷 이름은 호스트 이름의 일부가 될 수 없고 해당 경로에 있어야 합니다. auto에서는 CLI가 이 조건을 탐지하여 사용자를 대신해 path 방식으로 자동 전환합니다. 주소 지정 방식을 path로 설정한 경우에는 AWS에서 구성한 AWS CLI 리전이 버킷의 리전과 일치하는지 확인해야 합니다.
payload_signing_enabledSHA256이 sigv4 페이로드를 서명하는지 여부를 지정합니다. HTTPS를 사용할 때 업로드(UploadPart 및 PutObject)를 스트리밍하기 위해 기본적으로 이 옵션이 비활성화되어 있습니다. 업로드(UploadPart 및 PutObject) 스트리밍을 위해 이 값이 기본적으로 false로 설정됩니다. 단, ContentMD5가 존재하고(기본적으로 생성) 엔드포인트가 HTTPS를 사용하는 경우에 한합니다.
true로 설정되어 있는 경우, S3 요청은 사용자를 위해 계산되어 요청 서명에 포함되어 있는 SHA256 체크섬의 형태로 추가적인 내용 확인을 받게 됩니다. false로 설정되어 있는 경우에는 체크섬이 계산되지 않습니다. 이 옵션을 비활성화하는 것이 체크섬 계산에서 생성된 성능 오버헤드를 줄이는 데 유용할 수 있습니다.
use_dualstack_endpoint모든 s3 및 s3api 명령에서 Amazon S3 이중 IPv4/IPv6 엔드포인트를 사용합니다. 기본값은 false입니다. 이 옵션은 use_accelerate_endpoint 설정에서 함께 사용할 수 없습니다.
true로 설정하는 경우 AWS CLI는 모든 Amazon S3 요청을 구성된 리전의 이중 IPv4/IPv6 엔드포인트로 전달합니다.
use_accelerate_endpoint모든 s3 및 s3api 명령에서 Amazon S3 Accelerate 엔드포인트를 사용합니다. 기본값은 false입니다. 이 옵션은 use_dualstack_endpoint 설정에서 함께 사용할 수 없습니다.
true로 설정하는 경우 AWS CLI는 모든 Amazon S3 요청을 s3-accelerate.amazonaws.com의 S3 Accelerate 엔드포인트로 전달됩니다. 이 엔드포인트를 사용하려면 버킷에서 S3 Accelerate를 사용하도록 활성화해야 합니다. 모든 요청은 가상의 버킷 주소 지정 방식(my-bucket.s3-accelerate.amazonaws.com)을 사용하여 전송됩니다. 엔드포인트에서 이러한 작업을 지원하지 않기 때문에 어떤 ListBuckets, CreateBucket 및 DeleteBucket 요청도 S3 가속 엔드포인트로 전송되지 않습니다. --endpoint-url 또는 //s3-accelerate.amazonaws.com 명령에서 //s3-accelerate.amazonaws.com 파라미터가 s3 또는 s3api으로 설정되어 있는 경우에는 이 동작도 설정할 수 있습니다.
다음 설정은 s3 네임스페이스 명령 집합의 명령에만 적용됩니다.
max_bandwidth
Amazon S3의 데이터 업로드 및 다운로드에 사용할 수 있는 최대 대역폭을 지정합니다. 기본 값은 제한 없음입니다.
이 값은 S3 명령이 Amazon S3와 데이터를 주고 받는 데 사용할 수 있는 최대 대역폭을 제한합니다. 이 값은 업로드 및 다운로드에만 적용되고, 복사 또는 삭제 작업에는 적용되지 않습니다. 이 값은 초당 바이트로 표현됩니다. 이 값을 다음과 같이 형태로 지정할 수 있습니다.
정수. 예를 들어 1048576은 초당 1MB로 최대 대역폭 사용량을 설정합니다.
뒤에 속도 접미사가 붙는 정수. KB/s, MB/s 또는 GB/s를 사용하여 속도 접미사를 지정할 수 있습니다. 예, 300KB/s, 10MB/s.
일반적으로 먼저 max_concurrent_requests를 낮춰서 대역폭 사용량을 낮추려고 시도하는 것이 좋습니다. 이렇게 해도 원하는 속도로 대역폭 사용량이 적절하게 제한되지 않는 경우에는 대역폭 사용량을 추가로 제한하는 데 사용되는 max_bandwidth 설정을 사용할 수 있습니다. 이는 max_concurrent_requests가 현재 실행 중인 스레드의 수를 제어하기 때문입니다. 대신에 먼저 max_bandwidth 값을 낮추되, max_concurrent_requests 설정은 높게 놔두면 스레드가 불필요하게 대기해야 하는 결과가 발생할 수 있습니다. 이로 인해 리소스 사용량과 연결 제한 시간이 초과할 수 있습니다.
max_concurrent_requests동시 요청의 최대 수를 지정합니다. 기본값은 10입니다.
aws s3 이전 명령은 멀티스레드가 됩니다. 언제든지 여러 개의 Amazon S3 요청이 실행 중일 수 있습니다. 예를 들어, aws s3 cp localdir s3://bucket/ --recursive 명령을 사용하여 S3 버킷에 파일을 업로드하면 AWS CLI는 localdir/file1, localdir/file2 및 localdir/file3 파일을 동시에 업로드할 수 있습니다. max_concurrent_requests 설정은 동시에 실행 가능한 이전 작업의 최대 수를 지정합니다.
몇 가지 이유에서 이 값을 변경해야 할 수도 있습니다.
이 값을 줄이기 - 어떤 환경에서는 기본 설정된 10개의 동시 요청으로 인해 시스템이 압도될 수 있습니다. 이로 인해 연결 제한 시간이 발생하거나 시스템의 응답 속도가 느려질 수 있습니다. 이 값을 낮추면 S3 이전 명령에서 리소스를 덜 사용하게 됩니다. 하지만 S3 이전이 완료되는 데 더 많은 시간이 소요될 수 있다는 단점이 있습니다. 대역폭을 제한하기 위한 도구를 사용하는 경우에는 이 값을 낮추는 것이 필수로 요구될 수 있습니다.
이 값을 늘리기 - 어떤 경우에는 필요한 만큼 네트워크 대역폭을 사용하여 가능한 한 신속하게 Amazon S3 전송을 완료하고 싶을 수 있습니다. 이런 경우에는 기본적인 동시 요청 수로는 사용 가능한 모든 네트워크 대역폭을 활용하기에 충분하지 않을 수 있습니다. 이 값을 늘리면 Amazon S3 이전을 완료하는 데 소요되는 시간을 줄일 수 있습니다.
작업 대기열의 최대 작업 수를 지정합니다. 기본값은 1000입니다.
AWS CLI는 내부적으로 Amazon S3 태스크를 대기열에 추가한 후 소비자를 통해 작업을 실행하는 모델을 사용합니다. 태스크 수는 max_concurrent_requests로 제한됩니다. 태스크는 보통 단일 Amazon S3 작업에 매핑됩니다. 예를 들어 작업은 PutObjectTask, GetObjectTask 또는 UploadPartTask가 될 수 있습니다. 작업이 대기열에 추가되는 속도는 소비자가 작업을 완료하는 속도보다 훨씬 빠를 수 있습니다. 무한 증가를 피하기 위해 작업 대기열 크기가 특정 크기로 제한됩니다. 이 설정은 최대 크기의 값을 변경합니다.
일반적으로 이 설정을 변경할 필요는 없습니다. 또한 이 설정은 AWS CLI가 실행이 필요하다고 인식하고 있는 태스크 수에 해당됩니다. 이는 곧 AWS CLI가 기본적으로 1,000건의 태스크만 미리 볼 수 있다는 것을 의미합니다. 이 값을 늘리면 AWS CLI에서 대기열 저장 속도가 태스크 완료 속도보다 빠르다는 가정하에 필요한 총 태스크 수를 보다 신속하게 알 수 있습니다. max_queue_size가 커질수록 메모리가 더 필요하게 된다는 단점이 있습니다.
multipart_chunksize개별 파일의 멀티파트 이전을 위해 AWS CLI가 사용하는 청크 크기를 지정합니다. 기본값은 8MB이며 최소 5MB입니다.
파일 전송이 multipart_threshold를 초과하면 AWS CLI는 파일을 이 크기의 청크로 분할합니다. multipart_threshold와 동일한 구문을 사용하여, 즉 정수 형태의 바이트 수를 사용하거나 크기와 접미사를 사용하는 방법으로 이 값을 지정할 수 있습니다.
multipart_threshold개별 파일의 멀티파트 이전을 위해 AWS CLI가 사용하는 크기 임계값을 지정합니다. 기본값은 8MB입니다.
파일을 업로드, 다운로드 또는 복사할 때 파일이 이 크기를 초과하면 Amazon S3 명령이 멀티파트 작업으로 전환됩니다. 이 값을 두 가지 방법으로 지정할 수 있습니다.
먼저 바이트 단위의 파일 크기입니다. 예: 1048576.
두 번째는 크기 접미사가 포함된 파일 크기입니다. KB, MB, GB 또는 TB를 사용할 수 있습니다. 예: 10MB, 1GB.
S3은 멀티파트 작업에 사용할 수 있는 유효 값에 제약을 둘 수 있습니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서에서 S3 멀티파트 업로드 설명서를 참조하세요.