AWS Identity and Access Management
사용 설명서

AWS 리전에서 AWS STS 관리

기본적으로 AWS Security Token Service(AWS STS)는 글로벌 서비스로 사용 가능하고 모든 AWS STS 요청은 https://sts.amazonaws.com의 단일 엔드포인트로 전송됩니다. AWS는 지연 시간을 줄이고, 중복으로 구축하고, 세션 토큰 유효성을 높이려면 전역 엔드포인트 대신 리전별 AWS STS 엔드포인트를 사용할 것을 권장합니다.

  • 지연 시간 감소 – 서비스 및 애플리케이션에서 지리적으로 더 가까운 엔드포인트에 AWS STS 호출을 함으로써 지연 시간 및 응답 시간을 단축하며 AWS STS 서비스에 액세스할 수 있습니다.

  • 중복된 구축 – AWS STS API 호출을 다른 리전으로 전환하는 코드를 애플리케이션에 추가할 수 있습니다. 이를 통해 첫 번째 리전에서 응답이 중단되더라도 애플리케이션이 계속해서 작동합니다. 이러한 중복성은 자동으로 구축되지 않으므로 코드에 해당 기능을 구축해야 합니다.

  • 세션 토큰 유효성 증가 – 리전별 AWS STS 엔드포인트의 세션 토큰은 모든 AWS 이전에서 유효합니다. 전역 STS 엔드포인트의 세션 토큰은 기본적으로 STS가 활성화된 AWS 리전에서만 유효합니다. 계정에 대해 새 리전을 활성화하려는 경우 리전별 STS 엔드포인트의 세션 토큰을 사용할 수 있습니다. 전역 엔드포인트를 사용하는 경우 전역 엔드포인트에 대한 STS 세션 토큰의 리전 호환성을 변경해야 합니다. 이를 통해 토큰이 모든 AWS 리전에서 유효합니다.

전역 엔드포인트 세션 토큰 관리

대부분의 AWS 리전은 기본적으로 모든 AWS 서비스의 작업이 활성화되어 있습니다. 이러한 리전은 AWS STS 사용이 자동으로 활성화됩니다. 아시아 태평양(홍콩)과 같은 일부 리전은 수동으로 활성화해야 합니다. AWS 리전 활성화 및 비활성화에 대한 자세한 내용은 AWS General Reference.의 AWS 리전 관리를 참조하십시오. 이러한 AWS 리전을 활성화할 때 자동으로 AWS STS 사용이 활성화됩니다. 비활성화된 리전에 대한 STS 엔드포인트를 활성화할 수는 없습니다. 모든 AWS 리전에서 유효한 토큰에는 기본적으로 활성화된 리전에서 유효한 토큰보다 더 많은 문자가 포함되어 있습니다. 이 설정을 변경하면 토큰을 임시로 저장한 기존 시스템에 영향을 미칠 수 있습니다.

AWS Management 콘솔, AWS CLI 또는 AWS API를 사용하여 이 설정을 변경할 수 있습니다.

전역 엔드포인트에 대한 세션 토큰의 리전 호환성 변경(콘솔)

  1. 루트 사용자 또는 IAM 관리 작업을 수행할 권한이 있는 IAM 사용자로 로그인합니다. 세션 토큰의 호환성을 변경하려면 iam:SetSecurityTokenServicePreferences 작업을 허용하는 정책이 있어야 합니다.

  2. IAM 콘솔을 엽니다. 탐색 창에서 계정 설정를 선택합니다.

  3. 3. 필요한 경우 Security Token Service (STS) 섹션을 확장합니다. 전역 엔드포인트 옆에 있는 첫 번째 표의 세션 토큰의 리전 호환성 열에 Valid only in AWS Regions enabled by default로 표시됩니다. 변경을 선택합니다.

  4. 4. 전역 엔드포인트에 대한 세션 토큰의 리전 호환성 변경 대화 상자에서 모든 AWS 리전에 유효함을 선택합니다. 변경 사항 저장을 선택합니다.

    참고

    모든 AWS 리전에서 유효한 토큰에는 기본적으로 활성화된 리전에서 유효한 토큰보다 더 많은 문자가 포함되어 있습니다. 이 설정을 변경하면 토큰을 임시로 저장한 기존 시스템에 영향을 미칠 수 있습니다.

전역 엔드포인트에 대한 세션 토큰의 리전 호환성 변경(AWS CLI)

보안 토큰 버전을 설정합니다. 버전 1 토큰은 기본적으로 이용 가능한 AWS 리전에서만 유효합니다. 이러한 토큰은 아시아 태평양(홍콩) 등과 같이 수동으로 활성화된 리전에서 작동하지 않습니다. 버전 2는 모든 리전에서 유효합니다. 하지만 버전 2 토큰에 포함된 문자가 더 많고 일시적으로 토큰을 저장하는 시스템에 영향을 미칠 수 있습니다.

전역 엔드포인트에 대한 세션 토큰의 리전 호환성 변경(AWS API)

보안 토큰 버전을 설정합니다. 버전 1 토큰은 기본적으로 이용 가능한 AWS 리전에서만 유효합니다. 이러한 토큰은 아시아 태평양(홍콩) 등과 같이 수동으로 활성화된 리전에서 작동하지 않습니다. 버전 2는 모든 리전에서 유효합니다. 하지만 버전 2 토큰에 포함된 문자가 더 많고 일시적으로 토큰을 저장하는 시스템에 영향을 미칠 수 있습니다.

AWS 리전에서 AWS STS 활성화 및 비활성화

리전에 대한 STS 엔드포인트를 활성화할 때 AWS STS에서 AWS STS 요청을 수행하는 계정의 사용자 및 역할에 임시 자격 증명을 발급할 수 있습니다. 이러한 자격 증명은 기본적으로 활성화되었거나 수동으로 활성화된 모든 리전에서 사용할 수 있습니다. 임시 자격 증명이 생성된 계정의 리전을 활성화해야 합니다. 요청 시 사용자가 동일한 계정으로 로그인하거나 각기 다른 계정으로 로그인하는지 여부는 중요하지 않습니다.

예를 들어, 계정 A의 사용자가 STS 리전 엔드포인트 https://sts.us-west-2.amazonaws.com으로 sts:AssumeRole API 요청을 보내려 할 수 있습니다. 이는 계정 B의 Developer 역할에 대한 임시 자격 증명을 요청하기 위한 것입니다. 이 요청은 계정 B의 엔터티에 대한 자격 증명을 만들기 위한 것이기 때문에 계정 B는 us-west-2 리전을 활성화해야 합니다. 계정 A(또는 다른 계정)의 사용자는 자신의 계정에서 리전이 활성화되었는지 여부와 상관없이 us-west-2 엔드포인트를 호출하여 계정 B의 자격 증명을 요청할 수 있습니다.

참고

활성 리전은 해당 계정의 임시 자격 증명을 이용하는 모두가 이용할 수 있습니다. 어떤 IAM 사용자 또는 역할이 리전에 액세스할 수 있는지 여부를 제어하려면 권한 정책에서 aws:RequestedRegion 조건 키를 사용합니다.

기본적으로 활성화된 리전에서 AWS STS 활성화 또는 비활성화(콘솔)

  1. 루트 사용자 또는 IAM 관리 작업을 수행할 권한이 있는 IAM 사용자로 로그인합니다.

  2. IAM 콘솔을 열고 탐색 창에서 계정 설정을 선택합니다.

  3. 필요한 경우 Security Token Service (STS) 목록을 확장하고, 활성화할 리전을 찾은 다음 활성화 또는 비활성화를 선택합니다. 아시아 태평양(홍콩) 리전과 같은 일부 리전은 기본적으로 활성화되지 않습니다. 이 경우 리전을 수동으로 활성화할 때 STS가 자동으로 활성화됩니다. 이후로 AWS STS는 이러한 리전에서 항상 활성 상태가 되고 비활성화할 수 없습니다. 리전을 수동으로 활성화하는 방법을 알아보려면 AWS General ReferenceAWS 리전 관리를 참조하십시오.

AWS STS 리전 사용을 위한 코드 작성

리전을 활성화한 후에 AWS STS API 호출을 그 리전으로 보낼 수 있습니다. 다음 Java 코드 조각은 AWSSecurityTokenServiceClient 객체를 구성해 setEndpoint 메서드로 EU(아일랜드)(eu-west-1) 리전으로 요청하는 방법을 보여줍니다.

AWSSecurityTokenServiceClient stsClient = new AWSSecurityTokenServiceClient(); stsClient.setRegion("eu-west-1"); stsClient.setEndpoint("sts.eu-west-1.amazonaws.com");

AWS STS에서는 setRegionsetEndpoint 메서드를 모두 사용하여 리전별 엔드포인트에 호출할 것을 권장합니다. 아시아 태평양(홍콩)과 같이 수동으로 활성화된 리전의 경우 setRegion 메서드만을 사용할 수 있습니다. 이 경우 호출은 STS 리전 엔드포인트로 전달됩니다. 리전을 수동으로 활성화하는 방법을 알아보려면 AWS General ReferenceAWS 리전 관리를 참조하십시오. 기본적으로 활성화된 리전에 대해 setRegion 메서드를 사용하는 경우 호출은 https://sts.amazonaws.com의 전역 엔드포인트로 전달됩니다.

예제의 첫 번째 줄에서 AWSSecurityTokenServiceClient라는 stsClient 객체를 인스턴스화합니다. 두 번째 줄에서는 stsClient 메서드를 호출하고 엔드포인트의 URL을 유일한 파라미터로 전달하여 setEndpoint 객체를 구성합니다. stsClient 객체를 사용하는 모든 API 호출은 이제 지정된 엔드포인트로 전송됩니다.

다른 모든 언어 및 프로그래밍 환경의 조합에 대해서는 해당 SDK 문서를 참조하십시오.

리전 엔드포인트

다음 표에서는 해당 리전과 그 엔드포인트를 나열합니다. 기본적으로 어떤 것들이 활성화되며, 어떤 것을 활성화 또는 비활성화할 수 있는지를 보여줍니다.

리전 이름 엔드포인트 기본 활성화 활성화/비활성화 가능
--전역-- sts.amazonaws.com 아니요
미국 동부(오하이오) sts.us-east-2.amazonaws.com
미국 동부(버지니아 북부) sts.us-east-1.amazonaws.com 아니요
미국 서부(캘리포니아 북부 지역) sts.us-west-1.amazonaws.com
미국 서부(오레곤) sts.us-west-2.amazonaws.com
캐나다(중부) sts.ca-central-1.amazonaws.com
아시아 태평양(도쿄) sts.ap-northeast-1.amazonaws.com
아시아 태평양(서울) sts.ap-northeast-2.amazonaws.com
아시아 태평양(뭄바이) sts.ap-south-1.amazonaws.com
아시아 태평양(싱가포르) sts.ap-southeast-1.amazonaws.com
아시아 태평양(시드니) sts.ap-southeast-2.amazonaws.com
아시아 태평양(홍콩) sts.ap-east-1.amazonaws.com 아니요(리전 활성화 전까지) 아니요
중동(바레인) sts.me-south-1.amazonaws.com 아니요(리전 활성화 전까지) 아니요
EU(프랑크푸르트) sts.eu-central-1.amazonaws.com
EU(아일랜드) sts.eu-west-1.amazonaws.com
EU(런던) sts.eu-west-2.amazonaws.com
EU(파리) sts.eu-west-3.amazonaws.com
EU(스톡홀름) sts.eu-north-1.amazonaws.com
남아메리카(상파울루) sts.sa-east-1.amazonaws.com

참고

us-east-2.amazonaws.com과 같은 리전 엔드포인트에 대한 호출은 리전 서비스에 대한 모든 호출과 마찬가지로 AWS CloudTrail에서 로깅됩니다. 전역적 엔드포인트 sts.amazonaws.com에 대한 호출은 글로벌 서비스에 대한 호출로 로깅됩니다. 자세한 내용은 AWS CloudTrail을 사용하여 IAM 및 AWS STS API 호출 로깅 단원을 참조하십시오.