AWS STS 리전에서 AWS 관리 - AWS Identity and Access Management

AWS STS 리전에서 AWS 관리

기본적으로 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 일반 참조의 AWS 리전 관리를 참조하세요. 이러한 AWS 리전을 활성화할 때 자동으로 AWS STS 사용이 활성화됩니다. 비활성화된 리전에 대한 STS 엔드포인트를 활성화할 수는 없습니다. 모든 AWS 리전에서 유효한 토큰에는 기본적으로 활성화된 리전에서 유효한 토큰보다 더 많은 문자가 포함되어 있습니다. 이 설정을 변경하면 토큰을 임시로 저장한 기존 시스템에 영향을 미칠 수 있습니다.

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

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

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

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

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

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

    참고

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

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

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

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

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

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

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

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

참고

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

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

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

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

  3. 필요한 경우 보안 토큰 서비스(STS)를 확장하고, 활성화할 리전을 찾은 다음 활성화(Activate) 또는 비활성화(Deactivate)를 선택합니다. 활성화해야 하는 리전의 경우 리전을 활성화하면 STS가 자동으로 활성화됩니다. 리전을 활성화한 후에는 AWS STS가 해당 리전에 대해 항상 활성화되어 있으며 비활성화할 수 없습니다. 리전을 활성화하는 방법을 알아보려면 AWS 일반 참조AWS 리전 관리를 참조하세요.

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

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

EndpointConfiguration regionEndpointConfig = new EndpointConfiguration("https://sts.eu-west-1.amazonaws.com", "eu-west-1"); AWSSecurityTokenService stsRegionalClient = AWSSecurityTokenServiceClientBuilder.standard() .withCredentials(credentials) .withEndpointConfiguration(regionEndpointConfig) .build();

AWS STS에서는 리전 엔드포인트에 호출할 것을 권장합니다. 리전을 수동으로 활성화하는 방법을 알아보려면 AWS 일반 참조AWS 리전 관리를 참조하세요.

이 예에서 첫 번째 줄은 EndpointConfiguration라는 regionEndpointConfig 객체를 인스턴스화하여 엔드포인트의 URL과 리전을 파라미터로 전달합니다.

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

리전 및 엔드포인트

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

리전 이름 Endpoint 기본 활성화 수동으로 활성화/비활성화
--전역-- 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
Africa (Cape Town) sts.af-south-1.amazonaws.com 아니요¹ 아니요
Asia Pacific (Hong Kong) sts.ap-east-1.amazonaws.com 아니요¹ 아니요
Asia Pacific (Mumbai) sts.ap-south-1.amazonaws.com
Asia Pacific (Osaka) sts.ap-northeast-3.amazonaws.com
Asia Pacific (Seoul) sts.ap-northeast-2.amazonaws.com
아시아 태평양(싱가포르) sts.ap-southeast-1.amazonaws.com
아시아 태평양(시드니) sts.ap-southeast-2.amazonaws.com
아시아 태평양(도쿄) sts.ap-northeast-1.amazonaws.com
Canada (Central) sts.ca-central-1.amazonaws.com
Europe (Frankfurt) sts.eu-central-1.amazonaws.com
유럽(아일랜드) sts.eu-west-1.amazonaws.com
Europe (London) sts.eu-west-2.amazonaws.com
Europe (Milan) sts.eu-south-1.amazonaws.com 아니요¹ 아니요
Europe (Paris) sts.eu-west-3.amazonaws.com
Europe (Stockholm) sts.eu-north-1.amazonaws.com
중동(바레인) sts.me-south-1.amazonaws.com 아니요¹ 아니요
남아메리카(상파울루) sts.sa-east-1.amazonaws.com

¹리전을 사용하려면 리전을 활성화해야 합니다. 그러면 STS가 자동으로 활성화됩니다. 이러한 리전에서는 수동으로 STS를 활성화하거나 비활성화할 수 없습니다.

AWS CloudTrail 및 리전 엔드포인트

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