Athena API에 대한 페더레이션 액세스 활성화 - Amazon Athena

Athena API에 대한 페더레이션 액세스 활성화

이 단원에서는 조직의 사용자 또는 클라이언트 애플리케이션이 Amazon Athena API 작업을 호출하는 데 사용할 수 있는 연합 액세스에 대해 설명합니다. 이 경우 조직의 사용자는 Athena에 직접 액세스할 수 없습니다. 그 대신, Microsoft Active Directory에서 AWS 외부의 사용자 자격 증명을 관리합니다. Active Directory는 SAML 2.0(Security Assertion Markup Language 2.0)를 지원합니다.

이 시나리오에서 사용자를 인증하려면 Active Directory Federation Services(ADFS) 3.0에 액세스하고 Athena API 작업 호출을 위해 클라이언트 애플리케이션을 활성화하는 SAML.2.0 지원이 포함된 JDBC 또는 ODBC 드라이버를 사용합니다.

AWS에서 SAML 2.0 지원에 대한 자세한 내용은 IAM 사용 설명서에서 SAML 2.0 연합에 대하여를 참조하세요.

참고

Athena API에 대한 연합 액세스는 특정 유형의 자격 증명 공급자(IdP)인 Active Directory Federation Service(AD FS 3.0)(Windows Server의 일부)에 대해 지원됩니다. 연동 액세스는 IAM Identity Center의 신뢰할 수 있는 ID 전파 기능과 호환되지 않습니다. 액세스는 SAML 2.0을 지원하는 JDBC 또는 ODBC 드라이버 버전을 통해 설정됩니다. 자세한 내용은 JDBC로 Amazon Athena에 연결ODBC로 Amazon Athena에 연결 단원을 참조하세요.

시작하기 전 준비 사항

시작하기 전에 다음 필수 조건을 완료합니다.

  • 조직 내부에서 AD FS 3.0을 설치하고 IdP로 구성합니다.

  • Athena 액세스에 사용되는 클라이언트에 JDBC 또는 ODBC 드라이버의 최신 버전을 설치하고 구성합니다. 드라이버는 SAML 2.0과 호환되는 연합 액세스에 대한 지원을 포함해야 합니다. 자세한 내용은 JDBC로 Amazon Athena에 연결ODBC로 Amazon Athena에 연결 단원을 참조하세요.

인증 프로세스 이해

다음 다이어그램은 Athena API에 대한 페더레이션 액세스의 인증 프로세스를 보여줍니다.

Athena API에 대한 페더레이션 액세스의 다이어그램입니다.
  1. 조직 내 사용자는 클라이언트 애플리케이션을 JDBC 또는 ODBC 드라이버와 함께 사용하여 조직의 IdP에게 인증을 요청합니다. IdP는 AD FS 3.0입니다.

  2. IdP는 조직의 자격 증명 스토어인 Active Directory에 대해 사용자를 인증합니다.

  3. IdP는 사용자에 대한 정보로 SAML 어설션을 구성하여 JDBC 또는 ODBC 드라이버를 통해 클라이언트 애플리케이션에 전송합니다.

  4. JDBC 또는 ODBC 드라이버는 AWS Security Token Service AssumeRoleWithSAML API 작업을 호출하여 이 작업에 다음 파라미터를 전달합니다.

    • SAML 공급자의 ARN

    • 수임할 역할의 ARN

    • IdP의 SAML 어설션

    자세한 내용은 AWS Security Token Service API 참조AssumeRoleWithSAML을 참조하세요.

  5. JDBC 또는 ODBC 드라이버를 통해 클라이언트 애플리케이션으로 보내는 API 응답에는 임시 보안 자격 증명이 포함됩니다.

  6. 클라이언트 애플리케이션은 사용자가 Athena API 작업에 액세스할 수 있도록 임시 보안 자격 증명을 사용하여 Athena API 작업을 호출합니다.

절차: Athena API에 대한 SAML 기반 페더레이션 액세스 활성화

이 절차에서는 조직의 IdP와 AWS 계정 간에 신뢰를 확립하여 Amazon Athena API 작업에 대한 SAML 기반 연합 액세스를 활성화합니다.

Athena API에 대한 연합 액세스를 활성화하려면:
  1. 조직에서 AWS를 IdP의 서비스 공급자(SP)로 등록합니다. 이 프로세스를 신뢰 당사자 신뢰라고 합니다. 자세한 내용은 IAM 사용 설명서신뢰 당사자 신뢰로 SAML 2.0 IdP 구성을 참조하세요. 이 작업의 일부로 다음 단계를 수행합니다.

    1. 다음 URL에서 샘플 SAML 메타데이터 문서를 가져옵니다. https://signin.aws.amazon.com/static/saml-metadata.xml.

    2. 조직의 IdP(ADFS)에서 IdP를 AWS에 대한 자격 증명 공급자로 설명하는 동등한 메타데이터 XML 파일을 생성합니다. 메타데이터 파일에는 발행자 이름, 생성 날짜, 만료 날짜 및 AWS가 조직에서 오는 인증 응답의 유효성을 검증하는 데 사용할 수 있는 키가 포함되어야 합니다.

  2. IAM 콘솔에서 SAML 자격 증명 공급자 개체를 생성합니다. 자세한 내용은 IAM 사용 설명서SAML 자격 증명 공급자 생성을 참조하세요. 이 단계의 일부로 다음을 포함합니다.

    1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

    2. 이 절차에서 1단계의 IdP(ADFS)가 생성한 SAML 메타데이터 문서를 업로드합니다.

  3. IAM 콘솔에서 IdP에 대해 하나 이상의 IAM 역할을 생성합니다. 자세한 내용은 IAM 사용 설명서서드 파티 자격 증명 공급자의 역할 만들기(연합)을 참조하세요. 이 단계의 일부로 다음을 포함합니다.

    • 역할의 권한 정책에서 조직의 사용자가 AWS에서 수행할 수 있는 작업을 나열합니다.

    • 역할의 신뢰 정책에서 이 절차의 2단계에서 생성한 SAML 공급자 엔터티를 보안 주체로 설정합니다.

    이렇게 하면 조직과 AWS 사이에 신뢰 관계가 설정됩니다.

  4. 조직의 IdP(ADFS)에서 조직 내 사용자 또는 그룹을 IAM 역할에 매핑하는 어설션을 정의합니다. IAM 역할에 대한 사용자와 그룹의 매핑을 클레임 규칙(claim rule)이라고 합니다. 조직의 다양한 사용자 및 그룹은 서로 다른 IAM 역할에 매핑될 수 있다는 점에 유의하세요.

    ADFS에서 매핑을 구성하는 방법에 대한 자세한 내용은 Windows Active Directory, ADFS 및 SAML 2.0을 사용하여 AWS에 대한 연합 활성화 블로그 게시물을 참조하세요.

  5. SAML 2.0 지원이 포함된 JDBC 또는 ODBC 드라이버를 설치하고 구성합니다. 자세한 내용은 JDBC로 Amazon Athena에 연결ODBC로 Amazon Athena에 연결 단원을 참조하세요.

  6. 애플리케이션에서 JDBC 또는 ODBC 드라이버로 연결을 지정합니다. 애플리케이션에서 사용해야 할 연결 문자열에 대한 자세한 내용은 JDBC Driver Installation and Configuration Guide(JDBC 드라이버 설치 및 구성 가이드)의 "Using the Active Directory Federation Services (ADFS) Credentials Provider"(Active Directory Federation Services(ADFS) 자격 증명 공급자 사용) 또는 ODBC Driver Installation and Configuration Guide(ODBC 드라이버 설치 및 구성 가이드)의 비슷한 주제를 참조하세요. JDBC로 Amazon Athena에 연결ODBC로 Amazon Athena에 연결 주제에서 PDF 다운로드가 가능합니다.

    다음은 드라이버에 연결 문자열을 구성하는 방법에 대한 개괄적인 요약입니다.

    1. AwsCredentialsProviderClass configuration에서 com.simba.athena.iamsupport.plugin.AdfsCredentialsProvider를 설정하여 ADFS IdP를 통해 SAML 2.0 기반 인증을 사용합니다.

    2. idp_host에 ADFS IdP 서버의 호스트 이름을 입력합니다.

    3. idp_port에 ADFS IdP가 SAML 어설션 요청에 대해 수신 대기하는 포트 번호를 입력합니다.

    4. UIDPWD에 AD 도메인 사용자 자격 증명을 제공합니다. Windows에서 드라이버를 사용하는 경우 UIDPWD를 입력하지 않으면 드라이버는 Windows 시스템에 로그인한 사용자의 사용자 자격 증명을 가져오려고 합니다.

    5. 선택적으로 ssl_insecuretrue로 설정합니다. 이 경우 드라이버는 ADFS IdP 서버에 대한 SSL 인증서의 신뢰성을 확인하지 않습니다. 드라이버에서 신뢰할 수 있도록 ADFS IdP의 SSL 인증서를 구성하지 않은 경우 true로 설정해야 합니다.

    6. 하나 이상의 IAM 역할에 대한 Active Directory 도메인 사용자 또는 그룹의 매핑을 활성화하려면(이 절차의 4단계에서 언급함) JDBC 또는 ODBC 연결에 대한 preferred_role에서 드라이버 연결을 수임할 IAM 역할(ARN)을 지정합니다. preferred_role 지정은 선택 사항이며 역할이 클레임 규칙에 나열된 첫 번째 역할이 아닌 경우에 유용합니다.

    이 절차를 수행하면 다음 작업이 수행됩니다.

    1. JDBC 또는 ODBC 드라이버가 AWS STS AssumeRoleWithSAML API를 호출하고 아키텍처 다이어그램의 4단계와 같이 이 API에 어설션을 전달합니다.

    2. AWS는 역할 수임 요청이 SAML 공급자 엔터티에서 참조된 IdP로부터 오는지 확인합니다.

    3. 요청이 성공하면 AWS STS AssumeRoleWithSAML API 작업은 일련의 임시 보안 자격 증명을 반환하고 클라이언트 애플리케이션은 이 자격 증명을 사용하여 Athena에 대한 서명된 요청을 생성합니다.

      이제 애플리케이션은 현재 사용자에 대한 정보를 갖추었으며 프로그래밍 방식으로 Athena에 액세스할 수 있습니다.