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

AWS 리전에서 AWS STS 관리

리전 엔드포인트는 AWS 웹 서비스의 특정 리전 내 진입점의 URL입니다. AWS에서는 전역 엔드포인트 대신 리전별 AWS Security Token Service(AWS STS) 엔드포인트를 사용하여 지연 시간을 줄이고, 중복으로 구축하고, 세션 토큰 유효성을 높일 것을 권장합니다. 전역(레거시) AWS STS 엔드포인트(https://sts.amazonaws.com)은 가용성이 높지만 단일 AWS 리전인 미국 동부(버지니아 북부)에서 호스팅되며 다른 엔드포인트와 마찬가지로 다른 리전의 엔드포인트로 자동 장애 조치를 제공하지는 않습니다.

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

  • 중복 구축 - 워크로드 내에서 발생하는 장애의 영향을 예측 가능한 영향 억제 범위를 가진 한정된 수의 구성 요소로 제한할 수 있습니다. 리전별 AWS STS 엔드포인트를 사용하면 구성 요소의 범위를 세션 토큰의 범위에 맞출 수 있습니다. 이 신뢰성 요소에 대한 자세한 내용은 AWS Well-Architected Framework의 장애 격리를 사용하여 워크로드 보호를 참조하세요.

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

AWS STS 리전의 목록은 AWS STS 리전 및 엔드포인트 섹션을 참조하세요.

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

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

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

참고

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

기본적으로 활성화된 리전에서 AWS STS 활성화 또는 비활성화(콘솔)
  1. 루트 사용자 또는 IAM 관리 작업을 수행할 권한이 있는 사용자로 로그인합니다.

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

  3. Security Token Service (STS)(Security Token Service(STS)) 섹션의 Endpoints(엔드포인트)에서 구성하려는 리전을 찾은 다음 STS status(STS 상태) 열에서 Active(활성) 또는 Inactive(비활성)를 선택합니다.

  4. 열리는 대화 상자에서 Activate(활성화) 또는 Deactivate(비활성화)를 선택합니다.

활성화해야 하는 리전의 경우 리전을 활성화하면 AWS STS가 자동으로 활성화됩니다. 리전을 활성화한 후에는 AWS STS가 해당 리전에 대해 항상 활성화되어 있으며 비활성화할 수 없습니다. 기본적으로 비활성화된 리전을 활성화하는 방법에 대해 알아보려면 AWS Account Management 참조 안내서의 계정에서 사용할 수 있는 AWS 리전 지정을 참조하세요.

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

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

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

AWS STS에서는 리전 엔드포인트에 호출할 것을 권장합니다. 리전을 수동으로 활성화하는 방법에 대해 알아보려면 AWS Account Management 참조 안내서의 계정에서 사용할 수 있는 AWS 리전 지정을 참조하세요.

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

AWS SDK의 환경 변수를 사용해 AWS STS 리전 엔드포인트를 설정하는 방법은 AWS SDK 및 도구 참조 가이드AWS STS 리전화된 엔드포인트를 참조하세요.

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

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

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

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

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

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

  3. Security Token Service (STS)(Security Token Service (STS)) 섹션의 Session Tokens from the STS endpoints(STS 엔드포인트의 세션 토큰). Global endpoint(글로벌 엔드포인트)는 Valid only in AWS 리전 enabled by default를 나타냅니다. 변경을 선택합니다.

  4. Change region compatibility(리전 호환성 변경) 대화 상자에서 All AWS 리전를 선택합니다. 변경 사항 저장(Save changes)을 선택합니다.

    참고

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

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

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

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

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