The AWS SDK for Java 1.x는 2024년 7월 31일부터 유지 관리 모드로 전환되었으며 2025년 12월 31end-of-support
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
에 임시 자격 증명 제공 AWS SDK for Java
에 요청하려면가 서비스를 호출 AWS SDK for Java 할 때 사용할 AWS 임시 자격 증명을 제공해야 Amazon Web Services합니다. 다음과 같은 방법으로 추가가 가능합니다.
-
기본 자격 증명 공급자 체인(권장)을 사용합니다.
-
특정 자격 증명 공급자 또는 공급자 체인을 사용합니다(또는 직접 생성).
-
임시 자격 증명 정보를 코드로 직접 제공하세요.
기본 자격 증명 공급자 체인 사용
인수를 제공하지 않고 새 서비스 클라이언트를 초기화하면는 DefaultAWSCredentialsProviderChain 클래스에서 구현한 기본 자격 증명 공급자 체인을 사용하여 임시 자격 증명을 찾으려고 AWS SDK for Java 시도합니다. 기본 자격 증명 공급자 체인은 다음 순서대로 자격 증명을 찾습니다.
-
환경 변수-
AWS_ACCESS_KEY_ID
,AWS_SECRET_KEY
또는 및AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
. 는 EnvironmentVariableCredentialsProvider 클래스를 AWS SDK for Java 사용하여 이러한 자격 증명을 로드합니다. -
Java 시스템 속성-
aws.accessKeyId
,aws.secretKey
(가 아님aws.secretAccessKey
) 및aws.sessionToken
. 는를 AWS SDK for Java 사용하여 이러한 자격 증명을 로드SystemPropertiesCredentialsProvider합니다. -
환경 또는 컨테이너의 웹 자격 증명 토큰 자격 증명
-
기본 자격 증명 프로필 파일은 일반적으로
~/.aws/credentials
(플랫폼마다 위치가 다를 수 있음)에 위치하며 많은 AWS SDKs 및에서 공유합니다 AWS CLI. 는를 AWS SDK for Java 사용하여 이러한 자격 증명을 로드ProfileCredentialsProvider합니다.에서 제공하는
aws configure
명령을 사용하여 자격 증명 파일을 생성 AWS CLI하거나 텍스트 편집기로 파일을 편집하여 생성할 수 있습니다. 자격 증명 파일 형식에 대한 자세한 내용은 AWS 자격 증명 파일 형식을 참조하세요. -
Amazon ECS 컨테이너 자격 증명 - 환경 변수가 설정된 ECS 경우 Amazon에서 로드
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
됩니다. 는를 AWS SDK for Java 사용하여 이러한 자격 증명을 로드ContainerCredentialsProvider합니다. 이 값에 대한 IP 주소를 지정할 수 있습니다. -
인스턴스 프로필 자격 증명 - EC2 인스턴스에서 사용되며 Amazon EC2 메타데이터 서비스를 통해 전달됩니다. 는를 AWS SDK for Java 사용하여 이러한 자격 증명을 로드InstanceProfileCredentialsProvider합니다. 이 값에 대한 IP 주소를 지정할 수 있습니다.
참고
인스턴스 프로파일 자격 증명은
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
가 설정되지 않은 경우에만 사용됩니다. 자세한 내용은 EC2ContainerCredentialsProviderWrapper 섹션을 참조하세요.
임시 자격 증명 설정
AWS 임시 자격 증명을 사용하려면 이전 위치 중 하나 이상에 설정해야 합니다. 자격 증명 설정에 대한 자세한 내용은 다음 주제를 참조하십시오.
-
환경이나 기본 자격 증명 프로필 파일에서 자격 증명을 지정하려면 임시 자격 증명 설정을 참조하세요.
-
Java 시스템 속성을 설정하려면 공식 Java Tutorials 웹 사이트에서 시스템 속성
자습서를 참조하세요. -
EC2 인스턴스에서 인스턴스 프로필 자격 증명을 설정하고 사용하려면 의 AWS 리소스에 대한 액세스 권한을 부여하는 IAM 역할 사용을 Amazon EC2 참조하세요.
대체 자격 증명 프로필 설정
는 기본적으로 기본 프로필을 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
을 사용할 수 있습니다.
참고
이 환경 변수는 이 시스템 속성보다 우선합니다.
대체 자격 증명 파일 위치 설정
는 기본 자격 증명 파일 위치에서 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_timeout
및 metadata_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 액세스 자격 증명을 지정합니다.
-
BasicSessionCredentials 클래스를 인스턴스화하고 SDK가 연결에 AWS 사용할 액세스 키, AWS 보안 키 및 AWS 세션 토큰을 제공합니다.
-
AWSCredentials
객체AWSStaticCredentialsProvider로를 생성합니다. -
AWSStaticCredentialsProvider
를 사용하여 클라이언트 빌더를 구성하고 클라이언트를 빌드합니다.
다음은 예입니다.
BasicSessionCredentials awsCreds = new BasicSessionCredentials("access_key_id", "secret_key_id", "session_token"); AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(awsCreds)) .build();