

 AWS SDK for Java 1.x는 2025년 12월 31일에 end-of-support되었습니다. 새로운 기능, 가용성 개선 및 보안 업데이트를 계속 받으려면 [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html)로 마이그레이션하는 것이 좋습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 에 임시 자격 증명 제공 AWS SDK for Java
<a name="credentials"></a>

에 요청하려면가 서비스를 호출 AWS SDK for Java 할 때 사용할 AWS 임시 자격 증명을 제공해야 Amazon Web Services합니다. 다음과 같은 방법으로 추가가 가능합니다.
+ 기본 자격 증명 공급자 체인*(권장)*을 사용합니다.
+ 특정 자격 증명 공급자 또는 공급자 체인을 사용합니다(또는 직접 생성).
+ 임시 자격 증명 정보를 코드로 직접 제공하세요.

## 기본 자격 증명 공급자 체인 사용
<a name="credentials-default"></a>

인수를 제공하지 않고 새 서비스 클라이언트를 초기화하면는 [DefaultAWSCredentialsProviderChain](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html) 클래스에서 구현한 *기본 자격 증명 공급자 체인을 사용하여 임시 자격 증명을* 찾으려고 AWS SDK for Java 시도합니다. 기본 자격 증명 공급자 체인은 다음 순서대로 자격 증명을 찾습니다.

1.  **환경 변수**-`AWS_ACCESS_KEY_ID`, `AWS_SECRET_KEY`, `AWS_SECRET_ACCESS_KEY` 및 `AWS_SESSION_TOKEN`입니다. 는 [EnvironmentVariableCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/EnvironmentVariableCredentialsProvider.html) 클래스를 AWS SDK for Java 사용하여 이러한 자격 증명을 로드합니다.

1.  **Java 시스템 속성**-`aws.accessKeyId`, `aws.secretKey`(`aws.secretAccessKey`는 아님) 및 `aws.sessionToken`입니다. AWS SDK for Java 는 [SystemPropertiesCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/SystemPropertiesCredentialsProvider.html)를 사용하여 이 자격 증명을 로드합니다.

1.  환경 또는 컨테이너의 **웹 자격 증명 토큰 자격 증명**

1.  **기본 자격 증명 프로필 파일은** 일반적으로에 위치하며`~/.aws/credentials`(위치는 플랫폼마다 다를 수 있음), 많은 AWS SDKs 및에서 공유합니다 AWS CLI. 는 [ProfileCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/profile/ProfileCredentialsProvider.html)를 AWS SDK for Java 사용하여 이러한 자격 증명을 로드합니다.

   에서 제공하는 `aws configure` 명령을 사용하여 자격 증명 파일을 생성 AWS CLI하거나 텍스트 편집기로 파일을 편집하여 생성할 수 있습니다. 자격 증명 파일 형식에 대한 자세한 내용은 [AWS 자격 증명 파일 형식](#credentials-file-format)을 참조하세요.

1.  **Amazon ECS 컨테이너 자격 증명**은 환경 변수 `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`가 설정되면 Amazon ECS에서 로드됩니다. 는 [ContainerCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/ContainerCredentialsProvider.html)를 AWS SDK for Java 사용하여 이러한 자격 증명을 로드합니다. 이 값에 대한 IP 주소를 지정할 수 있습니다.

1.  **인스턴스 프로파일 자격 증명** - EC2 인스턴스에서 사용되며 Amazon EC2 메타데이터 서비스를 통해 전달됩니다. 는 [InstanceProfileCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/InstanceProfileCredentialsProvider.html)를 AWS SDK for Java 사용하여 이러한 자격 증명을 로드합니다. 이 값에 대한 IP 주소를 지정할 수 있습니다.
**참고**  
인스턴스 프로파일 자격 증명은 `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`가 설정되지 않은 경우에만 사용됩니다. 자세한 내용은 [EC2ContainerCredentialsProviderWrapper](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/EC2ContainerCredentialsProviderWrapper.html)를 참조하십시오.

### 임시 자격 증명 설정
<a name="setting-credentials"></a>

 AWS 임시 자격 증명을 사용하려면 이전 위치 중 *하나 이상*에 설정해야 합니다. 자격 증명 설정에 대한 자세한 내용은 다음 주제를 참조하십시오.
+ *환경*이나 기본 *자격 증명 프로필 파일*에서 자격 증명을 지정하려면 [임시 자격 증명 설정](setup-credentials.md#setup-credentials-setting)을 참조하세요.
+ Java *시스템 속성*을 설정하려면 공식 *Java Tutorials* 웹 사이트에서 [시스템 속성](http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html) 자습서를 참조하세요.
+ EC2 *인스턴스에서 인스턴스 프로파일 자격 증명을* 설정하고 사용하려면 [IAM 역할을 사용하여 AWS 리소스에 대한 액세스 권한 부여를 Amazon EC2](java-dg-roles.md) 참조하세요.

### 대체 자격 증명 프로필 설정
<a name="setting-an-alternate-credentials-profile"></a>

는 기본적으로 *기본* 프로필을 AWS SDK for Java 사용하지만 자격 증명 파일에서 소싱되는 프로필을 사용자 지정하는 방법이 있습니다.

 AWS 프로필 환경 변수를 사용하여 SDK에서 로드한 프로필을 변경할 수 있습니다.

예를 들어 Linux, macOS, 또는 Unix에서는 다음 명령을 실행하여 프로필을 *myProfile*로 변경합니다.

```
export AWS_PROFILE="myProfile"
```

Windows에서는 다음을 사용합니다.

```
set AWS_PROFILE="myProfile"
```

`AWS_PROFILE` 환경 변수를 설정하면 공식적으로 지원되는 모든 AWS SDKs 및 도구( AWS CLI 및 포함)의 자격 증명 로드에 영향을 미칩니다 AWS Tools for Windows PowerShell. Java 애플리케이션용 프로필만 변경하려면 대신에 시스템 속성인 `aws.profile`을 사용할 수 있습니다.

**참고**  
이 환경 변수는 이 시스템 속성보다 우선합니다.

### 대체 자격 증명 파일 위치 설정
<a name="setting-an-alternate-credentials-file-location"></a>

는 기본 자격 증명 파일 위치에서 AWS 임시 자격 증명을 자동으로 AWS SDK for Java 로드합니다. 하지만 자격 증명 파일의 전체 경로를 사용하여 `AWS_CREDENTIAL_PROFILES_FILE` 환경 변수를 설정함으로써 이 위치를 지정할 수도 있습니다.

이 기능을 사용하여가 자격 증명 파일을 AWS SDK for Java 찾는 위치를 일시적으로 변경할 수 있습니다(예: 명령줄로이 변수를 설정). 또는 사용자 또는 시스템 환경에서 환경 변수를 설정하여 사용자 또는 시스템 수준에서 변경할 수도 있습니다.

#### 기본 자격 증명 파일 위치를 재정의하려면
<a name="w3aab9c15b9c11b7b1"></a>
+ `AWS_CREDENTIAL_PROFILES_FILE` 환경 변수를 AWS 자격 증명 파일의 위치로 설정합니다.
  + Linux, macOS 또는 Unix에서는 다음을 사용하세요.

    ```
    export AWS_CREDENTIAL_PROFILES_FILE=path/to/credentials_file
    ```
  + Windows에서는 다음을 사용합니다.

    ```
    set AWS_CREDENTIAL_PROFILES_FILE=path/to/credentials_file
    ```

### `Credentials` 파일 형식
<a name="credentials-file-format"></a>

이 안내서의 [기본 설정에 있는 지침](signup-create-iam-user.md#setup-temp-creds)을 따르면 자격 증명 파일은 다음과 같은 기본 형식을 가져야 합니다.

```
[default]
aws_access_key_id=<value from AWS access portal>
aws_secret_access_key=<value from AWS access portal>
aws_session_token=<value from AWS access portal>

[profile2]
aws_access_key_id=<value from AWS access portal>
aws_secret_access_key=<value from AWS access portal>
aws_session_token=<value from AWS access portal>
```

프로필 이름은 대괄호에 지정되며(예: `[default]`), 그 뒤에는 해당 프로필의 구성 가능한 필드가 키-값 페어로 이어집니다. `credentials` 파일에 여러 프로필을 지정할 수 있으며, `aws configure --profile PROFILE_NAME `을 사용하여 이러한 프로필을 편집하거나 추가하여 구성할 프로필을 선택할 수 있습니다.

`metadata_service_timeout` 및 `metadata_service_num_attempts`와 같은 추가 필드를 지정할 수 있습니다. CLI에서는 구성할 수 없습니다. 사용하려면 파일을 직접 편집해야 합니다. 구성 파일 및 사용 가능한 필드에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서의 [구성을 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) 참조하세요.

### 자격 증명 로드
<a name="loading-credentials"></a>

임시 자격 증명을 설정한 후에는 SDK에서 기본 자격 증명 공급자 체인을 사용하여 로드할 수 있습니다.

이렇게 하려면 다음과 같이 빌더에 자격 증명을 명시적으로 제공하지 않고 AWS 서비스 클라이언트를 인스턴스화합니다.

```
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                       .withRegion(Regions.US_WEST_2)
                       .build();
```

## 자격 증명 공급자 또는 공급자 체인 지정
<a name="credentials-specify-provider"></a>

클라이언트 빌드를 사용하여 *기본* 자격 증명 공급자 체인과 다른 자격 증명 공급자를 지정할 수 있습니다.

[AWSCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/AWSCredentialsProvider.html) 인터페이스를 입력으로 사용하는 클라이언트 빌더에 자격 증명 공급자나 공급자 체인의 인스턴스를 제공합니다. 다음 예제는 특별히 *환경* 자격 증명을 사용하는 방법을 보여줍니다.

```
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                       .withCredentials(new EnvironmentVariableCredentialsProvider())
                       .build();
```

 AWS SDK for Java제공된 자격 증명 공급자 및 공급자 체인의 전체 목록은 [AWSCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/AWSCredentialsProvider.html)에서 **알려진 모든 구현 클래스**를 참조하세요.

**참고**  
이 기술을 활용하면 `AWSCredentialsProvider` 인터페이스를 구현하는 고유의 자격 증명 공급자를 사용하거나 [AWSCredentialsProviderChain](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/AWSCredentialsProviderChain.html) 클래스를 하위 클래스로 분류하여 자신이 생성하는 자격 증명 공급자 또는 공급자 체인을 제공할 수 있습니다.

## 임시 자격 증명을 명시적으로 지정
<a name="credentials-explicit"></a>

기본 자격 증명 체인이나 특정/사용자 지정 공급자 또는 공급자 체인이 코드에서 작동하지 않는 경우 명시적으로 제공하는 자격 증명을 설정할 수 있습니다. 를 사용하여 임시 자격 증명을 검색한 경우이 방법을 AWS STS사용하여 AWS 액세스를 위한 자격 증명을 지정합니다.

1. [BasicSessionCredentials](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/BasicSessionCredentials.html) 클래스를 인스턴스화하고 SDK가 연결에 사용할 액세스 키, AWS 비밀 키 및 AWS 세션 토큰을 제공합니다 AWS .

1. `AWSCredentials` 객체를 사용하여 [AWSStaticCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/AWSStaticCredentialsProvider.html)를 생성합니다.

1. `AWSStaticCredentialsProvider`를 사용하여 클라이언트 빌더를 구성하고 클라이언트를 빌드합니다.

다음은 예입니다.

```
BasicSessionCredentials awsCreds = new BasicSessionCredentials("access_key_id", "secret_key_id", "session_token");
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                        .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
                        .build();
```

## 추가 정보
<a name="more-info"></a>
+  [IAM 사용자 가입 AWS 및 생성](signup-create-iam-user.md) 
+  [개발을 위한 AWS 자격 증명 및 리전 설정](setup-credentials.md) 
+  [IAM 역할을 사용하여의 AWS 리소스에 대한 액세스 권한 부여 Amazon EC2](java-dg-roles.md) 