임시 자격 증명 받기 AWS STS - Java용 AWS SDK

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

임시 자격 증명 받기 AWS STS

AWS STS(AWS Security Token Service)를 사용하여 AWS 서비스에 액세스하는 데 사용할 수 있는 권한이 제한된 임시 자격 증명을 가져올 수 있습니다.

AWS STS를 사용하려면 세 가지 단계가 필요합니다.

  1. 리전을 활성화합니다(선택 사항).

  2. AWS STS에서 임시 보안 자격 증명을 가져옵니다.

  3. 자격 증명을 사용하여 AWS 리소스에 액세스합니다.

참고

리전 활성화는 선택 사항;이지만, 임시 보안 자격 증명을 글로벌 엔드포인트인 sts.amazonaws.com에서 가져옵니다. 하지만 첫 번째 엔드포인트에 대한 AWS STS 요청이 실패할 경우 추가 엔드포인트를 사용하여 요청에 중복성을 구축할 수 있도록 하고 지연 시간을 줄이려면 자격 증명을 사용하는 서비스나 애플리케이션에 지리적으로 더 가까운 리전을 활성화할 수 있습니다.

(선택 사항) AWS STS 리전 활성화 및 사용

AWS STS에 사용할 리전을 활성화하려면 AWS Management Console을 사용하여 리전을 선택하고 활성화합니다.

추가 STS 리전을 활성화하려면

  1. 새 리전에서 AWS STS를 활성화할 계정에 대해 IAM 관리 작업 "iam:*"을 수행할 권한을 지닌 IAM 사용자로 로그인합니다.

  2. IAM 콘솔을 열고 탐색 창에서 [Account Settings]를 클릭합니다.

  3. [STS Regions] 목록을 펼쳐서 사용하고자 하는 리전을 찾은 다음 [Activate]를 클릭합니다.

그 다음에는 해당 리전과 연결된 STS 엔드포인트를 직접 호출할 수 있습니다.

참고

STS 리전 활성화에 대한 자세한 내용과 사용 가능한 AWS STS 엔드포인트 목록은 IAM User Guide에서 AWS 리전에서 AWS STS 활성화 및 비활성화를 참조하십시오.

AWS STS에서 임시 보안 자격 증명을 가져옵니다.

Java용 AWS SDK를 사용하여 임시 보안 자격 증명을 가져오려면

  1. AWSSecurityTokenServiceClient 객체를 만듭니다.

    AWSSecurityTokenService sts_client = new AWSSecurityTokenServiceClientBuilder().standard().withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("sts-endpoint.amazonaws.com", "signing-region")).build()

    인수 없이 클라이언트를 생성하는 경우(AWSSecurityTokenService sts_client = new AWSSecurityTokenServiceClientBuilder().standard().build();), 자격 증명을 가져오는 데 기본 자격 증명 공급자 체인이 사용됩니다. 원할 경우 특정 자격 증명 공급자를 지정할 수도 있습니다. 자세한 내용은 Java용 AWS SDK에서 AWS 자격 증명 제공을 참조하십시오.

  2. GetSessionTokenRequest 객체를 만들고 필요에 따라 임시 자격 증명의 유효 기간(초)을 설정합니다.

    GetSessionTokenRequest session_token_request = new GetSessionTokenRequest(); session_token_request.setDurationSeconds(7200); // optional.

    임시 자격 증명의 기간은 IAM 사용자의 경우 900초(15분) ~ 129600초(36시간)입니다. 기간을 지정하지 않으면 기본적으로 43,200초(12시간)가 사용됩니다.

    루트 AWS 계정의 경우, 임시 자격 증명의 유효 범위는 900초 ~ 3600초(1시간)이며, 기간을 지정하지 않을 경우 기본값은 3600초입니다.

    중요

    이는 적극 권장보안 관점에서 IAM 사용자 사용 AWS에 대한 루트 계정 대신. 자세한 내용은 IAM User Guide의 IAM 모범 사례를 참조하십시오.

  3. GetSessionTokenRequest 객체를 사용하여 세션 토큰을 가져오려면 STS 클라이언트에 대해 getSessionToken을 호출합니다.

    GetSessionTokenResult session_token_result = sts_client.getSessionToken(session_token_request);
  4. getSessionToken 호출의 결과를 사용하여 세션 자격 증명을 가져옵니다.

    Credentials session_creds = session_token_result.getCredentials();

세션 자격 증명은 GetSessionTokenRequest 객체에 지정된 기간 동안만 액세스 권한을 제공합니다. 자격 증명이 만료되고 나면 getSessionToken을 다시 호출하여 새 세션 토큰을 가져와야만 AWS에 계속 액세스할 수 있습니다.

임시 자격 증명을 사용하여 AWS 리소스에 액세스합니다.

임시 보안 자격 증명을 가져오고 나면 이러한 자격 증명과 Explicitly Specifying Credentials에 설명된 기법을 사용하여 관련 리소스를 사용할 수 있도록 AWS 서비스 클라이언트를 초기화할 수 있습니다.

예를 들어 임시 서비스 자격 증명을 사용하여 S3 클라이언트를 만들려면:

BasicSessionCredentials sessionCredentials = new BasicSessionCredentials( session_creds.getAccessKeyId(), session_creds.getSecretAccessKey(), session_creds.getSessionToken()); AmazonS3 s3 = AmazonS3ClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(sessionCredentials)) .build();

이제 AmazonS3 객체를 사용하여 Amazon S3 요청을 작성할 수 있습니다.

자세한 정보는 단원을 참조하십시오.

임시 보안 자격 증명을 사용하여 AWS 리소스를 사용하는 방법에 대한 자세한 내용은 IAM User Guide에서 다음 단원을 참조하십시오.