IAM의 임시 보안 자격 증명 - AWS Identity and Access Management

IAM의 임시 보안 자격 증명

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

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

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

따라서 임시 보안 인증은 장기 보안 인증보다 다음과 같은 이점이 있습니다.

  • 애플리케이션으로 장기 AWS 보안 자격 증명을 배포 또는 포함할 필요가 없습니다.

  • 사용자에 대한 AWS 자격 증명을 정의하지 않고도 AWS 리소스에 대한 액세스 권한을 사용자에게 제공할 수 있습니다. 임시 자격 증명은 역할ID 페더레이션의 기반입니다.

  • 임시 보안 인증은 수명이 제한되어 있어서, 더 이상 필요하지 않을 때 업데이트하거나 명시적으로 취소할 필요가 없습니다. 임시 보안 자격 증명이 만료된 후에는 다시 사용할 수 없습니다. 그 자격 증명에 대해 유효 기간을 최대 한계까지 지정할 수 있습니다.

AWS STS 및 AWS 리전

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

임시 자격 증명과 관련된 일반적인 시나리오

임시 자격 증명은 아이덴티티 페더레이션, 위임, 크로스 계정 액세스, IAM 역할 등의 시나리오에서 유용합니다.

아이덴티티 페더레이션

AWS 밖의 외부 시스템에서 사용자 자격 증명을 관리할 수 있고 해당 시스템을 통해 로그인하는 사용자에게 액세스 권한을 부여하여 AWS 작업을 수행하고 AWS 리소스에 액세스할 수 있습니다. IAM은 두 가지 아이덴티티 페더레이션 유형을 지원합니다. 두 경우 모두 자격 증명은 AWS 외부에 저장됩니다. 외부 시스템이 상주하는 위치, 즉 데이터 센터 또는 웹의 외부 타사에 따라 구분됩니다. 외부 자격 증명 공급자에 대한 자세한 내용은 자격 증명 공급자 및 페더레이션 섹션을 참조하세요.

  • SAML 페더레이션 - 조직의 네트워크에서 사용자를 인증한 다음, 해당 사용자에게 새로운 AWS ID를 만들거나 다른 로그인 자격 증명을 사용하여 로그인하도록 요구하지 않고도 해당 사용자에게 AWS에 대한 액세스 권한을 제공할 수 있습니다. 이는 임시 액세스 권한에 대한 Single Sign-On 접근 방식으로 알려져 있습니다. AWS STS는 SAML 2.0(Security Assertion Markup Language 2.0)과 같은 개방형 표준을 지원합니다. 이를 통해 Microsoft AD FS를 사용해 Microsoft Active Directory를 최대한 활용할 수 있습니다. 또한, SAML 2.0을 사용해 사용자 자격 증명 연동을 위한 자신만의 솔루션을 관리할 수 있습니다. 자세한 내용은 SAML 2.0 연동 단원을 참조하십시오.

    • 사용자 지정 페더레이션 브로커 - 조직의 인증 시스템을 사용해 AWS 리소스에 대한 액세스 권한을 부여할 수 있습니다. 시나리오 예시는 사용자 지정 자격 증명 브로커가 AWS 콘솔에 액세스할 수 있도록 하기 섹션을 참조하세요.

    • SAML 2.0을 사용한 페더레이션 - 조직의 인증 시스템과 SAML을 사용해 AWS 리소스에 대한 액세스 권한을 부여할 수 있습니다. 자세한 내용과 시나리오 예시는 SAML 2.0 연동 섹션을 참조하세요.

  • OIDC(OpenID Connect) 페더레이션 - 사용자가 Amazon, Facebook 또는 Google로 로그인 또는 모바일 또는 웹 애플리케이션용 OIDC 2.0 호환 공급자와 같은 잘 알려진 타사 ID 공급자를 사용하여 로그인하도록 할 수 있으므로 사용자 지정 로그인 코드를 만들거나 자체 사용자 ID를 관리할 필요가 없습니다. OIDC 페더레이션을 사용하면 IAM 사용자 액세스 키와 같은 장기 보안 자격 증명을 애플리케이션에 배포할 필요가 없으므로 AWS 계정의 보안을 유지하는 데 도움이 됩니다. 자세한 내용은 OIDC 페더레이션 단원을 참조하십시오.

    AWS STS OIDC 페더레이션은 Amazon, Facebook 및 Google로 로그인과 모든 OIDC(OpenID Connect) 호환 ID 공급자를 지원합니다.

    참고

    모바일 애플리케이션의 경우 Amazon Cognito를 사용하는 것이 좋습니다. 이 서비스와 함께 모바일 개발용 AWS SDK를 사용하면 사용자의 고유 자격 증명을 생성하고 인증하여 AWS 리소스에 안전하게 액세스하도록 할 수 있습니다. Amazon Cognito는 AWS STS와 동일한 자격 증명 공급자를 지원하고 인증되지 않은(게스트) 액세스도 지원하며 사용자가 로그인할 때 사용자 데이터를 마이그레이션할 수 있습니다. 또한, Amazon Cognito는 사용자가 디바이스 간에 이동할 때 데이터가 보존되도록 사용자 데이터를 동기화하기 위한 API 작업도 제공합니다. 자세한 내용은 Amplify 설명서Amplify를 사용한 인증을 참조하세요.

크로스 계정 액세스를 위한 역할

많은 조직이 1개 이상의 AWS 계정을 유지합니다. 역할 및 크로스 계정 액세스를 사용하면 하나의 계정에서 사용자 자격 증명을 정의하고 그 자격 증명을 사용해 조직에 속한 다른 계정의 AWS 리소스에 액세스할 수 있습니다. 이는 임시 액세스 권한에 대한 위임 접근 방식으로 알려져 있습니다. 크로스 계정 역할 생성에 대한 자세한 내용은 역할을 생성하여 IAM 사용자에게 권한 위임 섹션을 참조하세요. 해당 신뢰 영역(신뢰할 수 있는 조직 또는 계정) 외의 계정 내 보안 주체가 역할을 수임하는 권한이 있는지 자세히 알고 싶다면, IAM Access Analyzer란 무엇일까요?를 참조하세요.

Amazon EC2의 역할

Amazon EC2 인스턴스에서 애플리케이션을 실행할 때 그 애플리케이션이 AWS 리소스에 대한 액세스 권한이 필요한 경우 인스턴스 시작 시 인스턴스에 대한 임시 보안 자격 증명을 제공할 수 있습니다. 이 임시 보안 자격 증명은 인스턴스에서 실행되는 모든 애플리케이션에서 사용 가능하므로 그 인스턴스에 어떤 장기 자격 증명도 저장할 필요가 없습니다. 자세한 내용은 IAM 역할을 사용하여 Amazon EC2 인스턴스에서 실행되는 애플리케이션에 권한 부여 단원을 참조하십시오.

기타 AWS 서비스

임시 보안 보안 인증을 사용해 대부분의 AWS 서비스에 액세스할 수 있습니다. 임시 보안 자격 증명을 수락하는 서비스의 목록은 AWS IAM으로 작업하는 서비스 섹션을 참조하세요.