

**이 문서는 AWS CLI의 버전 1에만 해당합니다.**

곧 AWS CLI 버전 1에 대한 지원이 종료될 예정임을 알려드립니다. AWS CLI 버전 2로 마이그레이션하는 것이 좋습니다. 마이그레이션 날짜, 추가 세부 정보 및 방법에 대한 자세한 내용은 [공지 사항](https://aws.amazon.com/blogs/developer/cli-v1-maintenance-mode-announcement/)을 참조하세요. AWS CLI의 버전 2와 관련된 문서는 [버전 2 사용 설명서](https://docs.aws.amazon.com/cli/latest/userguide/)를 참조하세요.

# AWS CLI 설정 구성
<a name="cli-chap-configure"></a>

이 섹션에서는 AWS Command Line Interface(AWS CLI)가 AWS와 상호 작용하는 데 사용하는 설정을 구성하는 방법에 대해 설명합니다. 여기에는 다음이 포함됩니다.
+ **보안 인증**은 API를 호출하는 사람을 식별합니다. 액세스 보안 인증은 AWS 서버에 대한 요청을 암호화하여 ID를 확인하고 관련 권한 정책을 검색하는 데 사용됩니다. 이러한 권한에 따라 수행할 수 있는 작업이 결정됩니다. 보안 인증 설정에 대한 자세한 내용은 [AWS CLI에 대한 인증 및 액세스 보안 인증](cli-chap-authentication.md) 섹션을 참조하세요.
+ 요청을 처리하는 방법 AWS CLI을 알려주는 **기타 구성 세부 정보**(예: 기본 출력 형식 및 기본 AWS 리전)

**참고**  
AWS에서는 모든 수신 요청이 암호화 방식으로 서명되어야 합니다. AWS CLI에서 이 작업을 수행합니다. "서명"에는 날짜/시간 스탬프가 포함됩니다. 따라서 컴퓨터의 날짜 및 시간이 올바르게 설정되어야 합니다. 잘못 설정되면 서명의 날짜/시간과 AWS 서비스에서 인식한 날짜/시간의 차이가 극심하여 AWS에서 요청을 거부합니다.

## 구성 및 보안 인증 우선 순위
<a name="configure-precedence"></a>

보안 인증 및 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. 특정 위치가 다른 위치보다 우선합니다. AWS CLI 보안 인증 및 구성 설정은 다음 순서에 따라 우선적으로 적용됩니다.

1. **[명령줄 옵션](cli-configure-options.md)** - `--region`, `--output`, `--profile`와 같은 다른 위치의 설정을 재정의합니다.

1. **[환경 변수](cli-configure-envvars.md)** - 시스템의 환경 변수에 값을 저장할 수 있습니다.

1. **[역할 위임](cli-configure-role.md)** - 구성 또는 [https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role.html](https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role.html) 명령을 통해 IAM 역할의 권한을 위임합니다.

1. **[웹 ID로 역할 위임](cli-configure-role.md)** - 구성 또는 [https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role-with-web-identity.html](https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role-with-web-identity.html) 명령을 통해 웹 ID를 사용하여 IAM 역할의 권한을 위임합니다.

1. **[보안 인증 파일](cli-configure-files.md)** - `aws configure` 명령을 실행하면 `credentials` 및 `config` 파일이 업데이트됩니다. `credentials` 파일은 `~/.aws/credentials`(Linux 또는 macOS) 또는 `C:\Users\USERNAME\.aws\credentials`(Windows)에 저장됩니다.

1. **[사용자 지정 프로세스](cli-configure-sourcing-external.md)** - 외부 소스에서 보안 인증을 가져옵니다.

1. **[구성 파일](cli-configure-files.md)** - `aws configure` 명령을 실행하면 `credentials` 및 `config` 파일이 업데이트됩니다. `config` 파일은 `~/.aws/config`(Linux 또는 macOS) 또는 `C:\Users\USERNAME\.aws\config`(Windows)에 저장됩니다.

1. **[컨테이너 보안 인증](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)** - IAM 역할을 각 Amazon Elastic Container Service(Amazon ECS) 태스크 정의에 연결할 수 있습니다. 그러면 작업의 컨테이너에 대해 해당 역할의 임시 보안 인증을 사용할 수 있습니다. 자세한 내용은 *Amazon Elastic Container Service 개발자 안내서*에서 [태스크에 대한 IAM 역할](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)을 참조하세요.

1. **[Amazon EC2 인스턴스 프로파일 보안 인증](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)** - IAM 역할을 각 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 연결할 수 있습니다. 그러면 인스턴스에서 실행되는 코드에 대해 해당 역할의 임시 보안 인증을 사용할 수 있습니다. 보안 인증은 Amazon EC2 메타데이터 서비스를 통해 전달됩니다. 자세한 내용은 **Amazon EC2 사용 설명서의 [Amazon EC2에 대한 IAM 역할](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)과 **IAM 사용 설명서의 [인스턴스 프로파일 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)을 참조하세요.

## 이 섹션의 추가 주제
<a name="configure-topics"></a>
+ [AWS CLI의 구성 및 보안 인증 파일 설정](cli-configure-files.md)
+ [AWS CLI에 대한 환경 변수 구성](cli-configure-envvars.md)
+ [AWS CLI의 명령줄 옵션](cli-configure-options.md)
+ [AWS CLI에서 명령 완성 구성](cli-configure-completion.md)
+ [AWS CLI에서 AWS CLI 재시도](cli-configure-retries.md)
+ [AWS CLI에 대한 HTTP 프록시 사용](cli-configure-proxy.md)

# AWS CLI의 구성 및 보안 인증 파일 설정
<a name="cli-configure-files"></a>

AWS CLI에서 유지되는 파일에 자주 사용되는 구성 설정과 보안 인증을 저장할 수 있습니다.

파일은 `profiles`로 나뉩니다. 기본적으로 AWS CLI는 `default`라는 프로파일에서 확인된 설정을 사용합니다. 대체 설정을 사용하려면 추가 프로파일을 생성해 참조할 수 있습니다.

지원되는 환경 변수 중 하나를 설정하거나 명령줄 파라미터를 사용하여 개별 설정을 재정의할 수 있습니다. 구성 설정 우선 순위에 대한 자세한 내용은 [AWS CLI 설정 구성](cli-chap-configure.md) 섹션을 참조하세요.

**참고**  
보안 인증 설정에 대한 자세한 내용은 [AWS CLI에 대한 인증 및 액세스 보안 인증](cli-chap-authentication.md) 섹션을 참조하세요.

**Topics**
+ [구성 및 보안 인증 파일의 형식](#cli-configure-files-format)
+ [구성 설정이 저장되는 장소](#cli-configure-files-where)
+ [명명된 프로파일 사용](#cli-configure-files-using-profiles)
+ [구성 설정 지정 및 보기](#cli-configure-files-methods)
+ [새 구성 및 보안 인증 설정 명령 예제](#cli-configure-files-examples)
+ [지원되는 `config` 파일 설정](#cli-configure-files-settings)

## 구성 및 보안 인증 파일의 형식
<a name="cli-configure-files-format"></a>

`config` 및 `credentials` 파일은 섹션으로 구성됩니다. 섹션에는 *프로파일* 및 *서비스*가 포함됩니다. 섹션은 이름이 지정된 설정 모음이며 다른 섹션 정의 라인을 찾을 때까지 계속됩니다. 여러 프로파일 및 섹션을 `config` 및 `credentials` 파일에 저장할 수 있습니다.

이 파일은 다음 형식을 사용하는 일반 텍스트 파일입니다.
+ 섹션 이름은 괄호[ ]로 묶여 있습니다(예: `[default]`, `[profile user1]`, `[sso-session]`).
+ 섹션의 모든 항목은 `setting_name=value`와 같은 일반적인 형식을 취합니다.
+ 줄은 해시 문자(`#`)로 시작하여 주석 처리할 수 있습니다.

**`config` 및 `credentials` 파일에는 다음과 같은 섹션 유형이 포함됩니다.**
+ [`profile`](#cli-configure-files-format-profile)
+ [`services`](#cli-configure-files-format-services)

### 섹션 유형: `profile`
<a name="cli-configure-files-format-profile"></a>

파일에 따라 프로파일 섹션 이름은 다음 형식을 사용합니다.
+ **Config 파일:** `[default]` `[profile user1]`
+ **보안 인증 파일:** `[default]` `[user1]`

  `credentials` 파일에서 항목을 생성할 때에는 `profile` 단어를 사용하지 ***마세요***.

각 프로파일은 다른 보안 인증 정보를 지정하며, 다른 AWS 리전 및 출력 형식도 지정할 수 있습니다. `config` 파일에서 프로파일 이름을 지정할 때 접두사 "`profile`“를 포함시키되`credentials` 파일에는 포함시키지 마세요.

다음 예에서는 두 개의 프로파일, 리전 및 출력이 지정된 `credentials` 및 `config` 파일을 보여 줍니다. 첫 번째 *[기본값]*은 지정된 프로파일이 없는 AWS CLI 명령을 실행할 때 사용됩니다. 두 번째는 `--profile user1` 파라미터와 함께 AWS CLI 명령을 실행할 때 사용됩니다.

------
#### [ Short-term credentials ]

이 예는 AWS Identity and Access Management의 단기 보안 인증을 위한 것입니다. 자세한 내용은 [AWS CLI에 대한 단기 자격 증명으로 인증](cli-authentication-short-term.md) 섹션을 참조하세요.

**보안 인증 파일**

```
[default]
aws_access_key_id=ASIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

[user1]
aws_access_key_id=ASIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
aws_session_token = fcZib3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
```

**Config 파일**

```
[default]
region=us-west-2
output=json

[profile user1]
region=us-east-1
output=text
```

------
#### [ IAM role ]

이 예는 IAM 역할을 맡기 위한 것입니다. IAM 역할을 사용하는 프로필은 다른 프로필에서 보안 인증을 가져온 다음 IAM 역할 권한을 적용합니다. 다음 예에서 `default`는 보안 인증의 소스 프로필이며 `user1`는 동일한 보안 인증을 차용한 다음 새 역할을 맡습니다. 자세한 내용은 [AWS CLI에서 IAM 역할 사용](cli-configure-role.md) 섹션을 참조하세요.

**보안 인증 파일**

`credentials` 파일은 소스 프로필에서 사용하는 인증에 따라 달라집니다. 다음 예제의 경우 소스 프로필은 단기 보안 인증을 사용합니다.

```
[default]
aws_access_key_id=ASIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
```

**Config 파일**

```
[default]
region=us-west-2
output=json

[profile user1]
role_arn=arn:aws:iam::777788889999:role/user1role
source_profile=default
role_session_name=session_user1
region=us-east-1
output=text
```

------
#### [ Amazon EC2 instance metadata credentials ]

이 예는 호스팅 Amazon EC2 인스턴스 메타데이터에서 가져온 보안 인증에 대한 예입니다. 자세한 내용은 [AWS CLI에서 Amazon EC2 인스턴스 메타데이터의 자격 증명 사용](cli-configure-metadata.md) 섹션을 참조하세요.

**보안 인증 파일**

`credentials` 파일은 이 인증 방법에 사용되지 않습니다.

**Config 파일**

```
[default]
role_arn=arn:aws:iam::123456789012:role/defaultrole
credential_source=Ec2InstanceMetadata
region=us-west-2
output=json

[profile user1]
role_arn=arn:aws:iam::777788889999:role/user1role
credential_source=Ec2InstanceMetadata
region=us-east-1
output=text
```

------
#### [ Long-term credentials ]

**주의**  
보안 위험을 방지하려면 목적별 소프트웨어를 개발하거나 실제 데이터로 작업할 때 IAM 사용자를 인증에 사용하지 마세요. 대신 [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)과 같은 보안 인증 공급자를 통한 페더레이션을 사용하세요.

이 예는 AWS Identity and Access Management의 장기 보안 인증을 위한 것입니다. 자세한 내용은 [IAM 사용자 자격 증명을 사용한 인증](cli-authentication-user.md) 섹션을 참조하세요.

**보안 인증 파일**

```
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

[user1]
aws_access_key_id=AKIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
```

**Config 파일**

```
[default]
region=us-west-2
output=json

[profile user1]
region=us-east-1
output=text
```

------

자세한 내용과 추가 권한 부여 및 보안 인증 방법은 [IAM 사용자 자격 증명을 사용한 인증](cli-authentication-user.md)을 참조하세요.

### 섹션 유형: `services`
<a name="cli-configure-files-format-services"></a>

`services` 섹션은 AWS 서비스 요청에 대한 사용자 지정 엔드포인트를 구성하는 설정 그룹입니다. 그런 다음 프로필이 `services` 섹션에 연결됩니다.

```
[profile dev]
services = my-services
```

`services` 섹션은`<SERVICE> = ` 줄로 하위 섹션으로 구분되며, 여기서 `<SERVICE>`는 AWS 서비스 서비스 식별자 키입니다. AWS 서비스 서비스 식별자는 모든 공백을 밑줄로 바꾸고 모든 문자를 소문자로 바꾸는 방식으로 API 모델의 `serviceId`를 기반으로 합니다. `services` 섹션에서 사용할 모든 서비스 식별자 키 목록은 [AWS CLI에서 엔드포인트 사용](cli-configure-endpoints.md)을 참조하세요. 서비스 식별자 키 뒤에는 각각 고유한 줄에 공백 두 개로 들여쓰기하여 중첩된 설정이 이어집니다.

다음 예제에서는 *dev* 프로파일에 사용되는 *my-services* 섹션에서 Amazon DynamoDB 서비스에 대한 요청에 사용할 엔드포인트를 구성합니다. 들여쓰기된 바로 다음 줄은 해당 하위 섹션에 포함되며 해당 서비스에 적용됩니다.

```
[profile dev]
services = my-services

[services my-services]
dynamodb = 
  endpoint_url = http://localhost:8000
```

서비스별 엔드포인트에 대한 자세한 내용은 [AWS CLI에서 엔드포인트 사용](cli-configure-endpoints.md)을 참조하세요.

프로파일에 역할 기반 보안 인증 정보가 IAM 가정 역할 기능에 대한 `source_profile` 파라미터를 통해 구성된 경우 SDK는 지정된 프로파일에 대한 서비스 구성만 사용합니다. 역할이 연결된 프로파일은 사용하지 않습니다. 예를 들어 다음과 같은 공유 `config` 파일을 사용합니다.

```
[profile A]
credential_source = Ec2InstanceMetadata
endpoint_url = https://profile-a-endpoint.aws/

[profile B]
source_profile = A
role_arn = arn:aws:iam::123456789012:role/roleB
services = profileB

[services profileB]
ec2 = 
  endpoint_url = https://profile-b-ec2-endpoint.aws
```

 프로파일 `B`를 사용하고 코드에서 Amazon EC2로 직접 호출하는 경우 엔드포인트는 `https://profile-b-ec2-endpoint.aws`로 확인됩니다. 코드에서 다른 서비스에 요청을 하는 경우 엔드포인트 확인은 사용자 지정 로직을 따르지 않습니다. 엔드포인트는 프로파일 `A`에 정의된 글로벌 엔드포인트로 확인되지 않습니다. 글로벌 엔드포인트가 프로파일 `B`에 적용되려면 프로파일 `B` 내에서 직접 `endpoint_url`을 설정해야 합니다.

## 구성 설정이 저장되는 장소
<a name="cli-configure-files-where"></a>

AWS CLI는 `aws configure`를 사용하여 지정하는 민감한 보안 인증 정보를 홈 디렉터리의 `credentials`라는 폴더에 있는 `.aws`라는 로컬 파일에 저장합니다. `aws configure`를 사용하여 지정하는 덜 민감한 구성 옵션은 `config`라는 로컬 파일에 저장되며, 홈 디렉터리의 `.aws` 폴더에도 저장됩니다.

**config 파일에 보안 인증 저장**  
AWS CLI는 `config` 파일에서 보안 인증을 읽을 수 있으므로 모든 프로파일 설정을 단일 파일에 보관할 수 있습니다. 동일한 이름을 공유하는 프로파일에 대한 보안 인증이 두 파일 모두에 있는 경우 보안 인증 파일의 키가 우선합니다. `credentials` 파일에 보안 인증을 보관하는 것이 좋습니다. 이들 파일은 다양한 언어의 소프트웨어 개발 키트(SDK)에서도 사용됩니다. SDK 중 하나를 사용하는 경우 AWS CLI는 또한 보안 인증을 자체 파일에 저장해야 하는지 여부를 확인합니다.

홈 디렉터리 위치는 운영 체제에 따라 달라지지만 Windows에서는 `%UserProfile%` 환경 변수를, Unix 기반 시스템에서는 `$HOME` 또는 `~`(물결표) 환경 변수를 사용하여 참조됩니다. `AWS_CONFIG_FILE` 및 `AWS_SHARED_CREDENTIALS_FILE` 환경 변수를 다른 로컬 경로로 설정하여 파일에 대해 기본이 아닌 위치를 지정할 수 있습니다. 세부 정보는 [AWS CLI에 대한 환경 변수 구성](cli-configure-envvars.md) 섹션을 참조하세요.

AWS Identity and Access Management(IAM) 역할을 지정하는 공유 프로파일을 사용할 때 AWS CLI에서 AWS STS `AssumeRole` 작업을 호출하여 임시 보안 인증을 검색합니다. 이러한 보안 인증은 (`~/.aws/cli/cache`)에 저장됩니다. 후속 AWS CLI 명령은 캐시된 임시 보안 인증이 만료될 때까지 사용하고 해당 시점에서 AWS CLI가 보안 인증을 자동으로 새로 고칩니다.

## 명명된 프로파일 사용
<a name="cli-configure-files-using-profiles"></a>

명시적으로 정의된 프로파일이 없는 경우 해당 `default` 프로파일이 사용됩니다.

명명된 프로필을 사용하려면 `--profile profile-name` 옵션을 명령에 추가합니다. 다음은 `user1` 프로파일에 정의된 보안 인증 및 설정을 사용하여 Amazon EC2 인스턴스를 모두 나열하는 예입니다.

```
$ aws ec2 describe-instances --profile user1
```

여러 명령에 대해 명명된 프로파일을 사용하려는 경우, 기본 프로파일로 `AWS_PROFILE` 환경 변수를 설정하면 모든 명령에서 매번 프로파일을 지정하는 것을 피할 수 있습니다. `--profile` 매개 변수를 사용해 설정을 변경할 수 있습니다.

------
#### [ Linux or macOS ]

```
$ export AWS_PROFILE=user1
```

------
#### [ Windows ]

```
C:\> setx AWS_PROFILE user1
```

환경 변수를 설정하는 데 `[set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)`을 사용하면 사용되는 값이 변경되어 현재 명령 프롬프트 세션이 종료될 때까지 또는 변수를 다른 값으로 설정할 때까지 유지됩니다.

환경 변수를 설정하는 데 [https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx)를 사용하면 명령 실행 후 생성한 모든 명령 셸의 값이 변경됩니다. 명령을 실행하는 시점에 이미 실행 중인 다른 명령 셸에는 영향이 미치지 ***않습니다***. 이러한 변경 영향을 확인하려면 명령 셸을 닫고 다시 시작합니다.

환경 변수를 설정하면 기본 프로파일이 변경되어 셸 세션이 종료될 때까지 또는 변수를 다른 값으로 설정할 때까지 유지됩니다. 셸의 스타트업 스크립트에 이들 값을 배치하면 환경 변수가 향후 세션에서도 영구적으로 적용되도록 할 수 있습니다. 자세한 내용은 [AWS CLI에 대한 환경 변수 구성](cli-configure-envvars.md) 섹션을 참조하세요.

------

## 구성 설정 지정 및 보기
<a name="cli-configure-files-methods"></a>

명령을 사용해 구성 설정을 보고 지정하는 몇 가지 방법이 있습니다.

**`[aws configure](https://docs.aws.amazon.com/cli/v1/reference/configure/index.html)`**  
보안 인증 정보, 리전 및 출력 형식을 빠르게 설정하고 보려면 이 명령을 실행합니다. 다음 예제는 샘플 값을 보여줍니다.  

```
$ 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 set](https://docs.aws.amazon.com/cli/v1/reference/configure/set.html)`**  
`aws configure set`를 사용하여 보안 인증 또는 구성 설정을 지정할 수 있습니다. `--profile` 설정으로 보거나 수정하려는 프로파일을 지정합니다.  
예를 들어 다음 명령은 `region`프로파일에서 `integ`을 설정합니다.  

```
$ aws configure set region us-west-2 --profile integ
```
설정을 제거하려면 텍스트 편집기에서 `config` 및 `credentials` 파일의 설정을 수동으로 삭제합니다.

**[https://docs.aws.amazon.com/cli/v1/reference/configure/get.html](https://docs.aws.amazon.com/cli/v1/reference/configure/get.html)**  
`aws configure get`을 사용하여 설정한 보안 인증 또는 구성 설정을 검색할 수 있습니다. `--profile` 설정으로 보거나 수정하려는 프로파일을 지정합니다.  
예를 들어 다음 명령은 `region`프로파일에서 `integ` 설정을 검색합니다.  

```
$ aws configure get region --profile integ
us-west-2
```
출력이 비어 있으면 설정이 명시적으로 지정되지 않고 기본값을 사용합니다.

**[https://docs.aws.amazon.com/cli/v1/reference/configure/list.html](https://docs.aws.amazon.com/cli/v1/reference/configure/list.html)**  
구성 데이터를 나열하려면 `aws configure list` 명령을 사용합니다. 이 명령은 지정된 프로필에 사용되는 프로필, 액세스 키, 비밀 키 및 리전 구성 정보를 나열합니다. 각 구성 항목에 대해 값, 구성 값이 검색된 위치, 구성 변수 이름이 표시됩니다.  
예를 들어, 환경 변수에 AWS 리전을 입력하면 이 명령은 사용자가 구성한 리전의 이름, 이 값이 환경 변수에서 가져온 것이라는 점, 환경 변수의 이름을 보여줍니다.  
역할 및 IAM Identity Center와 같은 임시 보안 인증 방법의 경우 이 명령은 임시로 캐시된 액세스 키와 비밀 액세스 키를 표시합니다.  

```
$ 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
```

## 새 구성 및 보안 인증 설정 명령 예제
<a name="cli-configure-files-examples"></a>

다음 예에서는 다양한 인증 방법에 대해 지정된 보안 인증 정보, 리전 및 출력을 사용하여 기본 프로필을 구성하는 방법을 보여 줍니다.

------
#### [ Console sessions as short-term credentials ]

이 예제에서는 기존 콘솔 자격 증명을 `aws login` 명령과 함께 사용할 수 있습니다. 이 로그인 방법은 초기 계정 설정 중에 생성된 루트 자격 증명, IAM 사용자 또는 자격 증명 공급자의 페더레이션 자격 증명과 함께 사용할 수 있습니다. 자세한 내용은 [콘솔 자격 증명을 사용한 AWS 로컬 개발을 위한 로그인](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html)을 참조하세요.

```
$ aws login
No AWS region has been configured. The AWS region is the geographic location of your AWS resources. 

If you've used AWS before and already have resources in your account, tell us which region they were 
created in. If you haven't created resources in your account before, you can pick the region closest to you: 
https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html. You are able to change 
the region in the CLI at any time with the command `aws configure set region NEW_REGION`.

AWS Region [us-east-1]: us-east-1
Attempting to open the login page for `us-east-1` in your default browser. If the browser does not open, 
use the following URL to complete your login:

https://us-east-1.signin.aws.amazon.com/v1/authorize<abbreviated>

If you cannot connect to this URL, make sure that you have specified a valid region.

Waiting for login...

Logged in with role `arn:aws:sts::012345678910:user/iam-user`, and configured profile 
`default` to use `us-east-1`. This session will expire on October 14, 2025 at 2:04 PST. After this time, you 
can renew your session with `aws login`.
```

------
#### [ Short-term credentials ]

이 예는 AWS Identity and Access Management의 단기 보안 인증을 위한 것입니다. AWS 구성 마법사를 사용하여 초기 값을 설정한 다음 `aws configure set` 명령은 필요한 마지막 값을 할당합니다. 자세한 내용은 [AWS CLI에 대한 단기 자격 증명으로 인증](cli-authentication-short-term.md) 섹션을 참조하세요.

```
$ 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 set aws_session_token fcZib3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
```

------
#### [ IAM role ]

이 예는 IAM 역할을 맡기 위한 것입니다. IAM 역할을 사용하는 프로필은 다른 프로필에서 보안 인증을 가져온 다음 IAM 역할 권한을 적용합니다. 다음 예에서 `default`는 보안 인증의 소스 프로필이며 `user1`는 동일한 보안 인증을 차용한 다음 새 역할을 맡습니다. 이 프로세스에는 마법사가 없으므로 `aws configure set` 명령을 사용하여 각 값을 설정합니다. 자세한 내용은 [AWS CLI에서 IAM 역할 사용](cli-configure-role.md) 섹션을 참조하세요.

```
$ aws configure set role_arn arn:aws:iam::123456789012:role/defaultrole
$ aws configure set source_profile default
$ aws configure set role_session_name session_user1
$ aws configure set region us-west-2
$ aws configure set output json
```

------
#### [ Amazon EC2 instance metadata credentials ]

호스팅 Amazon EC2 인스턴스 메타데이터에서 획득한 보안 인증을 사용하는 예입니다. 이 프로세스에는 마법사가 없으므로 `aws configure set` 명령을 사용하여 각 값을 설정합니다. 자세한 내용은 [AWS CLI에서 Amazon EC2 인스턴스 메타데이터의 자격 증명 사용](cli-configure-metadata.md) 섹션을 참조하세요.

```
$ aws configure set role_arn arn:aws:iam::123456789012:role/defaultrole
$ aws configure set credential_source Ec2InstanceMetadata
$ aws configure set region us-west-2
$ aws configure set output json
```

------
#### [ Long-term credentials ]

**주의**  
보안 위험을 방지하려면 목적별 소프트웨어를 개발하거나 실제 데이터로 작업할 때 IAM 사용자를 인증에 사용하지 마세요. 대신 [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)과 같은 보안 인증 공급자를 통한 페더레이션을 사용하세요.

이 예는 AWS Identity and Access Management의 장기 보안 인증을 위한 것입니다. 자세한 내용은 [IAM 사용자 자격 증명을 사용한 인증](cli-authentication-user.md) 섹션을 참조하세요.

```
$ 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
```

------

## 지원되는 `config` 파일 설정
<a name="cli-configure-files-settings"></a>

**Topics**
+ [Global settings(글로벌 설정)](#cli-configure-files-global)
+ [S3 사용자 지정 명령 설정](#cli-configure-files-s3)

`config` 파일에서는 다음 설정이 지원됩니다. 같은 이름의 환경 변수나 같은 이름의 명령줄 옵션으로 재정의되지 않는 한, 지정된(또는 기본 설정된) 프로파일에 나열된 값들이 사용됩니다. 어떤 순서 설정이 우선적으로 사용되는지에 대한 자세한 내용은 [AWS CLI 설정 구성](cli-chap-configure.md) 섹션을 참조하세요.

### Global settings(글로벌 설정)
<a name="cli-configure-files-global"></a>

** `account_id_endpoint_mode` **  
지원되는 AWS 서비스에 대한 호출에 AWS 계정 기반 엔드포인트 ID를 사용할지 여부를 지정합니다. 계정 기반 엔드포인트에 대한 자세한 내용은 [계정 기반 엔드포인트](cli-configure-endpoints.md#endpoints-accountid) 섹션을 참조하시기 바랍니다.  
이 설정에서는 다음을 설정할 수 있습니다.  
+ **(기본값)** **`preferred`** - 엔드포인트에는 사용 가능한 경우 계정 ID가 포함되어야 합니다.
+ **`disabled`** - 확인된 엔드포인트에는 계정 ID가 포함되지 않습니다.
+ **`required`** - 엔드포인트에는 계정 ID가 포함되어야 합니다. 계정 ID를 사용할 수 없는 경우 SDK에서 오류가 발생합니다.
`AWS\$1ACCOUNT\$1ID\$1ENDPOINT\$1MODE` 환경 변수로 재정의할 수도 있습니다. 계정 기반 엔드포인트를 사용하려면 `AWS\$1ACCOUNT\$1ID` 환경 변수 또는 `aws\$1account\$1id` 설정에서 ID를 설정해야 합니다.  

```
account_id_endpoint_mode = preferred
```
**엔드포인트 우선순위**  
엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. AWS CLI는 이러한 엔드포인트 설정을 특정 순서로 확인하고 우선순위가 가장 높은 엔드포인트 설정을 사용합니다. 엔드포인트 우선순위 목록은 [엔드포인트 구성 및 설정 우선 순위](cli-configure-endpoints.md#endpoints-precedence) 섹션을 참조하시기 바랍니다.

** `api_versions` **  
 일부 AWS 서비스는 이전 버전과의 호환성을 지원하기 위해 여러 개의 API 버전을 유지하고 있습니다. 기본적으로 AWS CLI 명령은 가장 최근에 출시된 API 버전을 사용합니다. `api_versions` 파일에 `config` 설정을 포함시켜 프로파일에서 사용할 API 버전을 지정할 수 있습니다.  
이는 뒤에 들여 쓴 줄이 하나 이상 나오는 "중첩" 설정으로, 각각의 줄은 하나의 AWS 서비스와 사용할 API 버전을 식별합니다. 사용 가능한 API 버전을 알아보려면 각 서비스의 설명서를 참조하세요.  
다음 예제는 두 AWS 서비스에 대한 API 버전을 지정하는 방법을 보여줍니다. 이러한 API 버전은 이러한 설정이 포함된 프로파일 하에서 실행되는 명령에서만 사용됩니다.  

```
api_versions =
    ec2 = 2015-03-01
    cloudfront = 2015-09-017
```
이 설정에는 동등한 수준의 환경 변수 또는 명령줄 파라미터가 없습니다.

** `aws_access_key_id` **  
명령 요청을 인증하기 위한 보안 인증의 일부로 사용되는 AWS 액세스 키를 지정합니다. 이 키는 `config` 파일에 저장될 수도 있지만, `credentials` 파일에 저장하는 것이 좋습니다.  
`AWS_ACCESS_KEY_ID` 환경 변수로 재정의할 수도 있습니다. 명령줄 옵션으로 액세스 키 ID를 지정할 수는 없습니다.  

```
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
```

** `aws_account_id` **  
지원되는 AWS 서비스에 대한 호출에 사용할 AWS 계정 기반 엔드포인트 ID를 지정합니다. 계정 기반 엔드포인트에 대한 자세한 내용은 [계정 기반 엔드포인트](cli-configure-endpoints.md#endpoints-accountid) 섹션을 참조하시기 바랍니다.  
`AWS\$1ACCOUNT\$1ID` 환경 변수로 재정의할 수도 있습니다. 이 설정을 사용하려면 `AWS\$1ACCOUNT\$1ID\$1ENDPOINT\$1MODE` 환경 변수 또는 `account\$1id\$1endpoint\$1mode` 설정을 `preferred` 또는 `required`로 설정해야 합니다.  

```
aws_account_id = 123456789EXAMPLE
```
**엔드포인트 우선순위**  
엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. AWS CLI는 이러한 엔드포인트 설정을 특정 순서로 확인하고 우선순위가 가장 높은 엔드포인트 설정을 사용합니다. 엔드포인트 우선순위 목록은 [엔드포인트 구성 및 설정 우선 순위](cli-configure-endpoints.md#endpoints-precedence) 섹션을 참조하시기 바랍니다.

**`aws_secret_access_key`**  
명령 요청을 인증하기 위한 보안 인증의 일부로 사용되는 AWS 비밀 키를 지정합니다. 이 키는 `config` 파일에 저장될 수도 있지만, `credentials` 파일에 저장하는 것이 좋습니다.  
`AWS_SECRET_ACCESS_KEY` 환경 변수로 재정의할 수도 있습니다. 명령줄 옵션으로 보안 액세스 키를 지정할 수는 없습니다.  

```
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
```

**`aws_session_token`**  
AWS 세션 토큰을 지정합니다. 세션 토큰은 수동으로 임시 보안 보안 인증을 지정하는 경우에만 필요합니다. 이 키는 `config` 파일에 저장될 수도 있지만, `credentials` 파일에 저장하는 것이 좋습니다.  
`AWS_SESSION_TOKEN` 환경 변수로 재정의할 수도 있습니다. 명령줄 옵션으로 세션 토큰을 지정할 수는 없습니다.  

```
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
```

**`ca_bundle`**  
SSL 인증서를 확인하는 데 사용되는 CA 인증서 번들(확장자가 `.pem`인 파일)을 지정합니다.  
`AWS\$1CA\$1BUNDLE` 환경 변수나 `--ca-bundle` 명령줄 옵션으로 재정의할 수도 있습니다.  

```
ca_bundle = dev/apps/ca-certs/cabundle-2019mar05.pem
```

**`cli_follow_urlparam`**  
AWS CLI가 `http://` 또는 `https://`로 시작하는 명령줄 파라미터에서 URL 링크를 따르려고 하는지를 지정합니다. 활성화하면 검색된 콘텐츠가 URL 대신 파라미터 값으로 사용됩니다.  
+ **true** - 기본값입니다. 지정된 경우 `http://` 또는 `https://`로 시작하는 모든 문자열 파라미터를 가져오고 다운로드된 모든 콘텐츠가 해당 명령에 대한 파라미터 값으로 사용됩니다.
+ **false** – 지정된 경우 AWS CLI는 `http://` 또는 `https://`로 시작하는 파라미터 문자열 값을 다른 문자열과 다르게 취급하지 않습니다.
이 항목은 동등한 수준의 환경 변수나 명령줄 옵션을 가지고 있지 않습니다.  

```
cli_follow_urlparam = false
```

**`cli_history`**  
기본 설정은 “Disable”입니다. 이 설정은 AWS CLI에 대한 명령 기록을 활성화합니다. 이 설정을 활성화하면 AWS CLI에서 `aws` 명령 내역을 기록합니다.  

```
cli_history = enabled
```
기록을 나열하려면 `aws history list` 명령을 사용하고 세부 정보를 보려면 `aws history show` 명령에 결과 `command_ids`를 사용할 수 있습니다. 자세한 내용은 *AWS CLI 참조 가이드*의 [https://docs.aws.amazon.com/cli/v1/reference/history/index.html](https://docs.aws.amazon.com/cli/v1/reference/history/index.html) 섹션을 참조하세요.

**`cli_timestamp_format`**  
타임스탬프 값의 출력 형식을 지정합니다. 다른 값 중 하나를 지정할 수 있습니다.  
+ **iso8601** – AWS CLI 버전 2의 기본값입니다. 지정된 경우 AWS CLI는 [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)에 따라 출력에 있는 모든 타임스탬프의 형식을 변경합니다. ISO 8601 형식의 타임스탬프는 다음 예제와 같습니다. 다음 예시에서는 날짜 및 시간을 `T`로 구분하고 해당 시간 뒤에 `Z`를 포함하여 시간의 형식을 지정하는 방법을 보여줍니다.

  ```
  YYYY-MM-DDThh:mm:ssZ
  ```

  다음 예시에서는 이전 형식을 사용하는 타임스탬프를 보여줍니다.

  ```
  2024-05-08T15:16:43Z
  ```
+ **wire** – AWS CLI 버전 1의 기본값입니다. 지정된 경우 AWS CLI는 HTTP 쿼리 응답에서 수신된 것과 똑같이 모든 타임스탬프 값을 표시합니다.
이 설정은 동등한 수준의 환경 변수나 명령줄 옵션을 가지고 있지 않습니다. 이 설정은 타임스탬프 입력을 변경하지 않고 출력 형식만 변경합니다.  

```
cli_timestamp_format = iso8601
```

**`credential\$1process`**  
이 명령에서 사용할 인증 보안 인증을 생성 또는 수신하기 위해 AWS CLI가 실행하는 외부 명령을 지정합니다. 이 명령은 특정 형식으로 보안 인증을 반환해야 합니다. 이 설정을 사용하는 방법에 대한 자세한 내용은 [AWS CLI에서 외부 프로세스를 통해 자격 증명 소싱](cli-configure-sourcing-external.md) 섹션을 참조하세요.  
이 항목은 동등한 수준의 환경 변수나 명령줄 옵션을 가지고 있지 않습니다.  

```
credential_process = /opt/bin/awscreds-retriever --username susan
```

**`credential\$1source`**  
AWS CLI에서 `role_arn` 파라미터로 지정된 역할을 수임하는 데 사용하는 보안 인증을 찾을 수 있는 위치를 지정하기 위해 Amazon EC2 인스턴스 또는 컨테이너 내에서 사용됩니다. `source_profile`과 `credential_source` 모두를 동일한 프로파일에서 지정할 수 없습니다.  
이 파라미터는 다음 세 가지 값 중 하나를 가질 수 있습니다.  
+ **Environment** – AWS CLI가 환경 변수의 소스 보안 인증을 검색하도록 지정합니다.
+ **Ec2InstanceMetadata** – AWS CLI가 [EC2 인스턴스 프로파일](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)에 연결된 IAM 역할을 사용하여 소스 보안 인증을 가져오도록 지정합니다.
+ **EcsContainer** – AWS CLI가 ECS 컨테이너에 연결된 IAM 역할을 소스 보안 인증으로 사용하도록 지정합니다.

```
credential_source = Ec2InstanceMetadata
```

**`duration_seconds`**  
역할 세션의 최대 기간(초)을 지정합니다. 이 값의 범위는 900초(15분)부터 해당 역할에 대한 최대 세션 기간 설정(최대값: 43200초)까지 가능합니다. 이는 선택적 파라미터이며 기본적으로 값이 3600초로 설정됩니다.

**`endpoint_url`**  
모든 서비스 요청에 사용되는 엔드포인트를 지정합니다. `config` 파일의 [`services`](#cli-configure-files-format-services) 섹션에서 이 설정을 사용하면 엔드포인트가 지정된 서비스에 대해서만 사용됩니다. 자세한 내용은 [모든 AWS 서비스 서비스에 대한 글로벌 엔드포인트 설정](cli-configure-endpoints.md#endpoints-global) 섹션을 참조하세요.  
다음 예제에서는 Amazon S3에 대해 글로벌 엔드포인트 `http://localhost:1234` 및 서비스별 엔드포인트 `http://localhost:4567`를 사용합니다.  

```
[profile dev]
endpoint_url = http://localhost:1234
services = s3-specific

[services s3-specific]
s3 = 
  endpoint_url = http://localhost:4567
```
**엔드포인트 우선순위**  
엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. AWS CLI는 이러한 엔드포인트 설정을 특정 순서로 확인하고 우선순위가 가장 높은 엔드포인트 설정을 사용합니다. 엔드포인트 우선순위 목록은 [엔드포인트 구성 및 설정 우선 순위](cli-configure-endpoints.md#endpoints-precedence) 섹션을 참조하시기 바랍니다.

**`ignore_configure_endpoint_urls`**  
사용 설정된 경우 AWS CLI는 `config` 파일에 지정된 모든 사용자 지정 엔드포인트 구성을 무시합니다. 유효 값은 `true` 및 `false`입니다.  

```
ignore_configure_endpoint_urls = true
```
**엔드포인트 우선순위**  
엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. AWS CLI는 이러한 엔드포인트 설정을 특정 순서로 확인하고 우선순위가 가장 높은 엔드포인트 설정을 사용합니다. 엔드포인트 우선순위 목록은 [엔드포인트 구성 및 설정 우선 순위](cli-configure-endpoints.md#endpoints-precedence) 섹션을 참조하시기 바랍니다.

**`external\$1id`**  
타사에서 고객 계정의 역할을 수임하는 데 사용하는 고유한 식별자를 지정합니다. 이는 `ExternalId` 작업의 `AssumeRole` 파라미터로 매핑됩니다. 이 파라미터는 역할에 대한 신뢰 정책에서 `ExternalId`에 값을 지정하는 경우에만 필요합니다. 자세한 내용은 *IAM 사용 설명서*의 [AWS 리소스에 대한 액세스 권한을 서드 파티에 부여할 때 외부 ID를 사용하는 방법](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html)을 참조하세요.

**`max\$1attempts`**  
AWS CLI 재시도 핸들러에서 사용하는 최대 재시도 시도 횟수 값을 지정합니다. 여기서 초기 호출은 사용자가 제공한 `max_attempts` 값에 포함됩니다.  
`AWS_MAX_ATTEMPTS` 환경 변수를 사용하여 이 값을 재정의할 수 있습니다.  

```
max_attempts = 3
```

**`mfa\$1serial`**  
역할 수임 시 사용하는 MFA 디바이스의 식별 번호입니다. 이는 수임 중인 역할의 신뢰 정책에 MFA 인증을 필요로 하는 조건이 포함된 경우에만 필수입니다. 이 값은 하드웨어 디바이스용 일련 번호(예: `GAHT12345678`) 또는 가상 MFA 디바이스용 Amazon 리소스 이름(ARN)(예: `arn:aws:iam::123456789012:mfa/user`)일 수 있습니다.

**`output`**  
이 프로파일을 사용하여 요청된 명령의 기본 출력 형식을 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.  
+ **[`json`](cli-usage-output-format.md#json-output)** - 출력은 [JSON](https://json.org/) 문자열로 형식이 지정됩니다.
+ **[`text`](cli-usage-output-format.md#text-output)** - 출력은 여러 줄의 탭으로 구분된 문자열 값으로 형식이 지정됩니다. 출력을 `grep`, `sed` 또는 `awk`와 같은 텍스트 프로세서로 전달하는 데 사용할 수 있습니다.
+ **[`table`](cli-usage-output-format.md#table-output)** - 출력은 셀 테두리를 형성하기 위해 \$1\$1- 문자를 사용하여 표로 형식이 지정됩니다. 일반적으로 읽기는 쉽지만 프로그래밍 방식으로는 유용하지 않은 ‘인간 친화적’ 형식으로 정보를 표시합니다.
`AWS_DEFAULT_OUTPUT` 환경 변수나 `--output` 명령줄 옵션으로 재정의할 수도 있습니다.  

```
output = table
```

**`parameter_validation`**  
AWS CLI 클라이언트가 AWS 서비스 엔드포인트에 전달하기 전에 파라미터를 검증할지 여부를 지정합니다.  
+ **true** - 기본값입니다. 지정된 경우 AWS CLI는 명령줄 파라미터를 로컬로 검증합니다.
+ **false** – 지정된 경우 AWS CLI는 AWS 서비스 엔드포인트에 전달하기 전에 명령줄 파라미터를 검증하지 않습니다.
이 항목은 동등한 수준의 환경 변수나 명령줄 옵션을 가지고 있지 않습니다.  

```
parameter_validation = false
```

**`region`**  
이 프로파일을 사용하여 요청된 명령에서 요청을 전송할 AWS 리전을 지정합니다.  
+ *Amazon Web Services 일반 참조*의 [AWS 리전 및 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html)에 나열된 대로 선택한 서비스에서 사용할 수 있는 모든 리전 코드를 지정할 수 있습니다.
+ `aws_global`을 사용하면 리전 엔드포인트 외에 AWS Security Token Service (AWS STS) 및 Amazon Simple Storage Service(Amazon S3)와 같이 글로벌 엔드포인트를 지원하는 서비스에 글로벌 엔드포인트를 지정할 수 있습니다.
, `AWS_DEFAULT_REGION` 환경 변수 또는 `--region` 명령줄 옵션을 사용하여 이 값을 재정의할 수 있습니다.  

```
region = us-west-2
```

**`request_checksum_calculation`**  
요청 페이로드에 대한 체크섬이 계산되는 시기를 지정하며, 다음과 같은 옵션이 있습니다.  
+ `when_supported` – **(기본값)** 요청 페이로드 체크섬은 작업이 서비스 모델에서 체크섬 알고리즘을 지정하거나 요청 체크섬이 필요할 때 계산됩니다.
+ `when_required` - 요청 페이로드 체크섬은 작업에 요청 체크섬이 필요하거나 사용자가 AWS 서비스에서 모델링한 `requestAlgorithmMember`를 제공할 때 계산됩니다.

```
request_checksum_calculation = when_supported
```
환경 변수 [`AWS_REQUEST_CHECKSUM_CALCULATION`](cli-configure-envvars.md#envvars-list-AWS_REQUEST_CHECKSUM_CALCULATION)이 이 설정을 재정의합니다.

**`response_checksum_validation`**  
응답 페이로드에 대한 체크섬 검증이 수행되는 시기를 지정하며, 다음과 같은 옵션이 있습니다.  
+ `when_supported` – **(기본값)** 응답 페이로드 체크섬 검증은 작업이 AWS CLI가 지원하는 서비스 모델에서 응답 알고리즘을 지정할 때 수행됩니다.
+ `when_required` – 응답 페이로드 체크섬 검증은 작업이 AWS CLI가 지원하는 서비스 모델에서 응답 알고리즘을 지정하고 작업 입력에서 모델링된 `requestValidationModeMember`를 `ENABLED`로 설정할 때 수행됩니다.

```
response_checksum_validation = when_supported
```
환경 변수 [`AWS_RESPONSE_CHECKSUM_VALIDATION`](cli-configure-envvars.md#envvars-list-AWS_RESPONSE_CHECKSUM_VALIDATION)이 이 설정을 재정의합니다.

**`retry\$1mode`**  
AWS CLI에 사용될 재시도 모드를 지정합니다. `standard`, `legacy`(기본값) 및 `adaptive`, 이렇게 3가지 재시도 모드를 사용할 수 있습니다. 재시도에 대한 자세한 내용은 [AWS CLI에서 AWS CLI 재시도](cli-configure-retries.md)을 참조하세요.  
`AWS_RETRY_MODE` 환경 변수를 사용하여 이 값을 재정의할 수 있습니다.  

```
retry_mode = standard
```

**`role\$1arn`**  
AWS CLI 명령을 실행하는 데 사용할 IAM 역할의 Amazon 리소스 이름(ARN)을 지정합니다. 또한 다음 파라미터 중 하나를 지정하여 이 역할을 수임할 수 있는 권한이 있는 보안 인증을 식별해야 합니다.  
+ source\$1profile
+ credential\$1source

```
role_arn = arn:aws:iam::123456789012:role/role-name
```
환경 변수 [`AWS_ROLE_ARN`](cli-configure-envvars.md#envvars-list-AWS_ROLE_ARN)이 이 설정을 재정의합니다.  
웹 보안 인증 사용에 대한 자세한 내용은 [웹 자격 증명을 사용한 역할 수임](cli-configure-role.md#cli-configure-role-oidc) 단원을 참조하세요.

**`role\$1session\$1name`**  
역할 세션에 연결할 이름을 지정합니다. 이 값은 `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`](cli-configure-envvars.md#envvars-list-AWS_ROLE_SESSION_NAME)이 이 설정을 재정의합니다.  
웹 보안 인증 사용에 대한 자세한 내용은 [웹 자격 증명을 사용한 역할 수임](cli-configure-role.md#cli-configure-role-oidc) 섹션을 참조하세요.

**`services`**  
프로파일에 사용할 서비스 구성을 지정합니다.  

```
[profile dev-s3-specific-and-global]
endpoint_url = http://localhost:1234
services = s3-specific

[services s3-specific]
s3 = 
  endpoint_url = http://localhost:4567
```
`services` 섹션에 대한 자세한 내용은 [섹션 유형: `services`](#cli-configure-files-format-services)을 참조하세요.  
환경 변수 [`AWS_ROLE_SESSION_NAME`](cli-configure-envvars.md#envvars-list-AWS_ROLE_SESSION_NAME)이 이 설정을 재정의합니다.  
웹 보안 인증 사용에 대한 자세한 내용은 [웹 자격 증명을 사용한 역할 수임](cli-configure-role.md#cli-configure-role-oidc) 섹션을 참조하세요.

**`sdk_ua_app_id`**  
여러 고객 애플리케이션에서 단일 AWS 계정을 사용하여 AWS 서비스를 호출할 수 있습니다. 애플리케이션 ID는 어떤 소스 애플리케이션이 AWS 서비스를 사용하여 일련의 호출을 수행했는지 식별합니다. AWS SDK와 서비스는 이 값을 고객 커뮤니케이션에 다시 표시하는 것 외에는 이 값을 사용하거나 해석하지 않습니다. 예를 들어, 이 값을 운영 이메일에 포함시켜 알림과 관련된 애플리케이션을 고유하게 식별할 수 있습니다.  
애플리케이션 ID는 최대 길이가 50자인 문자열입니다. 문자, 숫자 및 `! $ % & * + - . , ^ _ ` | ~` 등의 특수 문자가 허용됩니다. 기본적으로 값이 할당되지 않습니다.  

```
sdk_ua_app_id = prod1
```
[`AWS_SDK_UA_APP_ID`](cli-configure-envvars.md#envvars-list-AWS_SDK_UA_APP_ID) 환경 변수를 사용하여 이 설정을 덮어쓸 수 있습니다. 이 값은 명령줄 파라미터로 설정할 수 없습니다.

**`sigv4a_signing_region_set`**  
쉼표로 구분된 목록을 사용하여 SigV4a로 서명할 때 사용할 리전을 지정합니다. 이 변수가 설정되지 않은 경우 AWS CLI는 AWS 서비스에서 사용하는 기본값을 사용합니다. AWS 서비스에 기본값이 없는 경우 `*` 값을 사용하여 모든 리전에서 요청 서명이 유효합니다.  

```
sigv4a_signing_region_set = us-west-2, us-east-1
```
SigV4a에 대한 자세한 내용은 *IAM 사용 설명서*의 [AWS Signature Version 4 for API 요청](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)을 참조하세요.  
[`AWS_SIGV4A_SIGNING_REGION_SET`](cli-configure-envvars.md#envvars-list-AWS_SIGV4A_SIGNING_REGION_SET) 환경 변수를 사용하여 이 설정을 덮어쓸 수 있습니다. 이 값은 명령줄 파라미터로 설정할 수 없습니다.

**`source\$1profile`**  
AWS CLI에서 `role_arn` 파라미터로 지정한 역할을 수임하는 데 사용할 수 있는 장기 보안 인증으로 명명된 프로파일을 지정합니다. `source_profile`과 `credential_source` 모두를 동일한 프로파일에서 지정할 수 없습니다.  

```
source_profile = production-profile
```

**`sts_regional_endpoints`**  
AWS CLI에서 AWS 클라이언트가 AWS CLI(AWS Security Token Service)와 통신하는 데 사용하는 AWS STS 서비스 엔드포인트를 결정하는 방법을 지정합니다. AWS CLI 버전 1의 기본값은 `legacy`입니다.  
다음 두 값 중 하나를 지정할 수 있습니다.  
+ **`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.amazonaws.com` 대신 리전 엔드포인트 `sts.us-west-2.amazonaws.com`에 대해 전송됩니다. 이 설정이 활성화된 상태에서 전역 엔드포인트에 요청을 보내려면 Region을 `aws-global`로 설정하면 됩니다.
`AWS_STS_REGIONAL_ENDPOINTS` 환경 변수를 사용하여 이 설정을 덮어쓸 수 있습니다. 이 값은 명령줄 파라미터로 설정할 수 없습니다.

**`use_dualstack_endpoint`**  
이중 스택 엔드포인트를 사용하여 AWS 요청을 보내도록 설정합니다. *IPv4 및 IPv6 트래픽을 모두 지원하는 이중 스택 엔드포인트에 대한 자세한 내용은 Amazon 심플 스토리지 서비스 사용 설명서*의 [Amazon S3 이중 스택 엔드포인트](https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html) 사용을 참조하세요. 이중 스택 엔드포인트는 일부 리전에 사용할 수 있는 서비스입니다. 서비스 또는 AWS 리전에 대한 이중 스택 엔드포인트가 없는 경우 요청이 실패합니다. 유효한 설정은 `true` 및 `false`입니다. 이 옵션은 기본적으로 비활성화되어 있습니다. 자세한 내용은 [모든 AWS 서비스에 이중 스택 엔드포인트를 사용하도록 설정](cli-configure-endpoints.md#endpoints-dual-stack) 섹션을 참조하세요.  
 이 옵션은 `use_accelerate_endpoint` 설정에서 함께 사용할 수 없습니다.  
**엔드포인트 우선순위**  
엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. AWS CLI는 이러한 엔드포인트 설정을 특정 순서로 확인하고 우선순위가 가장 높은 엔드포인트 설정을 사용합니다. 엔드포인트 우선순위 목록은 [엔드포인트 구성 및 설정 우선 순위](cli-configure-endpoints.md#endpoints-precedence) 섹션을 참조하시기 바랍니다.

**`use_fips_endpoint`**  
일부 AWS 서비스는 일부 AWS 리전에서 [FIPS(Federal Information Processing Standard) 140-2](https://aws.amazon.com/compliance/fips/)를 지원하는 엔드포인트를 제공합니다. AWS 서비스에서 FIPS를 지원하는 경우 이 설정은 AWS CLI에서 사용해야 하는 FIPS 엔드포인트를 지정합니다. 표준 AWS 엔드포인트와 달리 FIPS 엔드포인트에서는 FIPS 140-2를 준수하는 TLS 소프트웨어 라이브러리를 사용합니다. 이러한 엔드포인트는 미국 정부와 상호 작용하는 기업에 필요할 수 있습니다. 자세한 내용은 [모든 AWS 서비스에 FIPS 엔드포인트를 사용하도록 설정](cli-configure-endpoints.md#endpoints-fips) 단원을 참조하십시오.  
이 설정이 활성화되어 있지만 해당 서비스에 대한 FIPS 엔드포인트가 AWS 리전에 없는 경우 AWS 명령이 실패할 수 있습니다. 이 경우 `--endpoint-url` 옵션을 사용하여 명령에 사용할 엔드포인트를 수동으로 지정하거나 [서비스별 엔드포인트](cli-configure-endpoints.md#endpoints-service-specific)를 사용합니다.  
**엔드포인트 우선순위**  
엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. AWS CLI는 이러한 엔드포인트 설정을 특정 순서로 확인하고 우선순위가 가장 높은 엔드포인트 설정을 사용합니다. 엔드포인트 우선순위 목록은 [엔드포인트 구성 및 설정 우선 순위](cli-configure-endpoints.md#endpoints-precedence) 섹션을 참조하시기 바랍니다.

**`web\$1identity\$1token\$1file`**  
보안 인증 공급자가 제공하는 OAuth 2.0 액세스 토큰 또는 OpenID Connect ID 토큰을 포함하는 파일의 경로를 지정합니다. AWS CLI에서 이 파일의 내용을 로드하고 해당 파일을 `WebIdentityToken` 작업에 대한 `AssumeRoleWithWebIdentity` 인수로 전달합니다.  
환경 변수 `AWS\$1WEB\$1IDENTITY\$1TOKEN\$1FILE`이 이 설정을 재정의합니다.  
웹 보안 인증 사용에 대한 자세한 내용은 [웹 자격 증명을 사용한 역할 수임](cli-configure-role.md#cli-configure-role-oidc) 섹션을 참조하세요.

**`tcp_keepalive`**  
AWS CLI 클라이언트가 TCP keep-alive 패킷을 사용할 것인지 여부를 지정합니다.  
이 항목은 동등한 수준의 환경 변수나 명령줄 옵션을 가지고 있지 않습니다.  

```
tcp_keepalive = false
```

### S3 사용자 지정 명령 설정
<a name="cli-configure-files-s3"></a>

Amazon S3는 AWS CLI에서 Amazon S3 작업을 수행하는 방법을 구성하는 몇 가지 설정을 지원합니다. 일부 설정은 `s3api` 및`s3` 네임스페이스의 모든 S3 명령에 적용됩니다. 다른 설정은 특별히 공통 작업을 추상화하고 API 작업에 대한 일대일 매핑을 한 번 이상 수행하는 S3 "사용자 지정" 명령을 위한 것입니다. `aws s3` 이전 명령인 `cp`, `sync`, `mv` 및 `rm`에는 S3 이전을 제어하는 데 사용할 수 있는 추가 설정이 있습니다.

이러한 옵션은 모두 `s3` 파일에서 `config` 중첩 설정을 지정하여 구성할 수 있습니다. 각 설정은 자체의 줄에서 들여쓰기가 됩니다.

**참고**  
이러한 설정은 전적으로 선택 사항입니다. 이러한 설정을 구성하지 않고도 `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`이라고 하는 방식으로 호스트 이름의 일부로 버킷 이름을 포함하고 있습니다. 예를 들면 `https://bucketname.s3.amazonaws.com`입니다. 아니면 `path` 방식을 사용하여 마치 URI의 경로인 것처럼 버킷 이름을 취급합니다(예: `https://s3.amazonaws.com/bucketname`). CLI은 `auto`를 사용하도록 기본 설정되어 있는데, 가능한 경우 `virtual` 방식을 사용하되, 필요할 때는 `path` 방식으로 돌아갑니다. 예를 들어 DNS를 준수하지 않은 버킷 이름은 호스트 이름의 일부가 될 수 없고 해당 경로에 있어야 합니다. `auto`에서는 CLI가 이 조건을 탐지하여 사용자를 대신해 `path` 방식으로 자동 전환합니다. 주소 지정 방식을 `path`로 설정한 경우에는 AWS에서 구성한 AWS CLI 리전이 버킷의 리전과 일치하는지 확인해야 합니다.

**`payload_signing_enabled`**  
SHA256이 sigv4 페이로드를 서명하는지 여부를 지정합니다. HTTPS를 사용할 때 업로드(`UploadPart` 및 `PutObject`)를 스트리밍하기 위해 기본적으로 이 옵션이 비활성화되어 있습니다. 업로드(`false` 및 `UploadPart`) 스트리밍을 위해 이 값이 기본적으로 `PutObject`로 설정됩니다. 단, `ContentMD5`가 존재하고(기본적으로 생성) 엔드포인트가 HTTPS를 사용하는 경우에 한합니다.  
true로 설정되어 있는 경우, S3 요청은 사용자를 위해 계산되어 요청 서명에 포함되어 있는 SHA256 체크섬의 형태로 추가적인 내용 확인을 받게 됩니다. false로 설정되어 있는 경우에는 체크섬이 계산되지 않습니다. 이 옵션을 비활성화하는 것이 체크섬 계산에서 생성된 성능 오버헤드를 줄이는 데 유용할 수 있습니다.

**`use_accelerate_endpoint`**  
모든 `s3` 및 `s3api` 명령에서 Amazon S3 Accelerate 엔드포인트를 사용합니다. 기본값은 false입니다. 이 옵션은 `use_dualstack_endpoint` 설정에서 함께 사용할 수 없습니다.  
true로 설정하는 경우 AWS CLI는 모든 Amazon S3 요청을 `S3 Accelerate`의 `s3-accelerate.amazonaws.com` 엔드포인트로 전달됩니다. 이 엔드포인트를 사용하려면 버킷에서 `S3 Accelerate`를 사용하도록 활성화해야 합니다. 모든 요청은 가상의 버킷 주소 지정 방식(`my-bucket.s3-accelerate.amazonaws.com`)을 사용하여 전송됩니다. 엔드포인트에서 이러한 작업을 지원하지 않기 때문에 어떤 `ListBuckets`, `CreateBucket` 및 `DeleteBucket ` 요청도 S3 가속 엔드포인트로 전송되지 않습니다. `--endpoint-url` 또는 `https://s3-accelerate.amazonaws.com` 명령에서 `http://s3-accelerate.amazonaws.com` 파라미터가 `s3` 또는 `s3api`으로 설정되어 있는 경우에는 이 동작도 설정할 수 있습니다.

**`use_dualstack_endpoint`**  
이중 스택 엔드포인트를 사용하여 `s3` 및 `s3api` 요청을 보내도록 사용 설정합니다. *IPv4 및 IPv6 트래픽을 모두 지원하는 이중 스택 엔드포인트에 대한 자세한 내용은 Amazon 심플 스토리지 서비스 사용 설명서*의 [Amazon S3 이중 스택 엔드포인트](https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html) 사용을 참조하세요. 이중 스택 엔드포인트는 일부 리전에 사용할 수 있는 서비스입니다. 서비스 또는 AWS 리전에 대한 이중 스택 엔드포인트가 없는 경우 요청이 실패합니다. 유효한 설정은 `true` 및 `false`입니다. 이 옵션은 기본적으로 비활성화되어 있습니다. 자세한 내용은 [모든 AWS 서비스에 이중 스택 엔드포인트를 사용하도록 설정](cli-configure-endpoints.md#endpoints-dual-stack) 섹션을 참조하세요.  
 이 옵션은 `use_accelerate_endpoint` 설정에서 함께 사용할 수 없습니다.

다음 설정은 `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 이전을 완료하는 데 소요되는 시간을 줄일 수 있습니다.

**`max_queue_size`**  
작업 대기열의 최대 작업 수를 지정합니다. 기본값은 1000입니다.  
AWS CLI는 내부적으로 Amazon S3 태스크를 대기열에 추가한 후 소비자를 통해 작업을 실행하는 모델을 사용합니다. 태스크 수는 `max_concurrent_requests`로 제한됩니다. 태스크는 보통 단일 Amazon S3 작업에 매핑됩니다. 예를 들어 작업은 `PutObjectTask`, `GetObjectTask` 또는 `UploadPartTask`가 될 수 있습니다. 작업이 대기열에 추가되는 속도는 소비자가 작업을 완료하는 속도보다 훨씬 빠를 수 있습니다. 무한 증가를 피하기 위해 작업 대기열 크기가 특정 크기로 제한됩니다. 이 설정은 최대 크기의 값을 변경합니다.  
일반적으로 이 설정을 변경할 필요는 없습니다. 또한 이 설정은 AWS CLI가 실행이 필요하다고 인식하고 있는 태스크 수에 해당됩니다. 이는 곧 AWS CLI가 기본적으로 1,000건의 태스크만 미리 볼 수 있다는 것을 의미합니다. 이 값을 늘리면 AWS CLI에서 대기열 저장 속도가 태스크 완료 속도보다 빠르다는 가정하에 필요한 총 태스크 수를 보다 신속하게 알 수 있습니다. max\$1queue\$1size가 커질수록 메모리가 더 필요하게 된다는 단점이 있습니다.

**`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 멀티파트 업로드 설명서](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html)를 참조하세요.

# AWS CLI에 대한 환경 변수 구성
<a name="cli-configure-envvars"></a>

환경 변수는 구성 옵션과 보안 인증을 지정하는 또 다른 방법을 제공하며 스크립팅에 유용할 수 있습니다.

**옵션의 우선 순위**
+ 이 주제에 설명된 환경 변수 중 하나를 사용하여 옵션을 지정할 경우, 구성 파일의 프로파일에서 로드된 값을 재정의합니다.
+ AWS CLI 명령줄에서 파라미터를 사용하여 옵션을 지정할 경우, 구성 파일에서 해당하는 환경 변수 또는 프로파일의 값을 재정의합니다.

우선 순위 및 AWS CLI에서 사용할 보안 인증을 결정하는 방법에 대한 자세한 내용은 [AWS CLI 설정 구성](cli-chap-configure.md) 섹션을 참조하세요.

**Topics**
+ [환경 변수를 설정하는 방법](#envvars-set)
+ [AWS CLI 지원되는 환경 변수](#envvars-list)

## 환경 변수를 설정하는 방법
<a name="envvars-set"></a>

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

------
#### [ 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
```

환경 변수를 설정하는 데 [https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setx)를 사용하면 현재 명령 프롬프트 세션과 명령 실행 후 생성한 모든 명령 프롬프트 세션에서 사용되는 값이 변경됩니다. 명령을 실행하는 시점에 이미 실행 중인 다른 명령 쉘에는 영향을 주지 ****않습니다**. 설정을 로드하려면 터미널을 다시 시작해야 할 수 있습니다.

**현재 세션에만 설정하려면**

환경 변수를 설정하는 데 `[set](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)`을 사용하면 사용되는 값이 변경되어 현재 명령 프롬프트 세션이 종료될 때까지 또는 변수를 다른 값으로 설정할 때까지 유지됩니다.

```
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 설명서](https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_environment_variables)를 참조하세요.

------

## AWS CLI 지원되는 환경 변수
<a name="envvars-list"></a>

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

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

**`AWS_ACCOUNT_ID`**  
지원되는 AWS 서비스에 대한 호출에 사용할 AWS 계정 기반 엔드포인트 ID를 지정합니다. 계정 기반 엔드포인트에 대한 자세한 내용은 [계정 기반 엔드포인트](cli-configure-endpoints.md#endpoints-accountid) 섹션을 참조하시기 바랍니다.  
이 설정은 `aws\$1account\$1id` 설정을 재정의합니다. 이 설정을 사용하려면 `AWS\$1ACCOUNT\$1ID\$1ENDPOINT\$1MODE` 환경 변수 또는 `account\$1id\$1endpoint\$1mode` 설정을 `preferred` 또는 `required`로 설정해야 합니다.  
**엔드포인트 우선순위**  
엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. AWS CLI는 이러한 엔드포인트 설정을 특정 순서로 확인하고 우선순위가 가장 높은 엔드포인트 설정을 사용합니다. 엔드포인트 우선순위 목록은 [엔드포인트 구성 및 설정 우선 순위](cli-configure-endpoints.md#endpoints-precedence) 섹션을 참조하시기 바랍니다.

**`AWS_ACCOUNT_ID_ENDPOINT_MODE`**  
지원되는 AWS 서비스에 대한 호출에 AWS 계정 기반 엔드포인트 ID를 사용할지 여부를 지정합니다. 계정 기반 엔드포인트에 대한 자세한 내용은 [계정 기반 엔드포인트](cli-configure-endpoints.md#endpoints-accountid) 섹션을 참조하시기 바랍니다.  
이 설정에서는 다음을 설정할 수 있습니다.  
+ **(기본값)** **`preferred`** - 엔드포인트에는 사용 가능한 경우 계정 ID가 포함되어야 합니다.
+ **`disabled`** - 확인된 엔드포인트에는 계정 ID가 포함되지 않습니다.
+ **`required`** - 엔드포인트에는 계정 ID가 포함되어야 합니다. 계정 ID를 사용할 수 없는 경우 SDK에서 오류가 발생합니다.
이 설정은 `account\$1id\$1endpoint\$1mode` 설정을 재정의합니다. 계정 기반 엔드포인트를 사용하려면 `AWS\$1ACCOUNT\$1ID` 환경 변수 또는 `aws\$1account\$1id` 설정에서 ID를 설정해야 합니다.  
**엔드포인트 우선순위**  
엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. AWS CLI는 이러한 엔드포인트 설정을 특정 순서로 확인하고 우선순위가 가장 높은 엔드포인트 설정을 사용합니다. 엔드포인트 우선순위 목록은 [엔드포인트 구성 및 설정 우선 순위](cli-configure-endpoints.md#endpoints-precedence) 섹션을 참조하시기 바랍니다.

**`AWS_CA_BUNDLE`**  
HTTPS 인증서 확인에 사용할 인증서 번들의 경로를 지정합니다.  
정의된 경우 이 환경 변수는 `ca\$1bundle` 프로파일 설정 값을 재정의합니다. `--ca-bundle` 명령줄 파라미터를 사용하여 이 환경 변수를 재정의할 수 있습니다.

**`AWS_CLI_HISTORY_FILE`**  
`cli_history` 기능이 활성화된 경우 명령 기록을 저장하기 위한 기본 위치를 재정의합니다. 기본 경로는 `~/.aws/cli/history/history.db`입니다. 이 변수를 사용하여 대체 스토리지 위치를 지정할 수 있습니다.

**`AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS`**  
`s3 mv` 명령을 사용할 때 소스 버킷과 대상 버킷이 동일한 경우 소스 파일이나 객체를 그 자체로 옮길 수 있어 실수로 소스 파일이나 객체가 삭제될 수 있습니다. `AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS` 환경 변수 및 `--validate-same-s3-paths` 옵션은 Amazon S3 소스 또는 대상 URI에서 액세스 포인트 ARN 또는 액세스 포인트 별칭의 유효성을 검사할지 여부를 지정합니다.  
`s3 mv`에 대한 경로 유효성 검사에는 추가 API 호출이 필요합니다.

**`AWS_CLI_UPGRADE_DEBUG_MODE`**  
AWS CLI v1에서 AWS CLI v2로의 업그레이드를 안내하는 업그레이드 디버그 모드를 활성화합니다. 유효 값은 `true` 및 `false`입니다.  
`true`로 설정하면 AWS CLI는 AWS CLI v2의 주요 변경 사항으로 업데이트된 기능의 사용을 감지하고 잠재적으로 영향을 받을 수 있는 감지된 각 사용량에 대한 경고를 출력합니다. 이 모드를 사용하여 v2로 업그레이드하기 위한 환경 및 AWS CLI 사용을 준비할 수 있습니다.  
`--v2-debug` 명령줄 파라미터를 사용하여 이 환경 변수를 재정의할 수 있습니다.  
AWS CLI v1-to-v2 업그레이드 디버그 모드에 대한 자세한 내용은 [업그레이드 디버그 모드를 사용하여 AWS CLI 버전 1을 AWS CLI 버전 2로 업그레이드](https://docs.aws.amazon.com/cli/latest/userguide/cli-upgrade-debug-mode.html)를 참조하세요.

**`AWS_CONFIG_FILE`**  
AWS CLI에서 구성 프로파일을 저장하는 데 사용하는 파일의 위치를 지정합니다. 기본 경로는 `~/.aws/config`입니다.  
명명된 프로파일 설정에서 또는 명령줄 파라미터를 사용하여 이 값을 지정할 수 없습니다.

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

**`AWS_DEFAULT_OUTPUT`**  
사용할 [출력 형식](cli-usage-output.md)을 지정합니다.  
정의된 경우 이 환경 변수는 `output` 프로파일 설정 값을 재정의합니다. `--output` 명령줄 파라미터를 사용하여 이 환경 변수를 재정의할 수 있습니다.

**`AWS_DEFAULT_REGION`**  
`Default region name`은 기본적으로 요청을 전송할 서버가 있는 AWS 리전을 식별합니다. 이 리전은 일반적으로 가장 가까운 리전이지만 어떤 리전이든 될 수 있습니다. 예를 들어 미국 서부(오레곤)를 사용하려면 `us-west-2`를 입력하면 됩니다. 개별 명령으로 달리 지정하지 않는 한 이후의 모든 요청이 전송되는 리전입니다.  
AWS를 사용하여 명시적으로 또는 기본 리전을 설정하여 AWS CLI 리전을 지정해야 합니다. 사용 가능한 리전 목록은 [리전 및 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html)를 참조하세요. AWS CLI에서 사용하는 리전 표기는 AWS Management Console URL 및 서비스 엔드포인트에서 사용하는 것과 동일한 이름입니다.
정의된 경우 이 환경 변수는 `region` 프로파일 설정 값을 재정의합니다. `--region` 명령줄 파라미터를 사용하여 이 환경 변수를 재정의할 수 있습니다.

**`AWS_EC2_METADATA_DISABLED`**  
Amazon EC2 인스턴스 메타데이터 서비스(IMDS)사용을 비활성화합니다.  
true로 설정하면 IMDS에서 사용자 보안 인증 또는 구성(예: 리전)을 요청하지 않습니다.

**`AWS_ENDPOINT_URL`**  
모든 서비스 요청에 사용되는 엔드포인트를 지정합니다. 자세한 내용은 [모든 AWS 서비스 서비스에 대한 글로벌 엔드포인트 설정](cli-configure-endpoints.md#endpoints-global) 섹션을 참조하세요.  
**엔드포인트 우선순위**  
엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. AWS CLI는 이러한 엔드포인트 설정을 특정 순서로 확인하고 우선순위가 가장 높은 엔드포인트 설정을 사용합니다. 엔드포인트 우선순위 목록은 [엔드포인트 구성 및 설정 우선 순위](cli-configure-endpoints.md#endpoints-precedence) 섹션을 참조하시기 바랍니다.

**`AWS_ENDPOINT_URL_<SERVICE>`**  
특정 서비스에 사용되는 사용자 지정 엔드포인트를 지정하며, 여기서 `<SERVICE>`가 AWS 서비스 식별자로 대체됩니다. 예를 들어 Amazon DynamoDB의 `serviceId`는 [https://github.com/boto/botocore/blob/bcaf618c4b93c067efa0b85d3e92f3985ff60906/botocore/data/dynamodb/2012-08-10/service-2.json#L10](https://github.com/boto/botocore/blob/bcaf618c4b93c067efa0b85d3e92f3985ff60906/botocore/data/dynamodb/2012-08-10/service-2.json#L10)입니다. 이 서비스의 경우 엔드포인트 URL 환경 변수는 `AWS_ENDPOINT_URL_DYNAMODB`입니다.  
모든 서비스별 환경 변수 목록은 [서비스별 식별자 목록](cli-configure-endpoints.md#endpoints-service-specific-table)을 참조하세요.  
**엔드포인트 우선순위**  
엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. AWS CLI는 이러한 엔드포인트 설정을 특정 순서로 확인하고 우선순위가 가장 높은 엔드포인트 설정을 사용합니다. 엔드포인트 우선순위 목록은 [엔드포인트 구성 및 설정 우선 순위](cli-configure-endpoints.md#endpoints-precedence) 섹션을 참조하시기 바랍니다.

**`AWS_IGNORE_CONFIGURED_ENDPOINT_URLS`**  
활성화하면 AWS CLI는 모든 사용자 지정 엔드포인트 구성을 무시합니다. 유효 값은 `true` 및 `false`입니다. 자세한 내용은 [모든 AWS 서비스 서비스에 대한 글로벌 엔드포인트 설정](cli-configure-endpoints.md#endpoints-global) 섹션을 참조하세요.  
엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. 엔드포인트 우선순위는 [엔드포인트 구성 및 설정 우선 순위](cli-configure-endpoints.md#endpoints-precedence) 섹션을 참조하시기 바랍니다.  
**엔드포인트 우선순위**  
엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. AWS CLI는 이러한 엔드포인트 설정을 특정 순서로 확인하고 우선순위가 가장 높은 엔드포인트 설정을 사용합니다. 엔드포인트 우선순위 목록은 [엔드포인트 구성 및 설정 우선 순위](cli-configure-endpoints.md#endpoints-precedence) 섹션을 참조하시기 바랍니다.

**[`AWS_MAX_ATTEMPTS`](cli-configure-files.md#cli-config-max_attempts)**  
AWS CLI 재시도 핸들러에서 사용하는 최대 재시도 횟수 값을 지정합니다. 여기서 초기 호출은 사용자가 제공한 값에 포함됩니다. 재시도에 대한 자세한 내용은 [AWS CLI에서 AWS CLI 재시도](cli-configure-retries.md)을 참조하세요.  
정의된 경우 이 환경 변수는 프로파일 설정 `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_PROFILE`](cli-configure-files.md#cli-configure-files-using-profiles)**  
사용할 보안 인증 정보와 옵션이 있는 AWS CLI 프로파일의 이름을 지정합니다. 이 이름은 `credentials` 또는 `config` 파일에 저장된 프로필 이름이거나 기본 프로필을 사용할 값 `default`일 수 있습니다.  
정의된 경우 이 환경 변수는 구성 파일에서 `[default]`라는 프로파일을 사용할 때의 동작을 재정의합니다. `--profile` 명령줄 파라미터를 사용하여 이 환경 변수를 재정의할 수 있습니다.

**`AWS_REQUEST_CHECKSUM_CALCULATION`**  
요청 페이로드에 대한 체크섬이 계산되는 시기를 지정하며, 다음과 같은 옵션이 있습니다.  
+ `when_supported` – **(기본값)** 요청 페이로드 체크섬은 작업이 서비스 모델에서 체크섬 알고리즘을 지정하거나 요청 체크섬이 필요할 때 계산됩니다.
+ `when_required` - 요청 페이로드 체크섬은 작업에 요청 체크섬이 필요하거나 사용자가 AWS 서비스에서 모델링한 `requestAlgorithmMember`를 제공할 때 계산됩니다.
정의된 경우 이 환경 변수는 프로필 설정 [`request_checksum_calculation`](cli-configure-files.md#cli-config-request_checksum_calculation) 값을 재정의합니다.

**`AWS_RESPONSE_CHECKSUM_VALIDATION`**  
응답 페이로드에 대한 체크섬 검증이 수행되는 시기를 지정하며, 다음과 같은 옵션이 있습니다.  
+ `when_supported` – **(기본값)** 응답 페이로드 체크섬 검증은 작업이 AWS CLI가 지원하는 서비스 모델에서 응답 알고리즘을 지정할 때 수행됩니다.
+ `when_required` – 응답 페이로드 체크섬 검증은 작업이 AWS CLI가 지원하는 서비스 모델에서 응답 알고리즘을 지정하고 작업 입력에서 모델링된 `requestValidationModeMember`를 `ENABLED`로 설정할 때 수행됩니다.
정의된 경우 이 환경 변수는 프로필 설정 [`response_checksum_validation`](cli-configure-files.md#cli-config-response_checksum_validation) 값을 재정의합니다.

**[`AWS_RETRY_MODE`](cli-configure-files.md#cli-config-retry_mode)**  
AWS CLI에 사용될 재시도 모드를 지정합니다. 레거시(기본값), 표준 및 적응형, 이렇게 3가지 재시도 모드를 사용할 수 있습니다. 재시도에 대한 자세한 내용은 [AWS CLI에서 AWS CLI 재시도](cli-configure-retries.md)을 참조하세요.  
정의된 경우 이 환경 변수는 프로파일 설정 `retry_mode` 값을 재정의합니다.

**`AWS_ROLE_ARN`**  
AWS CLI 명령을 실행하는 데 사용할 IAM 역할(웹 보안 인증 공급자 포함)의 Amazon 리소스 이름(ARN)을 지정합니다.  
`AWS_WEB_IDENTITY_TOKEN_FILE` 및 `AWS_ROLE_SESSION_NAME` 환경 변수와 함께 사용됩니다.  
정의된 경우 이 환경 변수는 프로파일 설정 [`role_arn`](cli-configure-files.md#cli-config-role_arn) 값을 재정의합니다. 명령줄 파라미터로 역할 세션 이름을 지정할 수 없습니다.  
이러한 환경 변수는 웹 보안 인증 공급자를 사용한 역할 수임에만 적용되며 일반적인 역할 수임 공급자 구성에는 적용되지 않습니다.
웹 보안 인증 사용에 대한 자세한 내용은 [웹 자격 증명을 사용한 역할 수임](cli-configure-role.md#cli-configure-role-oidc) 단원을 참조하세요.

**`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`](cli-configure-files.md#cli-config-role_session_name) 값을 재정의합니다.  
`AWS_ROLE_ARN` 및 `AWS_WEB_IDENTITY_TOKEN_FILE` 환경 변수와 함께 사용됩니다.  
웹 보안 인증 사용에 대한 자세한 내용은 [웹 자격 증명을 사용한 역할 수임](cli-configure-role.md#cli-configure-role-oidc) 단원을 참조하세요.  
이러한 환경 변수는 웹 보안 인증 공급자를 사용한 역할 수임에만 적용되며 일반적인 역할 수임 공급자 구성에는 적용되지 않습니다.

**`AWS_SDK_UA_APP_ID`**  
여러 고객 애플리케이션에서 단일 AWS 계정을 사용하여 AWS 서비스를 호출할 수 있습니다. 애플리케이션 ID는 어떤 소스 애플리케이션이 AWS 서비스를 사용하여 일련의 호출을 수행했는지 식별합니다. AWS SDK와 서비스는 이 값을 고객 커뮤니케이션에 다시 표시하는 것 외에는 이 값을 사용하거나 해석하지 않습니다. 예를 들어, 이 값을 운영 이메일에 포함시켜 알림과 관련된 애플리케이션을 고유하게 식별할 수 있습니다.  
기본적으로 이 값은 없습니다.  
애플리케이션 ID는 최대 길이가 50자인 문자열입니다. 문자, 숫자 및 다음과 같은 특수 문자를 사용할 수 있습니다.  

```
! $ % & * + - . , ^ _ ` | ~
```
정의된 경우 이 환경 변수는 프로파일 설정 [`sdk_ua_app_id`](cli-configure-files.md#cli-config-sdk_ua_app_id) 값을 재정의합니다. 명령줄 옵션으로 애플리케이션을 지정할 수는 없습니다.

**`AWS_SECRET_ACCESS_KEY`**  
액세스 키와 연결된 보안 키를 지정합니다. 이는 액세스 키에 대한 기본적인 "암호"입니다.  
정의된 경우 이 환경 변수는 `aws_secret_access_key` 프로파일 설정 값을 재정의합니다. 명령줄 옵션으로 보안 액세스 키 ID를 지정할 수는 없습니다.

**`AWS_SESSION_TOKEN`**  
AWS STS 작업에서 직접 검색한 임시 보안 보안 인증을 사용하는 경우 필요한 세션 토큰 값을 지정합니다. 자세한 내용은 *AWS CLI 명령 참조*에서 [assume-role 명령의 출력](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html#output) 섹션을 참조하세요.  
정의된 경우 이 환경 변수는 `aws_session_token` 프로파일 설정 값을 재정의합니다.

**`AWS_SHARED_CREDENTIALS_FILE`**  
AWS CLI에서 액세스 키를 저장하는 데 사용하는 파일의 위치를 지정합니다. 기본 경로는 `~/.aws/credentials`입니다.  
명명된 프로파일 설정에서 또는 명령줄 파라미터를 사용하여 이 값을 지정할 수 없습니다.

**`AWS_SIGV4A_SIGNING_REGION_SET`**  
쉼표로 구분된 목록을 사용하여 SigV4a로 서명할 때 사용할 리전을 지정합니다. 이 변수가 설정되지 않은 경우 AWS CLI는 AWS 서비스에서 사용하는 기본값을 사용합니다. AWS 서비스에 기본값이 없는 경우 `*` 값을 사용하여 모든 리전에서 요청 서명이 유효합니다.  
SigV4a에 대한 자세한 내용은 *IAM 사용 설명서*의 [AWS Signature Version 4 for API 요청](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)을 참조하세요.  
정의된 경우 이 환경 변수는 프로파일 설정 [`sigv4a_signing_region_set`](cli-configure-files.md#cli-config-sigv4a_signing_region_set) 값을 재정의합니다.

**[`AWS_STS_REGIONAL_ENDPOINTS`](cli-configure-files.md#cli-config-sts_regional_endpoints)**  
AWS CLI에서 AWS 클라이언트가 AWS CLI(AWS Security Token Service)와 통신하는 데 사용하는 AWS STS 서비스 엔드포인트를 결정하는 방법을 지정합니다. AWS CLI 버전 1의 기본값은 `legacy`입니다.  
다음 두 값 중 하나를 지정할 수 있습니다.  
+ **`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.amazonaws.com` 대신 리전 엔드포인트 `sts.us-west-2.amazonaws.com`에 대해 전송됩니다. 이 설정이 활성화된 상태에서 전역 엔드포인트에 요청을 보내려면 Region을 `aws-global`로 설정하면 됩니다.

**`AWS_USE_DUALSTACK_ENDPOINT`**  
이중 스택 엔드포인트를 사용하여 AWS 요청을 보내도록 설정합니다. *IPv4 및 IPv6 트래픽을 모두 지원하는 이중 스택 엔드포인트에 대한 자세한 내용은 Amazon 심플 스토리지 서비스 사용 설명서*의 [Amazon S3 이중 스택 엔드포인트](https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html) 사용을 참조하세요. 이중 스택 엔드포인트는 일부 리전에 사용할 수 있는 서비스입니다. 서비스 또는 AWS 리전에 대한 이중 스택 엔드포인트가 없는 경우 요청이 실패합니다. 이 옵션은 기본적으로 비활성화되어 있습니다. 자세한 내용은 [모든 AWS 서비스에 이중 스택 엔드포인트를 사용하도록 설정](cli-configure-endpoints.md#endpoints-dual-stack) 섹션을 참조하세요.  
**엔드포인트 우선순위**  
엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. AWS CLI는 이러한 엔드포인트 설정을 특정 순서로 확인하고 우선순위가 가장 높은 엔드포인트 설정을 사용합니다. 엔드포인트 우선순위 목록은 [엔드포인트 구성 및 설정 우선 순위](cli-configure-endpoints.md#endpoints-precedence) 섹션을 참조하시기 바랍니다.

**`AWS_USE_FIPS_ENDPOINT`**  
일부 AWS 서비스는 일부 AWS 리전에서 [FIPS(Federal Information Processing Standard) 140-2](https://aws.amazon.com/compliance/fips/)를 지원하는 엔드포인트를 제공합니다. AWS 서비스에서 FIPS를 지원하는 경우 이 설정은 AWS CLI에서 사용해야 하는 FIPS 엔드포인트를 지정합니다. 표준 AWS 엔드포인트와 달리 FIPS 엔드포인트에서는 FIPS 140-2를 준수하는 TLS 소프트웨어 라이브러리를 사용합니다. 이러한 엔드포인트는 미국 정부와 상호 작용하는 기업에 필요할 수 있습니다. 자세한 내용은 [모든 AWS 서비스에 FIPS 엔드포인트를 사용하도록 설정](cli-configure-endpoints.md#endpoints-fips) 단원을 참조하십시오.  
이 설정이 활성화되어 있지만 해당 서비스에 대한 FIPS 엔드포인트가 AWS 리전에 없는 경우 AWS 명령이 실패할 수 있습니다. 이 경우 `--endpoint-url` 옵션을 사용하여 명령에 사용할 엔드포인트를 수동으로 지정하거나 [서비스별 엔드포인트](cli-configure-endpoints.md#endpoints-service-specific)를 사용합니다.  
**엔드포인트 우선순위**  
엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. AWS CLI는 이러한 엔드포인트 설정을 특정 순서로 확인하고 우선순위가 가장 높은 엔드포인트 설정을 사용합니다. 엔드포인트 우선순위 목록은 [엔드포인트 구성 및 설정 우선 순위](cli-configure-endpoints.md#endpoints-precedence) 섹션을 참조하시기 바랍니다.

**[`AWS_WEB_IDENTITY_TOKEN_FILE`](#cli-configure-envvars)**  
보안 인증 공급자가 제공하는 OAuth 2.0 액세스 토큰 또는 OpenID Connect ID 토큰을 포함하는 파일의 경로를 지정합니다. AWS CLI에서 이 파일의 내용을 로드하고 해당 파일을 `WebIdentityToken` 작업에 대한 `AssumeRoleWithWebIdentity` 인수로 전달합니다.  
`AWS_ROLE_ARN` 및 `AWS_ROLE_SESSION_NAME` 환경 변수와 함께 사용됩니다.  
정의된 경우 이 환경 변수는 `web_identity_token_file` 프로파일 설정 값을 재정의합니다.  
웹 보안 인증 사용에 대한 자세한 내용은 [웹 자격 증명을 사용한 역할 수임](cli-configure-role.md#cli-configure-role-oidc) 섹션을 참조하세요.  
이러한 환경 변수는 웹 자격 증명 공급자를 사용한 역할 수임에만 적용되며 일반적인 역할 수임 공급자 구성에는 적용되지 않습니다.

# AWS CLI의 명령줄 옵션
<a name="cli-configure-options"></a>

AWS CLI에서 명령줄 옵션은 기본 구성 설정, 해당 프로파일 설정 또는 해당 단일 명령에 대한 환경 변수 설정을 재정의하는 데 사용할 수 있는 전역 파라미터입니다. 명령줄 옵션을 통해 사용할 프로필을 지정할 수 있지만, 해당 옵션으로 보안 인증을 직접 지정할 수 없습니다.

**Topics**
+ [명령줄 옵션 사용 방법](#cli-configure-options-how)
+ [AWS CLI에서 지원되는 전역 명령줄 옵션](#cli-configure-options-list)
+ [명령줄 옵션의 일반적인 용도](#cli-configure-options-common)

## 명령줄 옵션 사용 방법
<a name="cli-configure-options-how"></a>

대부분의 명령줄 옵션은 다음 예에 나온 프로파일 이름 `profile1`과 같은 단순한 문자열입니다.

```
$ aws s3 ls --profile profile1
amzn-s3-demo-bucket1
amzn-s3-demo-bucket2
...
```

인수를 가져오는 각 옵션에서는 공백이나 등호(=)를 사용하여 인수를 옵션 이름과 구분해야 합니다. 인수 값이 공백이 포함된 문자열인 경우 해당 인수의 앞뒤에 따옴표를 사용해야 합니다. 파라미터의 인수 유형 및 형식에 대한 자세한 내용은 [AWS CLI에서 파라미터 값 지정](cli-usage-parameters.md) 섹션을 참조하세요.

## AWS CLI에서 지원되는 전역 명령줄 옵션
<a name="cli-configure-options-list"></a>

AWS CLI에서 다음 명령줄 옵션을 사용하여 기본 구성 설정, 해당 프로파일 설정 또는 해당 단일 명령에 대한 환경 변수 설정을 재정의할 수 있습니다.

**--ca-bundle *<string>***  
SSL 인증서를 확인할 때 사용할 CA(인증 기관) 인증서 번들을 지정합니다.  
정의된 경우 이 옵션은 프로파일 설정 `ca\$1bundle`의 값 및 `AWS\$1CA\$1BUNDLE` 환경 변수를 재정의합니다.

**--cli-connect-timeout *<integer>***  
최대 소켓 연결 시간을 초 단위로 지정합니다. 이 값이 0으로 설정되어 있으면 소켓 연결이 무한 대기 상태(차단 상태)가 되고 제한 시간이 적용되지 않습니다. 기본값은 60초입니다.

**--cli-read-timeout *<integer>***  
최대 소켓 읽기 시간을 초 단위로 지정합니다. 이 값이 0으로 설정되어 있으면 소켓 읽기가 무한 대기 상태(차단 상태)가 되고 제한 시간이 적용되지 않습니다. 기본값은 60초입니다.

**--color *<string>***  
색상 출력에 대한 지원 여부를 지정합니다. 유효 값은 `on`, `off` 및 `auto`입니다. 기본 값은 `auto`입니다.

**--디버그**  
디버그 로깅을 활성화하는 부울 스위치입니다. 기본적으로 AWS CLI는 명령 출력의 명령 결과와 관련된 성공 또는 실패에 대한 정리 정보를 제공합니다. `--debug` 옵션은 전체 Python 로그를 제공합니다. 여기에는 해당 명령의 작동에 대한 추가적인 `stderr` 진단 정보가 포함되어 있는데, 이는 명령이 예기치 않은 결과를 제공하는 이유를 해결할 때 유용할 수 있습니다. 디버그 로그를 쉽게 보려면 정보를 쉽게 검색할 수 있도록 로그를 파일로 보내는 것이 좋습니다. 이를 위해 다음 중 하나를 사용할 수 있습니다.  
`stderr` 진단 정보**만** 보내려면 `2> debug.txt`를 추가합니다. 여기서 `debug.txt`는 디버그 파일에 사용할 이름입니다.  

```
$ aws servicename commandname options --debug 2> debug.txt
```
출력과 `stderr` 진단 정보**둘 다** 보내려면 `&> debug.txt`를 추가합니다. 여기서 `debug.txt`는 디버그 파일에 사용할 이름입니다.  

```
$ aws servicename commandname options --debug &> debug.txt
```

**--endpoint-url *<string>***  
요청을 전송할 URL을 지정합니다. 대부분의 명령에서는 AWS CLI가 선택된 서비스 및 지정된 AWS 리전을 기반으로 자동으로 URL을 결정합니다. 하지만 일부 명령에서는 계정별 URL을 지정해야 합니다. 일부 AWS 제품을 구성하여 [프라이빗 VPC 내에서 직접 엔드포인트를 호스팅](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html#what-is-privatelink)할 수도 있습니다. 이렇게 하려면 지정해야 합니다.  
다음 명령 예제에서는 사용자 지정 Amazon S3 엔드포인트 URL을 사용합니다.  

```
$ aws s3 ls --endpoint-url http://localhost:4567
```
**엔드포인트 우선순위**  
엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. AWS CLI는 이러한 엔드포인트 설정을 특정 순서로 확인하고 우선순위가 가장 높은 엔드포인트 설정을 사용합니다. 엔드포인트 우선순위 목록은 [엔드포인트 구성 및 설정 우선 순위](cli-configure-endpoints.md#endpoints-precedence) 섹션을 참조하시기 바랍니다.

**--no-paginate**  
출력의 페이지 매김을 생성하는 모든 명령 결과를 수신하기 위해 AWS CLI가 자동으로 수행하는 다중 호출을 비활성화하는 부울 스위치입니다. 즉, 출력의 첫 번째 페이지만 표시됩니다.

**--no-sign-request**  
AWS 서비스 엔드포인트에 대한 HTTP 요청 서명을 비활성화하는 부울 스위치입니다. 이렇게 하면 보안 인증이 로드되는 것을 방지할 수 있습니다.

**--no-verify-ssl**  
기본적으로 AWS CLI는 AWS 서비스와 통신할 때 SSL을 사용합니다. AWS CLI는 각 SSL 연결 및 호출에 대해 SSL 인증서를 확인합니다. 이 옵션을 사용하면 SSL 인증서를 확인하는 기본 동작이 재정의됩니다.  
이 옵션은 모범 사례가 **아닙니다**. `--no-verify-ssl`을 사용하는 경우 클라이언트와 AWS 서비스 간 트래픽이 더 이상 보호되지 않습니다. 즉, 트래픽이 보안 위험이 되며 중간자 공격에 취약합니다. 인증서에 문제가 있는 경우 대신 해당 문제를 해결하는 것이 좋습니다. 인증서 문제 해결 단계는 [SSL 인증서 오류](cli-chap-troubleshooting.md#tshoot-certificate-verify-failed) 섹션을 참조하세요.

**--output *<string>***  
이 명령에 사용할 출력 형식을 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.  
+ **[`json`](cli-usage-output-format.md#json-output)** - 출력은 [JSON](https://json.org/) 문자열로 형식이 지정됩니다.
+ **[`text`](cli-usage-output-format.md#text-output)** - 출력은 여러 줄의 탭으로 구분된 문자열 값으로 형식이 지정됩니다. 출력을 `grep`, `sed` 또는 `awk`와 같은 텍스트 프로세서로 전달하는 데 사용할 수 있습니다.
+ **[`table`](cli-usage-output-format.md#table-output)** - 출력은 셀 테두리를 형성하기 위해 \$1\$1- 문자를 사용하여 표로 형식이 지정됩니다. 일반적으로 읽기는 쉽지만 프로그래밍 방식으로는 유용하지 않은 ‘인간 친화적’ 형식으로 정보를 표시합니다.

**--profile *<string>***  
이 명령에 사용할 [명명된 프로필](cli-configure-files.md#cli-configure-files-using-profiles)을 지정합니다. 명명된 프로필을 추가로 설정하려면 `aws configure` 명령을 `--profile` 옵션과 함께 사용하면 됩니다.  

```
$ aws configure --profile <profilename>
```

**--query *<string>***  
응답 데이터를 필터링할 때 사용할 [JMESPath 쿼리](https://jmespath.org/)를 지정합니다. 자세한 내용은 [AWS CLI에서 출력 필터링](cli-usage-filter.md) 단원을 참조하세요.

**--region *<string>***  
이 명령의 AWS 요청을 전송할 AWS 리전을 지정합니다. 지정할 수 있는 모든 리전 목록은 *Amazon Web Services 일반 참조*의 [AWS 리전 및 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html)를 참조하세요.

**--v2-debug**  
v1-to-v2 업그레이드 디버그 모드를 활성화합니다. 이 모드에서 AWS CLI는 AWS CLI v2의 주요 변경 사항으로 업데이트된 기능의 사용을 감지하고 잠재적으로 영향을 받을 수 있는 감지된 각 사용량에 대한 경고를 출력합니다. 이 모드를 사용하여 v2로 업그레이드하기 위한 환경 및 AWS CLI 사용을 준비할 수 있습니다.  
이 옵션은 `AWS\$1CLI\$1UPGRADE\$1DEBUG\$1MODE` 환경 변수를 재정의합니다.  
AWS CLI v1-to-v2 업그레이드 디버그 모드에 대한 자세한 내용은 [업그레이드 디버그 모드를 사용하여 AWS CLI 버전 1을 AWS CLI 버전 2로 업그레이드](https://docs.aws.amazon.com/cli/latest/userguide/cli-upgrade-debug-mode.html)를 참조하세요.

**--version**  
실행 중인 AWS CLI 프로그램의 현재 버전을 표시하는 부울 스위치입니다.

## 명령줄 옵션의 일반적인 용도
<a name="cli-configure-options-common"></a>

명령줄 옵션의 일반적인 용도는 여러 AWS 리전에서 리소스를 확인하고 읽기 쉽게 또는 스크립팅할 때 사용하기 쉽게 출력 형식을 변경하는 것입니다. 다음 예제에서는 인스턴스가 있는 리전을 찾을 때까지 각 리전에 대해 **describe-instances** 명령을 실행합니다.

```
$ aws ec2 describe-instances --output table --region us-west-1
-------------------
|DescribeInstances|
+-----------------+
$ aws ec2 describe-instances --output table --region us-west-2
------------------------------------------------------------------------------
|                              DescribeInstances                             |
+----------------------------------------------------------------------------+
||                               Reservations                               ||
|+-------------------------------------+------------------------------------+|
||  OwnerId                            |  012345678901                      ||
||  ReservationId                      |  r-abcdefgh                        ||
|+-------------------------------------+------------------------------------+|
|||                                Instances                               |||
||+------------------------+-----------------------------------------------+||
|||  AmiLaunchIndex        |  0                                            |||
|||  Architecture          |  x86_64                                       |||
...
```

# AWS CLI에서 명령 완성 구성
<a name="cli-configure-completion"></a>

AWS Command Line Interface(AWS CLI)에는 **Tab** 키를 사용하여 부분적으로 입력된 명령을 완성할 수 있는 bash 호환 명령 완성 기능이 포함되어 있습니다. 이 기능은 대부분의 시스템에서 수동으로 구성해야 합니다.

**Topics**
+ [작동 방식](#cli-command-completion-about)
+ [Linux 또는 macOS에서 명령 완성 구성](#cli-command-completion-linux)
+ [Windows에서 명령 완료 구성](#cli-command-completion-windows)

## 작동 방식
<a name="cli-command-completion-about"></a>

명령, 파라미터 또는 옵션을 부분적으로 입력하면 명령 완성 기능이 자동으로 명령을 완성하거나 제안된 명령 목록을 표시합니다. 명령 완성 메시지를 표시하려면 명령을 부분적으로 입력하고 완성 키(대부분의 셸에서 *Tab* 키)를 누릅니다.

다음 예제에서는 명령 완성을 사용할 수 있는 여러 가지 방법을 보여줍니다.
+ 명령을 부분적으로 입력하고 *Tab* 키를 눌러 제안된 명령 목록을 표시합니다.

  ```
  $ aws dynamodb dTAB
  delete-backup                        describe-global-table
  delete-item                          describe-global-table-settings
  delete-table                         describe-limits
  describe-backup                      describe-table
  describe-continuous-backups          describe-table-replica-auto-scaling
  describe-contributor-insights        describe-time-to-live
  describe-endpoints
  ```
+ 파라미터를 부분적으로 입력하고 *Tab* 키를 눌러 제안된 파라미터 목록을 표시합니다.

  ```
  $ aws dynamodb delete-table --TAB
  --ca-bundle              --endpoint-url           --profile              
  --cli-connect-timeout    --generate-cli-skeleton  --query                
  --cli-input-json         --no-paginate            --region               
  --cli-read-timeout       --no-sign-request        --table-name           
  --color                  --no-verify-ssl          --version              
  --debug                  --output
  ```
+ 파라미터를 입력하고 *Tab* 키를 눌러 제안된 리소스 값 목록을 표시합니다. 이 기능은 AWS CLI 버전 2에서만 사용할 수 있습니다.

  ```
  $ aws dynamodb delete-table --table-name TAB
  Table 1                  Table 2                  Table 3
  ```

## Linux 또는 macOS에서 명령 완성 구성
<a name="cli-command-completion-linux"></a>

Linux 또는 macOS에서 명령 완성을 구성하려면 사용 중인 셸의 이름과 `aws_completer` 스크립트의 위치를 알아야 합니다.

**참고**  
Amazon Linux를 실행하는 Amazon EC2 인스턴스에서는 기본적으로 명령 완성이 자동으로 구성되고 활성화됩니다.

**Topics**
+ [경로에 completer 폴더가 있는지 확인](#cli-command-completion-path)
+ [명령 완성 활성화](#cli-command-completion-enable)
+ [명령 완성 확인](#cli-command-completion-test)

### 경로에 completer 폴더가 있는지 확인
<a name="cli-command-completion-path"></a>

AWS completer가 성공적으로 작동하려면 셀의 경로에 `aws_completer`가 있어야 합니다. `which` 명령을 사용하여 경로에 completer가 있는지 확인할 수 있습니다.

```
$ which aws_completer
/usr/local/bin/aws_completer
```

이 명령으로 completer를 찾을 수 없는 경우 다음 단계를 사용하여 경로에 completer의 폴더를 추가합니다.

#### 1단계: AWS completer 찾기
<a name="cli-command-completion-locate"></a>

 AWS Completer의 위치는 사용한 설치 방법에 따라 다를 수 있습니다.
+ **패키지 관리자** - `pip`, `yum`, `brew` 및 `apt-get`과 같은 프로그램은 일반적으로 AWS completer(또는 이 기능에 대한 symlink)를 표준 경로 위치에 설치합니다.
  + `pip`을 `--user` 파라미터 **없이** 사용한 경우 기본 경로는 `/usr/local/bin/aws_completer`입니다.
  + `pip`을 `--user` 파리미터와 **함께** 사용한 경우 기본 경로는 `/home/username/.local/bin/aws_completer`입니다.
+ **번들에 포함된 설치 관리자** - 번들에 포함된 설치 관리자를 사용한 경우 기본 경로는 `/usr/local/bin/aws_completer`입니다.

다른 모든 방법이 실패하면 `find` 명령을 사용하여 파일 시스템에서 AWS completer를 검색할 수 있습니다.

```
$ find / -name aws_completer
/usr/local/bin/aws_completer
```

#### 2단계: 셸 식별
<a name="cli-command-completion-shell"></a>

사용 중인 셸을 식별하려면 다음 명령 중 하나를 사용하면 됩니다.
+ **echo \$1SHELL** - 셸의 프로그램 파일 이름을 표시합니다. 이 항목은 로그인 후 다른 셸을 시작하지 않은 한 일반적으로 사용 중인 셸의 이름과 일치합니다.

  ```
  $ echo $SHELL
  /bin/bash
  ```
+ **ps** - 현재 사용자에 대해 실행 중인 프로세스를 표시합니다. 그 중 하나가 셸입니다.

  ```
  $ ps
    PID TTY          TIME CMD
   2148 pts/1    00:00:00 bash
   8756 pts/1    00:00:00 ps
  ```

#### 3단계: 경로에 completer 추가
<a name="cli-command-completion-path-add"></a>

1. 사용자 폴더에서 셸의 프로파일 스크립트를 찾습니다.

   ```
   $ ls -a ~/
   .  ..  .bash_logout  .bash_profile  .bashrc  Desktop  Documents  Downloads
   ```
   + **Bash** – `.bash_profile`, `.profile` 또는 `.bash_login`
   + **Zsh** –`.zshrc` 
   + **Tcsh** - `.tcshrc`, `.cshrc` 또는 `.login`

1. 다음 예제와 유사한 프로필 스크립트 끝에 내보내기 명령을 추가합니다. `/usr/local/bin/`을 이전 섹션에서 검색한 폴더의 이름으로 바꿉니다.

   ```
   export PATH=/usr/local/bin/:$PATH
   ```

1. 현재 세션에 프로필을 다시 로드하여 해당 변경 사항을 적용합니다. `.bash_profile`을 첫 섹션에서 검색한 shell 스크립트의 이름으로 바꿉니다.

   ```
   $ source ~/.bash_profile
   ```

### 명령 완성 활성화
<a name="cli-command-completion-enable"></a>

completer가 경로에 있는지 확인한 후에는 사용 중인 셸에 적합한 명령을 실행하여 명령 완성을 활성화합니다. 셸의 프로파일에 명령을 추가하여 새 셸을 열 때마다 실행되도록 할 수 있습니다. 각 명령에서 */usr/local/bin/* 경로를 시스템에서 찾은 [경로에 completer 폴더가 있는지 확인](#cli-command-completion-path)로 바꿉니다.
+ **`bash`** – 기본 제공 명령인 `complete`를 사용합니다.

  ```
  $ complete -C '/usr/local/bin/aws_completer' aws
  ```

  `~/.bashrc`에 이전 명령을 추가하여 새 셸을 열 때마다 실행되도록 합니다. `~/.bash_profile`은 `~/.bashrc`를 소스로 하여 로그인 셸에서도 이 명령이 실행되도록 합니다.
+  **`zsh`** - 명령 완성을 실행하려면 `bashcompinit` 프로파일 스크립트 끝에 다음 자동 로드 행을 추가하여 `~/.zshrc`를 실행해야 합니다.

  ```
  $ autoload bashcompinit && bashcompinit
  $ autoload -Uz compinit && compinit
  ```

  명령 완성을 사용하려면 기본 제공 명령 `complete`를 사용합니다.

  ```
  $ complete -C '/usr/local/bin/aws_completer' aws
  ```

  `~/.zshrc`에 이전 명령을 추가하여 새 셸을 열 때마다 실행되도록 합니다.
+  **`tcsh`** - `tcsh`의 경우 단어 유형 및 패턴을 가져와서 완성 동작을 정의하는 방식으로 완성을 수행합니다.

  ```
  > complete aws 'p/*/`aws_completer`/'
  ```

  `~/.tcshrc`에 이전 명령을 추가하여 새 셸을 열 때마다 실행되도록 합니다.

명령 완성을 활성화한 후 명령 완성이 작동하는지 확인([명령 완성 확인](#cli-command-completion-test))합니다.

### 명령 완성 확인
<a name="cli-command-completion-test"></a>

명령 완성을 활성화한 후 셸을 다시 로드하고 부분 명령을 입력한 다음 **Tab** 키를 눌러 사용 가능한 명령을 봅니다.

```
$ aws sTAB
s3              ses             sqs             sts             swf
s3api           sns             storagegateway  support
```

## Windows에서 명령 완료 구성
<a name="cli-command-completion-windows"></a>

**참고**  
다양한 완성 키를 포함하여 PowerShell이 완성을 처리하는 방법에 대한 자세한 내용은 *Microsoft PowerShell 문서*에서 [about\$1Tab\$1Expansion](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_tab_expansion)을 참조하세요.

Windows에서 PowerShell에 대한 명령 완성을 활성화하려면 PowerShell에서 다음 단계를 수행합니다.

1. 다음 명령을 사용하여 `$PROFILE`을 엽니다.

   ```
   PS C:\> Notepad $PROFILE
   ```

   `$PROFILE`이 없는 경우 다음 명령을 사용하여 사용자 프로필을 생성합니다.

   ```
   PS C:\> if (!(Test-Path -Path $PROFILE ))
   { New-Item -Type File -Path $PROFILE -Force }
   ```

   PowerShell 프로필에 대한 자세한 내용은 *Microsoft Docs* 웹 사이트에서 [Windows PowerShell ISE에서 프로필을 사용하는 방법](https://docs.microsoft.com/en-us/powershell/scripting/windows-powershell/ise/how-to-use-profiles-in-windows-powershell-ise)을 참조하세요.

1. 명령 완성을 활성화하려면 다음 코드 블록을 프로필에 추가하고 저장한 다음 파일을 닫습니다.

   ```
   Register-ArgumentCompleter -Native -CommandName aws -ScriptBlock {
       param($commandName, $wordToComplete, $cursorPosition)
           $env:COMP_LINE=$wordToComplete
           if ($env:COMP_LINE.Length -lt $cursorPosition){
               $env:COMP_LINE=$env:COMP_LINE + " "
           }
           $env:COMP_POINT=$cursorPosition
           aws_completer.exe | ForEach-Object {
               [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
           }
           Remove-Item Env:\COMP_LINE     
           Remove-Item Env:\COMP_POINT  
   }
   ```

1. 명령 완성을 활성화한 후 셸을 다시 로드하고 부분 명령을 입력한 다음 **Tab** 키를 눌러 사용 가능한 명령을 순환합니다.

   ```
   $ aws sTab
   ```

   ```
   $ aws s3
   ```

   완성을 위해 사용 가능한 명령을 모두 보려면 부분 명령을 입력하고 **Ctrl**\$1**Space**를 누릅니다.

   ```
   $ aws sCtrl + Space
   s3              ses             sqs             sts             swf
   s3api           sns             storagegateway  support
   ```

# AWS CLI에서 AWS CLI 재시도
<a name="cli-configure-retries"></a>

이 주제에서는 AWS CLI에서 예기치 않은 문제로 인해 AWS 서비스 호출이 실패하는 것을 어떻게 확인할 수 있는지 설명합니다. 이러한 문제는 서버 측에서 발생하거나 호출하려는 AWS 서비스의 속도 제한으로 인해 실패할 수 있습니다. 이러한 종류의 실패는 일반적으로 특별한 처리가 필요하지 않으며 주로 짧은 대기 기간 후에 자동으로 다시 호출됩니다. AWS CLI는 이러한 종류의 오류 또는 예외가 발생할 때 AWS 서비스에 대한 클라이언트 호출을 다시 시도하는 데 도움이 되는 여러 기능을 제공합니다.

**Topics**
+ [사용 가능한 재시도 모드](#cli-usage-retries-modes)
+ [재시도 모드 구성](#cli-usage-retries-configure)
+ [재시도 로그 보기](#cli-usage-retries-validate)

## 사용 가능한 재시도 모드
<a name="cli-usage-retries-modes"></a>

**Topics**
+ [표준 재시도 모드](#cli-usage-retries-modes-standard.title)
+ [레거시 재시도 모드(기본값)](#cli-usage-retries-legacy)
+ [적응형 재시도 모드](#cli-usage-retries-modes-adaptive)

### 표준 재시도 모드
<a name="cli-usage-retries-modes-standard.title"></a>

`Standard` 모드는 레거시보다 더 많은 기능을 가진 AWS SDK 전반의 표준 재시도 규칙 세트이며 기본 모드는 AWS CLI의 기본값입니다. 표준 모드는 AWS CLI 버전 2를 위해 생성되었으며 AWS CLI 버전 1로 백포트됩니다. 표준 모드의 기능은 다음과 같습니다.
+ 최대 재시도 횟수에 대한 기본값은 2이며, 총 3회의 호출을 시도합니다. 이 값은 `max_attempts` 구성 파라미터를 통해 덮어쓸 수 있습니다.
+ 다음과 같은 확장된 오류/예외 목록에 대한 재시도 횟수: 
  + 일시적 오류/예외
    + `RequestTimeout` 
    + `RequestTimeoutException` 
    + `PriorRequestNotComplete` 
    + `ConnectionError`
    + `HTTPClientError` 
  + 서비스 측 조절/제한 오류 및 예외:
    + `Throttling`
    + `ThrottlingException`
    + `ThrottledException`
    + `RequestThrottledException`
    + `TooManyRequestsException`
    + `ProvisionedThroughputExceededException`
    + `TransactionInProgressException` 
    + `RequestLimitExceeded` 
    + `BandwidthLimitExceeded`
    + `LimitExceededException`
    + `RequestThrottled`
    + `SlowDown`
    + `EC2ThrottledException` 
+ 설명적이지 않은 일시적인 오류 코드에 대한 재시도 횟수. 특히, 이러한 HTTP 상태 코드는 500, 502, 503, 504입니다.
+ 모든 재시도 횟수에는 최대 백오프 시간 20초 동안 기본 계수 2의 지수 백오프가 포함됩니다.

### 레거시 재시도 모드(기본값)
<a name="cli-usage-retries-legacy"></a>

`Legacy` 모드는 다음을 포함하는 제한된 기능을 가진 이전 재시도 핸들러를 사용합니다.
+ 최대 재시도 횟수에 대한 기본값은 4이며, 총 5회의 호출을 시도합니다. 이 값은 `max_attempts` 구성 파라미터를 통해 덮어쓸 수 있습니다.
+ DynamoDB는 최대 재시도 횟수의 기본값이 9이며, 총 10회의 호출을 시도합니다. 이 값은 `max_attempts` 구성 파라미터를 통해 덮어쓸 수 있습니다.
+ 다음과 같은 제한된 수의 오류/예외에 대한 재시도 횟수:
  + 일반 소켓/연결 오류:
    + `ConnectionError`
    + `ConnectionClosedError`
    + `ReadTimeoutError`
    + `EndpointConnectionError`
  + 서비스 측 조절/제한 오류 및 예외:
    + `Throttling`
    + `ThrottlingException`
    + `ThrottledException`
    + `RequestThrottledException`
    + `ProvisionedThroughputExceededException`
+ 429, 500, 502, 503, 504, 509 등 여러 HTTP 상태 코드에 대한 재시도 횟수.
+ 모든 재시도 횟수에는 기본 계수 2의 지수 백오프가 포함됩니다.

### 적응형 재시도 모드
<a name="cli-usage-retries-modes-adaptive"></a>

**주의**  
적응형 모드는 실험적 모드이며 기능 및 동작 모두 변경될 수 있습니다.

`Adaptive` 재시도 모드는 표준 모드의 모든 기능을 포함하는 실험적 재시도 모드입니다. 표준 모드 기능 외에도 적응형 모드는 각 재시도 시 동적으로 업데이트되는 토큰 버킷 및 속도 제한 변수를 사용하여 클라이언트 측 속도 제한도 도입합니다. 이 모드는 AWS 서비스의 오류/예외 상태 응답에 적응하는 클라이언트 측 재시도의 유연성을 제공합니다.

새로운 재시도를 시도할 때마다 적응형 모드는 AWS 서비스의 응답에 표시된 오류, 예외 또는 HTTP 상태 코드를 기반으로 속도 제한 변수를 수정합니다. 이러한 속도 제한 변수는 클라이언트의 새 호출 속도를 계산하는 데 사용됩니다. AWS 서비스의 각 예외/오류 또는 비 성공 HTTP 응답(위 목록에 제공)은 성공에 도달하거나, 토큰 버킷이 소진되거나, 구성된 최대 시도 값에 도달할 때까지 재시도가 발생할 때 속도 제한 변수를 업데이트합니다.

## 재시도 모드 구성
<a name="cli-usage-retries-configure"></a>

AWS CLI에는 클라이언트 객체를 생성할 때 고려해야 할 구성 방법뿐만 아니라 다양한 재시도 구성이 포함됩니다.

### 사용 가능한 구성 방법
<a name="cli-usage-retries-configure-options"></a>

AWS CLI에서 사용자는 다음과 같은 방법으로 재시도를 구성할 수 있습니다.
+ 환경 변수
+ AWS CLI 구성 파일

사용자는 다음 재시도 옵션을 사용자 지정할 수 있습니다.
+ 재시도 모드 - AWS CLI가 사용할 재시도 모드를 지정합니다. 앞에서 설명한 대로 레거시, 표준 및 적응형, 이렇게 3가지 재시도 모드를 사용할 수 있습니다. AWS CLI 버전 1의 기본값은 레거시이며.
+ 최대 시도 - AWS CLI 재시도 핸들러에서 사용하는 최대 재시도 횟수 값을 지정합니다. 여기서 초기 호출은 사용자가 제공한 값에 포함됩니다. 기본값은 재시도 모드를 기반으로 합니다.

### 환경 변수에서 재시도 구성 정의
<a name="cli-usage-retries-configure-envvar"></a>

AWS CLI에 대한 재시도 구성을 정의하려면 운영 체제의 환경 변수를 업데이트합니다.

재시도 환경 변수는 다음과 같습니다.
+ `AWS_RETRY_MODE`
+ `AWS_MAX_ATTEMPTS`

환경 변수에 대한 자세한 내용은 [AWS CLI에 대한 환경 변수 구성](cli-configure-envvars.md) 섹션을 참조하세요.

## 재시도 로그 보기
<a name="cli-usage-retries-validate"></a>

AWS CLI는 Boto3의 재시도 방법과 로깅을 사용합니다. 모든 명령에서 `--debug` 옵션을 사용하여 디버그 로그를 받을 수 있습니다. `--debug` 옵션을 사용하는 방법에 대한 자세한 내용은 [AWS CLI의 명령줄 옵션](cli-configure-options.md) 섹션을 참조하세요.

디버그 로그에서 “재시도”를 검색하면 필요한 재시도 정보를 찾을 수 있습니다. 재시도를 위한 클라이언트 로그 항목은 활성화한 재시도 모드에 따라 다릅니다.

**레거시 모드:**

 재시도 메시지는 botocore.retryhandler에 의해 생성됩니다. 다음 3가지 메시지 중 하나가 표시됩니다.
+ `No retry needed`
+ `Retry needed, action of: <action_name>`
+ `Reached the maximum number of retry attempts: <attempt_number>`

**표준 또는 적응형 모드:**

 재시도 메시지는 botocore.retries.standard에 의해 생성됩니다. 다음 3가지 메시지 중 하나가 표시됩니다.
+ `No retrying request` 
+ `Retry needed, retrying request after delay of: <delay_value>`
+ `Retry needed but retry quota reached, not retrying request`

botocore 재시도의 전체 정의 파일은 *botocore GitHub 리포지토리*에서 [\$1retry.json](https://github.com/boto/botocore/blob/develop/botocore/data/_retry.json)을 참조하세요.

# AWS CLI에 대한 HTTP 프록시 사용
<a name="cli-configure-proxy"></a>

프록시 서버를 통해 AWS에 액세스하려면 프록시 서버에서 사용되는 DNS 도메인 이름 또는 IP 주소 및 포트 번호로 `HTTP_PROXY` 및 `HTTPS_PROXY` 환경 변수를 구성할 수 있습니다.

**Topics**
+ [예제 사용](#cli-configure-proxy-using)
+ [프록시에 인증](#cli-configure-proxy-auth)
+ [Amazon EC2 인스턴스에서 프록시 사용](#cli-configure-proxy-ec2)
+ [문제 해결](#cli-configure-proxy-tshoot)

## 예제 사용
<a name="cli-configure-proxy-using"></a>

**참고**  
다음 예제에서는 환경 변수 이름을 모두 대문자로 표시합니다. 그러나 다른 대소문자를 사용하여 변수를 두 번 지정하는 경우 소문자가 우선합니다. 시스템 혼란과 예상하지 못한 동작을 피하기 위해 각 변수를 한 번만 정의하는 것이 좋습니다.

다음 예제는 프록시의 명시적 IP 주소나 프록시의 IP 주소로 확인되는 DNS 이름을 사용할 수 있는 방법을 보여줍니다. 어떤 경우든 콜론과 쿼리가 전송되는 포트 이름이 뒤에 나올 수 있습니다.

------
#### [ Linux or macOS ]

```
$ export HTTP_PROXY=http://10.15.20.25:1234
$ export HTTP_PROXY=http://proxy.example.com:1234
$ export HTTPS_PROXY=http://10.15.20.25:5678
$ export HTTPS_PROXY=http://proxy.example.com:5678
```

------
#### [ Windows Command Prompt ]

**모든 세션에 대해 설정하려면**

```
C:\> setx HTTP_PROXY http://10.15.20.25:1234
C:\> setx HTTP_PROXY http://proxy.example.com:1234
C:\> setx HTTPS_PROXY http://10.15.20.25:5678
C:\> setx HTTPS_PROXY http://proxy.example.com:5678
```

환경 변수를 설정하는 데 [https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setx)를 사용하면 현재 명령 프롬프트 세션과 명령 실행 후 생성한 모든 명령 프롬프트 세션에서 사용되는 값이 변경됩니다. 명령을 실행하는 시점에 이미 실행 중인 다른 명령 쉘에는 영향을 주지 ****않습니다**.

**현재 세션에만 설정하려면**

환경 변수를 설정하는 데 `[set](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)`을 사용하면 사용되는 값이 변경되어 현재 명령 프롬프트 세션이 종료될 때까지 또는 변수를 다른 값으로 설정할 때까지 유지됩니다.

```
C:\> set HTTP_PROXY=http://10.15.20.25:1234
C:\> set HTTP_PROXY=http://proxy.example.com:1234
C:\> set HTTPS_PROXY=http://10.15.20.25:5678
C:\> set HTTPS_PROXY=http://proxy.example.com:5678
```

------

## 프록시에 인증
<a name="cli-configure-proxy-auth"></a>

**참고**  
AWS CLI는 NTLM 프록시를 지원하지 않습니다. NTLM 또는 Kerberos 프로토콜 프록시를 사용하는 경우 [Cntlm](http://cntlm.sourceforge.net)과 같은 인증 프록시를 통해 연결할 수 있습니다.

AWS CLI는 HTTP 기본 인증을 지원합니다. 다음과 같이 프록시 URL에 사용자 이름 및 암호를 지정합니다.

------
#### [ Linux or macOS ]

```
$ export HTTP_PROXY=http://username:password@proxy.example.com:1234
$ export HTTPS_PROXY=http://username:password@proxy.example.com:5678
```

------
#### [ Windows Command Prompt ]

**모든 세션에 대해 설정하려면**

```
C:\> setx HTTP_PROXY http://username:password@proxy.example.com:1234
C:\> setx HTTPS_PROXY http://username:password@proxy.example.com:5678
```

**현재 세션에만 설정하려면**

```
C:\> set HTTP_PROXY=http://username:password@proxy.example.com:1234
C:\> set HTTPS_PROXY=http://username:password@proxy.example.com:5678
```

------

## Amazon EC2 인스턴스에서 프록시 사용
<a name="cli-configure-proxy-ec2"></a>

연결된 IAM 역할을 사용하여 시작한 Amazon EC2 인스턴스에서 프록시를 구성하는 경우 [인스턴스 메타데이터](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)에 액세스하는 데 사용된 주소를 제외해야 합니다. 이렇게 하려면 `NO_PROXY` 환경 변수를 인스턴스 메타데이터 서비스의 IP 주소 169.254.169.254로 설정합니다. 이 주소는 달라지지 않습니다.

------
#### [ Linux or macOS ]

```
$ export NO_PROXY=169.254.169.254
```

------
#### [ Windows Command Prompt ]

**모든 세션에 대해 설정하려면**

```
C:\> setx NO_PROXY 169.254.169.254
```

**현재 세션에만 설정하려면**

```
C:\> set NO_PROXY=169.254.169.254
```

------

## 문제 해결
<a name="cli-configure-proxy-tshoot"></a>

AWS CLI에서 문제가 발생할 경우 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md)에 나온 문제 해결 단계를 참조하세요. 가장 관련성이 높은 문제 해결 단계는 [SSL 인증서 오류](cli-chap-troubleshooting.md#tshoot-certificate-verify-failed) 섹션을 참조하세요.

# AWS CLI에서 엔드포인트 사용
<a name="cli-configure-endpoints"></a>

AWS 서비스에 프로그래밍 방식으로 연결하려면 엔드포인트를 사용해야 합니다. *엔드포인트*는 AWS 웹 서비스를 위한 진입점의 URL입니다. AWS Command Line Interface(AWS CLI)는 AWS 리전 리전의 각 서비스에 대해 자동으로 기본 엔드포인트를 사용하지만, API 요청에 대해 대체 엔드포인트를 지정할 수 있습니다.

**Contents**
+ [단일 명령에 대한 엔드포인트 설정](#endpoints-command)
+ [모든 AWS 서비스 서비스에 대한 글로벌 엔드포인트 설정](#endpoints-global)
+ [모든 AWS 서비스에 FIPS 엔드포인트를 사용하도록 설정](#endpoints-fips)
+ [모든 AWS 서비스에 이중 스택 엔드포인트를 사용하도록 설정](#endpoints-dual-stack)
+ [서비스별 엔드포인트 설정](#endpoints-service-specific)
  + [환경 변수](#endpoints-service-specific-envvars)
  + [공유 `config` 파일](#endpoints-service-specific-config)
  + [서비스별 식별자 목록](#endpoints-service-specific-table)
+ [계정 기반 엔드포인트](#endpoints-accountid)
+ [엔드포인트 구성 및 설정 우선 순위](#endpoints-precedence)

## 단일 명령에 대한 엔드포인트 설정
<a name="endpoints-command"></a>

단일 명령에 대한 엔드포인트 설정이나 환경 변수를 재정의하려면 `--endpoint-url` 명령줄 옵션을 사용하세요. 다음 명령 예제에서는 사용자 지정 Amazon S3 엔드포인트 URL을 사용합니다.

```
$ aws s3 ls --endpoint-url http://localhost:4567
```

## 모든 AWS 서비스 서비스에 대한 글로벌 엔드포인트 설정
<a name="endpoints-global"></a>

모든 서비스에 대한 요청을 사용자 지정 엔드포인트 URL로 라우팅하려면 다음 설정 중 하나를 사용하세요.
+ 환경 변수:
  + `AWS\$1IGNORE\$1CONFIGURED\$1ENDPOINT\$1URLS` - 구성된 엔드포인트 URL을 무시합니다.

------
#### [ Linux or macOS ]

    ```
    $ export AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
    ```

------
#### [ Windows Command Prompt ]

    **모든 세션에 대해 설정하려면**

    ```
    C:\> setx AWS_IGNORE_CONFIGURED_ENDPOINT_URLS true
    ```

    **현재 세션에만 설정하려면**

    ```
    C:\> set AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
    ```

------
#### [ PowerShell ]

    ```
    PS C:\> $Env:AWS_IGNORE_CONFIGURED_ENDPOINT_URLS="true"
    ```

------
  + `AWS\$1ENDPOINT\$1URL` - 글로벌 엔드포인트 URL을 설정합니다.

------
#### [ Linux or macOS ]

    ```
    $ export AWS_ENDPOINT_URL=http://localhost:4567
    ```

------
#### [ Windows Command Prompt ]

    **모든 세션에 대해 설정하려면**

    ```
    C:\> setx AWS_ENDPOINT_URL http://localhost:4567
    ```

    **현재 세션에만 설정하려면**

    ```
    C:\> set AWS_ENDPOINT_URL=http://localhost:4567
    ```

------
#### [ PowerShell ]

    ```
    PS C:\> $Env:AWS_ENDPOINT_URL="http://localhost:4567"
    ```

------
+ `config` 파일:
  + `ignore\$1configure\$1endpoint\$1urls` - 구성된 엔드포인트 URL을 무시합니다.

    ```
    ignore_configure_endpoint_urls = true
    ```
  + `endpoint\$1url` - 글로벌 엔드포인트 URL을 설정합니다.

    ```
    endpoint_url = http://localhost:4567
    ```

서비스별 엔드포인트와 `--endpoint-url` 명령줄 옵션은 모든 전역 엔드포인트를 재정의합니다.

## 모든 AWS 서비스에 FIPS 엔드포인트를 사용하도록 설정
<a name="endpoints-fips"></a>

모든 서비스에 대한 요청을 FIP 엔드포인트로 라우팅하려면 다음 중 하나를 사용하세요.
+ `AWS\$1USE\$1FIPS\$1ENDPOINT` 환경 변수

------
#### [ Linux or macOS ]

  ```
  $ export AWS_USE_FIPS_ENDPOINT=true
  ```

------
#### [ Windows Command Prompt ]

  **모든 세션에 대해 설정하려면**

  ```
  C:\> setx AWS_USE_FIPS_ENDPOINT true
  ```

  **현재 세션에만 설정하려면**

  ```
  C:\> set AWS_USE_FIPS_ENDPOINT=true
  ```

------
#### [ PowerShell ]

  ```
  PS C:\> $Env:AWS_USE_FIPS_ENDPOINT="true"
  ```

------
+ `use\$1fips\$1endpoint` 파일 설정

  ```
  use_fips_endpoint = true
  ```

일부 AWS 서비스는 일부 AWS 리전에서 [FIPS(Federal Information Processing Standard) 140-2](https://aws.amazon.com/compliance/fips/)를 지원하는 엔드포인트를 제공합니다. AWS 서비스에서 FIPS를 지원하는 경우 이 설정은 AWS CLI에서 사용해야 하는 FIPS 엔드포인트를 지정합니다. 표준 AWS 엔드포인트와 달리 FIPS 엔드포인트에서는 FIPS 140-2를 준수하는 TLS 소프트웨어 라이브러리를 사용합니다. 이러한 엔드포인트는 미국 정부와 상호 작용하는 기업에 필요할 수 있습니다.

이 설정이 활성화되어 있지만 해당 서비스에 대한 FIPS 엔드포인트가 AWS 리전에 없는 경우 AWS 명령이 실패할 수 있습니다. 이 경우 `--endpoint-url` 옵션을 사용하여 명령에 사용할 엔드포인트를 수동으로 지정하거나 [서비스별 엔드포인트](#endpoints-service-specific)를 사용합니다.

AWS 리전별로 FIPS 엔드포인트를 지정하는 방법에 대한 자세한 내용은 [서비스별 FIPS 엔드포인트](https://aws.amazon.com/compliance/fips/)를 참조하세요.

## 모든 AWS 서비스에 이중 스택 엔드포인트를 사용하도록 설정
<a name="endpoints-dual-stack"></a>

모든 서비스에 대한 요청을 사용 가능한 이중 스택 엔드포인트로 라우팅하려면 다음 설정 중 하나를 사용하세요.
+ `AWS\$1USE\$1DUALSTACK\$1ENDPOINT` 환경 변수

------
#### [ Linux or macOS ]

  ```
  $ export AWS_USE_DUALSTACK_ENDPOINT=true
  ```

------
#### [ Windows Command Prompt ]

  **모든 세션에 대해 설정하려면**

  ```
  C:\> setx AWS_USE_DUALSTACK_ENDPOINT true
  ```

  **현재 세션에만 설정하려면**

  ```
  C:\> set AWS_USE_DUALSTACK_ENDPOINT=true
  ```

------
#### [ PowerShell ]

  ```
  PS C:\> $Env:AWS_USE_DUALSTACK_ENDPOINT="true"
  ```

------
+ `use\$1dualstack\$1endpoint` 파일 설정

  ```
  use_dualstack_endpoint = true
  ```

이중 스택 엔드포인트를 사용하여 AWS 요청을 보내도록 설정합니다. *IPv4 및 IPv6 트래픽을 모두 지원하는 이중 스택 엔드포인트에 대한 자세한 내용은 Amazon 심플 스토리지 서비스 사용 설명서*의 [Amazon S3 이중 스택 엔드포인트](https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html) 사용을 참조하세요. 이중 스택 엔드포인트는 일부 리전에 사용할 수 있는 서비스입니다. 서비스 또는 AWS 리전에 대한 이중 스택 엔드포인트가 없는 경우 요청이 실패합니다. 이 옵션은 기본적으로 비활성화되어 있습니다.

## 서비스별 엔드포인트 설정
<a name="endpoints-service-specific"></a>

서비스별 엔드포인트 구성은 AWS CLI 요청에 대해 사용자가 선택한 영구 엔드포인트를 사용할 수 있는 옵션을 제공합니다. 이러한 설정은 로컬 엔드포인트, VPC 엔드포인트 및 타사 로컬 AWS 개발 환경을 지원할 수 있는 유연성을 제공합니다. 테스트 환경과 프로덕션 환경에 서로 다른 엔드포인트를 사용할 수 있습니다. 개별 AWS 서비스 서비스에 대한 엔드포인트 URL을 지정할 수 있습니다.

서비스별 엔드포인트는 다음과 같은 방법으로 지정할 수 있습니다.
+ 단일 명령에 대한 명령줄 옵션 `--endpoint-url`.
+ 환경 변수:
  + `AWS\$1IGNORE\$1CONFIGURED\$1ENDPOINT\$1URLS` - 명령줄에 지정하지 않는 한 구성된 모든 엔드포인트 URL을 무시합니다.
  + `AWS\$1ENDPOINT\$1URL\$1<SERVICE>` - 특정 서비스에 사용되는 사용자 지정 엔드포인트를 지정하며, 여기서 `<SERVICE>`는 AWS 서비스 서비스 식별자로 대체됩니다. 모든 서비스별 변수에 대해서는 [서비스별 엔드포인트: 서비스별 식별자 목록](#endpoints-service-specific-table)를 참조하세요
+ `config` 파일:
  + `ignore\$1configure\$1endpoint\$1urls` - 환경 변수를 사용하거나 명령줄에서 지정하지 않는 한 구성된 모든 엔드포인트 URL을 무시합니다.
  + `config` 파일의 [`services`](cli-configure-files.md#cli-configure-files-format-services) 섹션과 `endpoint\$1url` 파일 설정이 결합됩니다.

**Topics**
+ [환경 변수](#endpoints-service-specific-envvars)
+ [공유 `config` 파일](#endpoints-service-specific-config)
+ [서비스별 식별자 목록](#endpoints-service-specific-table)

### 서비스별 엔드포인트: 환경 변수
<a name="endpoints-service-specific-envvars"></a>

환경 변수는 구성 파일의 설정을 재정의하지만 명령줄에 지정된 옵션을 재정의하지는 않습니다. 모든 프로파일이 디바이스에서 동일한 엔드포인트를 사용하도록 하려면 환경 변수를 사용하세요.

다음은 서비스별 환경 변수입니다.
+ `AWS\$1IGNORE\$1CONFIGURED\$1ENDPOINT\$1URLS` - 명령줄에 지정하지 않는 한 구성된 모든 엔드포인트 URL을 무시합니다.

------
#### [ Linux or macOS ]

  ```
  $ export AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
  ```

------
#### [ Windows Command Prompt ]

  **모든 세션에 대해 설정하려면**

  ```
  C:\> setx AWS_IGNORE_CONFIGURED_ENDPOINT_URLS true
  ```

  **현재 세션에만 설정하려면**

  ```
  C:\> set AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
  ```

------
#### [ PowerShell ]

  ```
  PS C:\> $Env:AWS_IGNORE_CONFIGURED_ENDPOINT_URLS="true"
  ```

------
+ `AWS\$1ENDPOINT\$1URL\$1<SERVICE>` - 특정 서비스에 사용되는 사용자 지정 엔드포인트를 지정하며, 여기서 AWS 서비스가 `<SERVICE>` 식별자로 대체됩니다. 모든 서비스별 변수에 대해서는 [서비스별 엔드포인트: 서비스별 식별자 목록](#endpoints-service-specific-table)를 참조하세요

  다음 환경 변수 예제는 AWS Elastic Beanstalk의 엔드포인트를 설정합니다.

------
#### [ Linux or macOS ]

  ```
  $ export AWS_ENDPOINT_URL_ELASTIC_BEANSTALK=http://localhost:4567
  ```

------
#### [ Windows Command Prompt ]

  **모든 세션에 대해 설정하려면**

  ```
  C:\> setx AWS_ENDPOINT_URL_ELASTIC_BEANSTALK http://localhost:4567
  ```

  **현재 세션에만 설정하려면**

  ```
  C:\> set AWS_ENDPOINT_URL_ELASTIC_BEANSTALK=http://localhost:4567
  ```

------
#### [ PowerShell ]

  ```
  PS C:\> $Env:AWS_ENDPOINT_URL_ELASTIC_BEANSTALK="http://localhost:4567"
  ```

------

환경 변수 설정에 대한 자세한 내용은 환경 변수를 사용하여 [AWS CLI에 대한 환경 변수 구성](cli-configure-envvars.md)을 참조하세요.

### 서비스별 엔드포인트: 공유 `config` 파일
<a name="endpoints-service-specific-config"></a>

공유 `config` 파일에서 `endpoint_url`은 여러 섹션에서 사용됩니다. 서비스별 엔드포인트를 설정하려면 `services` 섹션 내의 서비스 식별자 키 아래에 중첩된 `endpoint_url` 설정을 사용하세요. 공유 `config` 파일에서 `services` 섹션을 정의하는 방법에 대한 자세한 내용은 [섹션 유형: `services`](cli-configure-files.md#cli-configure-files-format-services)를 참조하세요.

다음 예제에서는 `services` 섹션을 사용하여 Amazon S3에 대한 서비스별 엔드포인트 URL과 다른 모든 서비스에 사용되는 사용자 지정 글로벌 엔드포인트를 구성합니다.

```
[profile dev1]
endpoint_url = http://localhost:1234
services = s3-specific

[services testing-s3]
s3 = 
  endpoint_url = http://localhost:4567
```

단일 프로파일로 여러 서비스에 대한 엔드포인트를 구성할 수 있습니다. 다음 예제에서는 동일한 프로파일에서 Amazon S3와 AWS Elastic Beanstalk에 대한 서비스별 엔드포인트 URL을 설정합니다.

`services` 섹션에서 사용할 모든 서비스 식별자 키 목록은 [서비스별 식별자 목록](#endpoints-service-specific-table)을 참조하세요.

```
[profile dev1]
services = testing-s3-and-eb

[services testing-s3-and-eb]
s3 = 
  endpoint_url = http://localhost:4567
elastic_beanstalk = 
  endpoint_url = http://localhost:8000
```

서비스 구성 섹션은 여러 프로파일에서 사용할 수 있습니다. 다음 예제에서는 두 개의 프로파일이 동일한 `services` 정의를 사용합니다.

```
[profile dev1]
output = json
services = testing-s3

[profile dev2]
output = text
services = testing-s3

[services testing-s3]
s3 = 
  endpoint_url = https://localhost:4567
```

### 서비스별 엔드포인트: 서비스별 식별자 목록
<a name="endpoints-service-specific-table"></a>

AWS 서비스 서비스 식별자는 모든 공백을 밑줄로 바꾸고 모든 문자를 소문자로 바꾸는 방식으로 API 모델의 `serviceId`를 기반으로 합니다.

다음 표에는 모든 서비스별 식별자, `config` 파일 키 및 환경 변수가 나열되어 있습니다.

## 계정 기반 엔드포인트
<a name="endpoints-accountid"></a>

계정 기반 엔드포인트는 다음과 같은 방법으로 지정할 수 있습니다.
+ 환경 변수
  + `AWS\$1ACCOUNT\$1ID` - 지원되는 AWS 서비스에 대한 호출에 사용할 AWS 계정 기반 엔드포인트 ID를 지정합니다.

------
#### [ Linux or macOS ]

    ```
    $ export AWS_ACCOUNT_ID=<account-id>
    ```

------
#### [ Windows Command Prompt ]

    **모든 세션에 대해 설정하려면**

    ```
    C:\> setx AWS_ACCOUNT_ID <account-id>
    ```

    **현재 세션에만 설정하려면**

    ```
    C:\> set AWS_ACCOUNT_ID=<account-id>
    ```

------
#### [ PowerShell ]

    ```
    PS C:\> $Env:AWS_ACCOUNT_ID="<account-id>"
    ```

------
  + `AWS\$1ACCOUNT\$1ID\$1ENDPOINT\$1MODE` - 지원되는 AWS 서비스에 대한 호출에 AWS 계정 기반 엔드포인트 ID를 사용할지 여부를 지정합니다. `preferred`, `disabled` 또는 `required`로 설정할 수 있습니다. 기본값은 `preferred`입니다.

------
#### [ Linux or macOS ]

    ```
    $ export AWS_ACCOUNT_ID_ENDPOINT_MODE=preferred
    ```

------
#### [ Windows Command Prompt ]

    **모든 세션에 대해 설정하려면**

    ```
    C:\> setx AWS_ACCOUNT_ID_ENDPOINT_MODE preferred
    ```

    **현재 세션에만 설정하려면**

    ```
    C:\> set AWS_ACCOUNT_ID_ENDPOINT_MODE=preferred
    ```

------
#### [ PowerShell ]

    ```
    PS C:\> $Env:AWS_ACCOUNT_ID_ENDPOINT_MODE="preferred"
    ```

------
+ `config` 파일:
  + `aws\$1account\$1id` - 지원되는 AWS 서비스에 대한 호출에 사용할 AWS 계정 기반 엔드포인트 ID를 지정합니다.

    ```
    aws_account_id = <account-id>
    ```
  + `account\$1id\$1endpoint\$1mode` - 지원되는 AWS 서비스에 대한 호출에 AWS 계정 기반 엔드포인트 ID를 사용할지 여부를 지정합니다. `preferred`, `disabled` 또는 `required`로 설정할 수 있습니다. 기본값이 선호됩니다.

    ```
    account_id_endpoint_mode = preferred
    ```

계정 기반 엔드포인트는 AWS 계정 ID를 사용하여 이 기능을 지원하는 서비스에 대한 AWS 서비스 요청 라우팅을 간소화하여 고성능과 확장성을 확보하는 데 도움이 됩니다. 자격 증명 공급자와 계정 기반 엔드포인트를 지원하는 서비스를 사용하는 경우 AWS CLI는 리전 엔드포인트 대신 계정 기반 엔드포인트를 자동으로 구성하고 사용합니다.

계정 기반 엔드포인트는 다음 형식을 사용합니다. 여기서 `<account-id>`는 AWS 계정 ID로 대체되고 `<region>`는 AWS 리전으로 대체됩니다.

```
https://<account-id>.myservice.<region>.amazonaws.com
```

기본적으로 AWS CLI에서 계정 기반 엔드포인트 모드는 `preferred`로 설정됩니다.

## 엔드포인트 구성 및 설정 우선 순위
<a name="endpoints-precedence"></a>

엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. AWS CLI 엔드포인트 구성 설정은 다음 순서에 따라 우선적으로 적용됩니다.

1. `--endpoint-url` 명령줄 옵션

1. 사용 설정된 경우, 사용자 지정 엔드포인트를 무시하도록 `AWS\$1IGNORE\$1CONFIGURED\$1ENDPOINT\$1URLS` 글로벌 엔드포인트 환경 변수 또는 프로파일 설정 `ignore\$1configure\$1endpoint\$1urls`를 사용합니다.

1. 서비스별 환경 변수 `AWS\$1ENDPOINT\$1URL\$1<SERVICE>`에서 제공하는 값(예: `AWS_ENDPOINT_URL_DYNAMODB`).

1. `AWS\$1USE\$1DUALSTACK\$1ENDPOINT`, `AWS\$1USE\$1FIPS\$1ENDPOINT` 및 `AWS\$1ENDPOINT\$1URL` 환경 변수에서 제공하는 값입니다.

1. `AWS\$1ACCOUNT\$1ID\$1ENDPOINT\$1MODE` 환경 변수는 `AWS\$1ACCOUNT\$1ID` 환경 변수 또는 `aws\$1account\$1id` 설정에서 계정 ID를 사용하여 `preferred` 또는 `required`로 설정됩니다.

1. 공유 `config` 파일의 `services` 섹션 내의 `endpoint\$1url` 설정에서 제공하는 서비스별 엔드포인트 값.

1. 공유 `config` 파일의 `profile` 내에서 `endpoint\$1url` 설정에 의해 제공되는 값.

1. `use\$1dualstack\$1endpoint`, `use\$1fips\$1endpoint` 및 `endpoint\$1url` 설정입니다.

1. `account\$1id\$1endpoint\$1mode` 설정은 `AWS\$1ACCOUNT\$1ID` 환경 변수 또는 `aws\$1account\$1id` 설정에서 계정 ID를 사용하여 `preferred` 또는 `required`로 설정됩니다.

1. 각 AWS 서비스에 대한 기본 엔드포인트 URL이 마지막에 사용됩니다. 각 리전에서 사용할 수 있는 표준 서비스 엔드포인트 목록은 *Amazon Web Services 일반 참조*의 [AWS 리전 및 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html)를 참조하세요.