에 임시 자격 증명을 제공하십시오. AWS SDK for Java - AWS SDK for Java 1.x

곧 출시될 end-of-support AWS SDK for Java (v1) 버전을 발표했습니다. AWS SDK for Java V2로 마이그레이션하실 것을 권장합니다. 마이그레이션 날짜, 추가 세부 정보 및 방법에 대한 자세한 내용은 링크된 공지 사항을 참조하세요.

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

에 임시 자격 증명을 제공하십시오. AWS SDK for Java

를 Amazon Web Services요청하려면 에서 서비스를 호출할 때 사용할 AWS 임시 자격 증명을 제공해야 합니다. AWS SDK for Java 다음과 같은 방법으로 추가가 가능합니다.

  • 기본 자격 증명 공급자 체인(권장)을 사용합니다.

  • 특정 자격 증명 공급자 또는 공급자 체인을 사용합니다(또는 직접 생성).

  • 임시 자격 증명 정보를 코드로 직접 제공하세요.

기본 자격 증명 공급자 체인 사용

인수를 제공하지 않고 새 서비스 클라이언트를 초기화하면 Default 클래스로 구현된 기본 자격 증명 공급자 체인을 사용하여 임시 자격 증명을 AWS SDK for Java 찾으려고 시도합니다. AWSCredentialsProviderChain 기본 자격 증명 공급자 체인은 다음 순서대로 자격 증명을 찾습니다.

  1. 환경 변수-AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, 및 AWS_SESSION_TOKEN입니다. 에서는 EnvironmentVariableCredentialsProvider클래스를 AWS SDK for Java 사용하여 이러한 자격 증명을 로드합니다.

  2. Java 시스템 속성-aws.accessKeyId, aws.secretKey, 및 aws.sessionToken입니다. AWS SDK for Java 는 를 SystemPropertiesCredentialsProvider사용하여 이러한 자격 증명을 로드합니다.

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

  4. 기본 자격 증명 프로필 파일은 일반적으로 위치에 있으며 ~/.aws/credentials (위치는 플랫폼마다 다를 수 있음) 여러 AWS SDK와 에서 공유합니다. AWS CLI AWS SDK for Java 에서는 를 ProfileCredentialsProvider사용하여 이러한 자격 증명을 로드합니다.

    에서 제공하는 aws configure 명령을 사용하여 자격 증명 파일을 만들거나 텍스트 편집기로 파일을 편집하여 자격 증명 파일을 만들 수 있습니다. AWS CLI자격 증명 파일 형식에 대한 자세한 내용은 AWS 자격 증명 파일 형식을 참조하세요.

  5. Amazon ECS 컨테이너 자격 증명은 환경 변수 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI가 설정되면 Amazon ECS에서 로드됩니다. AWS SDK for Java 에서는 를 ContainerCredentialsProvider사용하여 이러한 자격 증명을 로드합니다. 이 값에 대한 IP 주소를 지정할 수 있습니다.

  6. 인스턴스 프로필 자격 증명 - EC2 인스턴스에서 사용되며 Amazon EC2 메타데이터 서비스를 통해 전달됩니다. AWS SDK for Java 는 를 InstanceProfileCredentialsProvider사용하여 이러한 자격 증명을 로드합니다. 이 값에 대한 IP 주소를 지정할 수 있습니다.

    참고

    인스턴스 프로파일 자격 증명은 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI가 설정되지 않은 경우에만 사용됩니다. 자세한 내용은 EC2를 ContainerCredentialsProviderWrapper 참조하십시오.

임시 자격 증명 설정

AWS 임시 자격 증명을 사용하려면 이전 위치 중 하나 이상에 임시 자격 증명을 설정해야 합니다. 자격 증명 설정에 대한 자세한 내용은 다음 주제를 참조하십시오.

대체 자격 증명 프로필 설정

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

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

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

export AWS_PROFILE="myProfile"

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

set AWS_PROFILE="myProfile"

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

참고

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

대체 자격 증명 파일 위치 설정

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

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

기본 자격 증명 파일 위치를 재정의하려면

  • 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 파일 형식

이 안내서의 기본 설정에 있는 지침을 따르면 자격 증명 파일은 다음과 같은 기본 형식을 가져야 합니다.

[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_timeoutmetadata_service_num_attempts와 같은 추가 필드를 지정할 수 있습니다. CLI에서는 구성할 수 없습니다. 사용하려면 파일을 직접 편집해야 합니다. 구성 파일 및 사용 가능한 필드에 대한 자세한 내용은 사용 AWS Command Line Interface 설명서의 AWS Command Line Interface구성을 참조하십시오.

자격 증명 로드

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

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

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

자격 증명 공급자 또는 공급자 체인 지정

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

인터페이스를 입력으로 받는 클라이언트 빌더에 자격 증명 공급자 또는 공급자 체인의 인스턴스를 제공합니다. AWSCredentialsProvider 다음 예제는 특별히 환경 자격 증명을 사용하는 방법을 보여줍니다.

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

AWS SDK for Java제공된 자격 증명 공급자 및 제공자 체인의 전체 목록은 의 알려진 모든 구현 클래스를 참조하십시오. AWSCredentialsProvider

참고

이 기법을 사용하면 AWSCredentialsProvider 인터페이스를 구현하는 자체 자격 증명 공급자를 사용하거나 클래스를 서브클래싱하여 생성한 자격 증명 공급자 또는 공급자 체인을 제공할 수 있습니다. AWSCredentialsProviderChain

임시 자격 증명을 명시적으로 지정

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

  1. BasicSessionCredentials클래스를 인스턴스화하고 SDK가 연결에 사용할 AWS 액세스 키, AWS 비밀 키, AWS 세션 토큰을 제공합니다.

  2. 객체를 AWSStaticCredentialsProvider사용하여 를 생성합니다. AWSCredentials

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

다음은 예입니다.

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

추가 정보