Amazon Redshift용 네이티브 자격 증명 공급자(IdP) 페더레이션 - Amazon Redshift

Amazon Redshift용 네이티브 자격 증명 공급자(IdP) 페더레이션

네이티브 자격 증명 공급자 페더레이션을 사용하면 기존 자격 증명 공급자를 활용하여 인증 및 권한 관리를 간소화하기 때문에 Amazon Redshift에 대한 자격 증명 및 권한 관리가 더 쉬워집니다. 이는 자격 증명 공급자로부터 Redshift로 자격 증명 메타데이터를 공유할 수 있기 때문에 가능합니다. 이 기능을 처음 사용 시 지원되는 자격 증명 공급자는 Microsoft Azure Active Directory(Azure AD)입니다.

서드 파티 자격 증명 공급자의 자격 증명을 인증할 수 있도록 Amazon Redshift를 구성하려면 Amazon Redshift에 자격 증명 공급자를 등록합니다. 이렇게 하면 Redshift는 자격 증명 공급자가 정의한 사용자와 역할을 인증할 수 있습니다. 따라서 자격 증명 정보가 공유되므로 서드 파티 자격 증명 공급자와 Amazon Redshift 모두에서 세분화된 자격 증명 관리를 수행하지 않아도 됩니다.

ID 제공업체(iDP) 그룹에서 전송된 세션 역할을 사용하는 방법에 대한 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서PG_GET_SESSION_ROLES를 참조하세요.

Amazon Redshift Redshift에서 자격 증명 공급자 설정

이 섹션에서는 네이티브 자격 증명 공급자 페더레이션을 위한 통신을 설정하도록 자격 증명 공급자와 Amazon Redshift를 구성하는 단계를 보여줍니다. 자격 증명 공급자의 활성 계정이 필요합니다. Amazon Redshift를 구성하기 전에 Redshift를 자격 증명 공급자에 애플리케이션으로 등록하고 관리자 동의를 얻습니다.

Amazon Redshift에서 다음 단계를 완료합니다.

  1. SQL 문을 실행하여 Azure 애플리케이션 메타데이터에 대한 설명과 함께 자격 증명 공급자를 등록합니다. Amazon Redshift에서 자격 증명 공급자를 생성하려면 파라미터 값 issuer, client_id, client_secretaudience를 바꾼 후 다음 명령을 실행합니다. 이러한 파라미터는 Microsoft Azure AD에만 적용됩니다. 자격 증명 공급자 이름을 선택한 이름으로 바꾸고 네임스페이스를 자격 증명 공급자 디렉터리의 사용자와 역할을 포함하는 고유한 이름으로 바꿉니다.

    CREATE IDENTITY PROVIDER oauth_standard TYPE azure NAMESPACE 'aad' PARAMETERS '{ "issuer":"https://sts.windows.net/2sdfdsf-d475-420d-b5ac-667adad7c702/", "client_id":"<client_id>", "client_secret":"BUAH~ewrqewrqwerUUY^%tHe1oNZShoiU7", "audience":["https://analysis.windows.net/powerbi/connector/AmazonRedshift"] }'

    azure 유형은 공급자가 특히 Microsoft Azure AD와의 통신을 용이하게 함을 나타냅니다. 현재 유일하게 지원되는 서드 파티 자격 증명 공급자입니다.

    • issuer - 토큰을 수신할 때 신뢰할 수 있는 발급자 ID입니다. tenant_id의 고유 식별자가 발급자에 추가됩니다.

    • client_id - 자격 증명 공급자에 등록된 애플리케이션의 고유한 퍼블릭 식별자입니다. 애플리케이션 ID라고도 합니다.

    • client_secret - 자격 증명 공급자와 등록된 애플리케이션에게만 알려진 비밀 식별자 또는 암호입니다.

    • audience - Azure의 애플리케이션에 할당된 애플리케이션 ID입니다.

    공유 클라이언트 비밀을 사용하는 대신, 아이덴티티 제공업체를 생성할 때 파라미터를 설정하여 인증서, 프라이빗 키 및 프라이빗 키 암호를 지정할 수 있습니다.

    CREATE IDENTITY PROVIDER example_idp TYPE azure NAMESPACE 'example_aad' PARAMETERS '{"issuer":"https://sts.windows.net/2sdfdsf-d475-420d-b5ac-667adad7c702/", "client_id":"<client_id>", "audience":["https://analysis.windows.net/powerbi/connector/AmazonRedshift"], "client_x5t":"<certificate thumbprint>", "client_pk_base64":"<private key in base64 encoding>", "client_pk_password":"test_password"}';

    프라이빗 키 암호 client_pk_password는 선택 사항입니다.

  2. 선택 사항: Amazon Redshift에서 SQL 명령을 실행하여 사용자와 역할을 미리 생성합니다. 이를 통해 사전에 권한을 쉽게 부여할 수 있습니다. Amazon Redshift에서 역할 이름의 형식은 <Namespace>: <GroupName on Azure AD>입니다. 예를 들어 이름이 rsgroup인 Microsoft Azure AD 그룹과 이름이 aad인 네임스페이스를 생성한 경우 역할 이름은 aad:rsgroup입니다. Amazon Redshift의 사용자 및 역할 이름은 ID 제공업체 네임스페이스에서 이 사용자 이름 및 그룹 멤버십으로 정의됩니다.

    역할 및 사용자의 매핑 작업에는 external_id 값을 통해 최신 상태인지 확인하는 것이 포함됩니다. 외부 ID가 ID 공급자의 그룹 또는 사용자의 식별자에 매핑됩니다. 예를 들어 역할의 외부 ID는 해당 Azure AD 그룹 ID에 매핑됩니다. 마찬가지로 각 사용자의 외부 ID는 ID 공급자의 ID에 매핑됩니다.

    create role "aad:rsgroup";
  3. 요구 사항에 따라 역할에 관련 권한을 부여합니다. 예를 들면 다음과 같습니다.

    GRANT SELECT on all tables in schema public to role "aad:rsgroup";
  4. 특정 사용자에게 권한을 부여할 수도 있습니다.

    GRANT SELECT on table foo to aad:alice@example.com

    페더레이션된 외부 사용자의 역할 멤버십은 해당 사용자의 세션에서만 사용할 수 있다는 점에 유의하세요. 이는 데이터베이스 객체 생성에 영향을 미칩니다. 예를 들어 페더레이션된 외부 사용자가 뷰 또는 저장 프로시저를 만드는 경우 동일한 사용자는 해당 개체의 권한을 다른 사용자 및 역할에 위임할 수 없습니다.

네임스페이스에 대한 설명

네임스페이스는 사용자 또는 역할을 특정 자격 증명 공급자에 매핑합니다. 예를 들어, AWS IAM에서 생성한 사용자의 접두사는 iam:입니다. 이 접두사는 사용자 이름 충돌을 방지하고 여러 ID 저장소를 지원할 수 있게 합니다. aad 네임스페이스에 등록된 자격 증명 소스의 alice@example.com 사용자가 로그인할 때 aad:alice@example.com 사용자가 존재하지 않는 경우 Redshift에서 사용자가 생성됩니다. 사용자 및 역할 네임스페이스는 클러스터와 연결된 고유 식별자인 Amazon Redshift 클러스터 네임스페이스와 기능이 다릅니다.

네이티브 자격 증명 공급자(IdP) 페더레이션에서의 로그인 작동 방식

자격 증명 공급자와 Amazon Redshift 간의 예비 설정을 완료하려면 몇 가지 단계를 수행합니다. 먼저 Amazon Redshift를 자격 증명 공급자에 서드 파티 애플리케이션으로 등록하고 필요한 API 권한을 요청합니다. 그런 다음 자격 증명 공급자에서 사용자 및 그룹을 생성합니다. 마지막으로 자격 증명 공급자에 고유한 인증 파라미터를 설정하는 SQL 문을 사용하여 Amazon Redshift에 자격 증명 공급자를 등록합니다. 자격 증명 공급자를 Redshift에 등록하는 과정에서 네임스페이스를 할당하여 사용자와 역할이 올바르게 그룹화되도록 합니다.

Amazon Redshift에 자격 증명 공급자가 등록되면 Redshift와 자격 증명 공급자 간에 통신이 설정됩니다. 그런 다음 클라이언트는 토큰을 전달하고 Redshift에 자격 증명 공급자 엔터티로 인증할 수 있습니다. Amazon Redshift는 IdP 그룹 멤버십 정보를 사용하여 Redshift 역할에 매핑합니다. 사용자가 이전에 Redshift에 존재하지 않는 경우 사용자가 생성됩니다. 자격 증명 공급자 그룹에 매핑되는 역할이 존재하지 않는 경우 새로 생성됩니다. Amazon Redshift 관리자는 역할에 권한을 부여하며 사용자는 쿼리를 실행하고 다른 데이터베이스 작업을 수행할 수 있습니다.

다음 단계에서는 사용자가 로그인할 때 네이티브 자격 증명 공급자 페더레이션이 작동하는 방식을 간략하게 설명합니다.

  1. 사용자가 네이티브 IdP 옵션을 사용하여 로그인하면 자격 증명 공급자 토큰이 클라이언트에서 드라이버로 전송됩니다.

  2. 사용자가 인증됩니다. 사용자가 Amazon Redshift에 아직 존재하지 않으면 새 사용자가 생성됩니다. Redshift는 사용자의 자격 증명 공급자 그룹을 Redshift 역할에 매핑합니다.

  3. 사용자의 Redshift 역할에 따라 권한이 할당됩니다. 권한은 관리자가 사용자 및 역할에 부여합니다.

  4. 사용자가 Redshift를 쿼리할 수 있습니다.

데스크톱 클라이언트 도구를 사용하여 Amazon Redshift Redshift에 연결

네이티브 자격 증명 공급자 페더레이션을 사용하여 Power BI로 Amazon Redshift에 연결하는 방법에 대한 지침은 블로그 게시물 Integrate Amazon Redshift native IdP federation with Microsoft Azure Active Directory (AD) and Power BI(Microsoft Azure Active Directory(AD) 및 Power BI와 Amazon Redshift 네이티브 IdP 페더레이션 통합)를 참조하세요. 이 블로그에서는 Azure AD를 사용한 Amazon Redshift 네이티브 IdP 설정의 단계별 구현을 설명합니다. Power BI Desktop 또는 Power BI 서비스에 대한 클라이언트 연결을 설정하는 단계를 자세히 설명합니다. 이 단계에는 애플리케이션 등록, 권한 구성 및 보안 인증 구성이 포함됩니다.

Power BI Desktop 및 JDBC Client-SQL Workbench/J를 사용하여 Amazon Redshift 기본 IdP(아이덴티티 제공업체) 페더레이션을 Azure AD와 통합하는 방법을 알아보려면 다음 비디오를 시청하세요.

네이티브 자격 증명 공급자 페더레이션을 사용하여 SQL 클라이언트, 특히 DBeaver 또는 SQL Workbench/J로 Amazon Redshift에 연결하는 방법에 대한 지침은 Integrate Amazon Redshift native IdP federation with Microsoft Azure AD using a SQL client(SQL 클라이언트를 사용하여 Microsoft Azure AD와 Amazon Redshift 네이티브 IdP 페더레이션 통합)를 참조하세요.