Skip to content

임시 보안 크레덴셜


AWS Security Token Service(AWS STS)를 사용하면 AWS 리소스에 대한 액세스를 제어할 수 있는 임시 보안 크레덴셜을 생성하여 신뢰받는 사용자에게 제공할 수 있다. 임시 보안 크레덴셜은 다음과 같은 차이점을 제외하고는 IAM 사용자가 사용할 수 있는 장기 액세스 키 크레덴셜과 거의 동일한 효력을 지닌다.

  • 임시 보안 크레덴셜은 그 이름이 암시하듯 단기적이다. 이 크레덴셜은 몇 분에서 몇 시간까지 지속되도록 구성할 수 있다. 크레덴셜이 만료된 후 AWS는 더는 그 크레덴셜을 인식하지 못하거나 그 크레덴셜을 사용한 API 요청으로부터 이루어지는 어떤 종류의 액세스도 허용하지 않는다.

  • 임시 보안 크레덴셜은 사용자와 함께 저장되지 않지만 동적으로 생성되어 요청시 사용자에게 제공된다. 임시 보안 크레덴셜이 만료되었을 때(심지어는 만료 전이라도) 사용자는 새 크레덴셜을 요청할 수 있다. 단, 크레덴셜을 요청하는 해당 사용자에게 그렇게 할 수 있는 권한이 있어야 한다.

이러한 차이점은 다음과 같은 임시 크레덴셜 사용의 이점을 발생시킬 수 있다.

  • 애플리케이션으로 장기 AWS 보안 크레덴셜을 배포 또는 포함할 필요가 없다.

  • 사용자에 대한 AWS 아이덴터티를 정의하지 않고도 AWS 리소스에 대한 액세스 권한을 사용자에게 제공할 수 있다. 임시 크레덴셜은 역할 및 ID 페더레이션을 위한 기초이다.

  • 임시 보안 크레덴셜은 수명이 제한되어 있어서, 더 이상 필요하지 않을 때 교체하거나 명시적으로 취소할 필요가 없다. 임시 보안 크레덴셜이 만료된 후에는 다시 사용할 수 없다. 그 크레덴셜에 대해 유효 기간을 최대 한계까지 지정할 수 있다.

주제


1. AWS STS 및 AWS 리전

임시 보안 크레덴셜은 AWS STS에 의해 생성된다. 기본적으로 AWS STS는 https://sts.amazonaws.com에 단일 엔드포인트가 있는 전역적 서비스이다. 그러나 지원되는 기타 다른 리전에서 엔드포인트에 대한 AWS STS API 호출을 할 수도 있다. 이렇게 지리적으로 더 가까운 리전에 있는 서버로 요청을 전송함으로써 지연 시간(서버 랙)을 단축할 수 있다. 크레덴셜은 어떤 리전에서 오는지 상관없이 전역적으로 유효하다.


2. 임시 크레덴셜과 관련된 일반적인 시나리오

임시 크레덴셜은 ID 페더레이션, 위임, 교차 계정 액세스, IAM 역할 등의 시나리오에서 유용하다.

1) 아이덴터티 페더레이션

AWS 밖의 외부 시스템에서 사용자 아이덴터티를 관리할 수 있고 해당 시스템을 통해 로그인하는 사용자에게 액세스 권한을 부여하여 AWS 작업을 수행하고 AWS 리소스에 액세스할 수 있다. IAM은 두 가지 아이덴터티 페더레이션 유형을 지원한다. 두 경우 모두 아이덴터티는 AWS 외부에 저장된다. 외부 시스템이 상주하는 위치, 즉 데이터 센터 또는 웹의 외부 서드 파티에 따라 구분된다.

  • 엔터프라이즈 아이덴터티 페더레이션 - 조직의 네트워크에서 사용자를 인증한 다음, 해당 사용자에 대한 새로운 AWS 아이덴터티를 생성하지 않고 또한, 사용자에게 별도의 사용자 이름 및 암호로 로그인하도록 요구하지 않고도 AWS에 대한 액세스 권한을 사용자에게 제공할 수 있다. 이는 임시 액세스 권한에 대한 Single Sign-On 접근 방식으로 알려져 있다. AWS STS는 SAML 2.0(Security Assertion Markup Language 2.0)과 같은 개방형 표준을 지원한다. 이를 통해 Microsoft AD FS를 사용해 Microsoft Active Directory를 최대한 활용할 수 있다. 또한, SAML 2.0을 사용해 사용자 아이덴터티 연동을 위한 자신만의 솔루션을 관리할 수 있다.

    • 사용자 지정 페더레이션 브로커 - 조직의 인증 시스템을 사용해 AWS 리소스에 대한 액세스 권한을 부여할 수 있다.

    • SAML 2.0을 사용한 페더레이션 - 조직의 인증 시스템과 SAML을 사용해 AWS 리소스에 대한 액세스 권한을 부여할 수 있다.

  • 웹 아이덴터티 페더레이션 - Login with Amazon, Facebook, Google 또는 OpenID Connect(OIDC) 2.0 호환 공급자와 같은 유명한 서드 파티 아이덴터티 공급자를 사용해 사용자가 로그인할 수 있다. 그 공급자로부터 얻은 크레덴셜을 AWS 계정 리소스 사용 권한과 교환할 수 있다. 이는 임시 액세스 권한에 대한 웹 ID 페더레이션 접근 방식으로 알려져 있다. 모바일 또는 웹 애플리케이션을 위해 웹 ID 페더레이션을 사용하면 사용자 지정 로그인 코드를 생성하거나 자신의 사용자 아이덴터티를 관리할 필요가 없다. 웹 ID 페더레이션을 사용하면 AWS 계정을 안전하게 보호할 수 있다는 이점이 있다. 애플리케이션으로 IAM 사용자 액세스 키 같은 장기 보안 크레덴셜을 배포할 필요가 없기 때문이다.

AWS STS 웹 아이덴터티 페더레이션은 Login with Amazon, Facebook, Google 및 모든 OpenID Connect(OIDC) 호환 아이덴터티 공급자를 지원한다.

2) 교차 계정 액세스를 위한 역할

많은 조직이 1개 이상의 AWS 계정을 유지한다. 역할 및 교차 계정 액세스를 사용하면 하나의 계정에서 사용자 아이덴터티를 정의하고 그 아이덴터티를 사용해 조직에 속한 다른 계정의 AWS 리소스에 액세스할 수 있다. 이는 임시 액세스 권한에 대한 위임 접근 방식으로 알려져 있다.

3) Amazon EC2의 역할

Amazon EC2 인스턴스에서 애플리케이션을 실행할 때 그 애플리케이션이 AWS 리소스에 대한 액세스 권한이 필요한 경우 인스턴스 시작 시 인스턴스에 대한 임시 보안 크레덴셜을 제공할 수 있다. 이 임시 보안 크레덴셜은 인스턴스에서 실행되는 모든 애플리케이션에서 사용 가능하므로 그 인스턴스에 어떤 장기 크레덴셜도 저장할 필요가 없다.

4) 기타 AWS 서비스

임시 보안 크레덴셜을 사용해 대부분의 AWS 서비스에 액세스할 수 있다.


References