제퍼넷 로고

Okta를 사용하여 Amazon Redshift 쿼리 편집기 v2에 대한 싱글 사인온 액세스 통합

시간

Amazon Redshift 쿼리 편집기 v2 는 쿼리를 작성하고 실행하는 데 사용할 수 있는 웹 기반 SQL 클라이언트 응용 프로그램입니다. 아마존 레드 시프트 데이터웨어 하우스. 쿼리 결과를 차트로 시각화하고 팀원들과 쿼리를 공유하여 협업할 수 있습니다. 쿼리 편집기 v2를 사용하여 데이터베이스, 스키마, 테이블을 만들고 데이터를 로드할 수 있습니다. 아마존 단순 스토리지 서비스 (Amazon S3) COPY 명령을 사용하거나 마법사를 사용합니다. 여러 데이터베이스를 탐색하고 Amazon Redshift 데이터 웨어하우스 또는 데이터 레이크에서 쿼리를 실행하거나 다음과 같은 운영 데이터베이스에 대해 연합 쿼리를 실행할 수 있습니다. Amazon Aurora. 브라우저의 관리형 SQL 편집기이고 SSO(Single Sign-On) 공급자와 통합되기 때문에 Amazon Redshift 쿼리 편집기 v2는 첫 번째 쿼리에 대한 단계 수를 줄여서 더 빠르게 통찰력을 얻을 수 있습니다.

자격 증명 공급자(IdP)와의 Amazon Redshift 쿼리 편집기 v2 통합은 사용자의 브라우저를 Amazon Redshift 콘솔 대신 쿼리 편집기 v2 콘솔로 자동 리디렉션합니다. 이를 통해 사용자는 데이터베이스 사용자 및 암호를 관리하지 않고도 연동 자격 증명을 사용하여 쿼리 편집기 v2를 통해 Amazon Redshift 클러스터에 쉽게 액세스할 수 있습니다.

이 게시물에서는 IdP로서의 Okta에 초점을 맞추고 Okta 애플리케이션을 설정하고 AWS 자격 증명 및 액세스 관리 (IAM) 권한. 또한 사용자에게 쿼리 편집기 v2만 사용하도록 액세스를 제한하는 방법을 보여줍니다. AWS 관리 콘솔.

솔루션 개요

이 게시물의 상위 수준 단계는 다음과 같습니다.

  1. 논리적 그룹과 AWS 계정 연동 애플리케이션으로 구성된 사용자가 포함된 Okta를 설정합니다.
  2. 두 개의 IAM 역할을 설정합니다. 하나는 IdP와 AWS 간의 신뢰 관계를 설정하고 다른 하나는 Okta가 Amazon Redshift에 액세스하는 데 사용합니다.
  3. Okta 고급 구성 완료:
    1. 방금 생성한 역할을 입력하여 Okta 구성을 완료합니다.
    2. SAML 인증에 성공한 후 사용자를 Amazon Redshift 쿼리 편집기 v2로 안내하는 기본 릴레이 상태를 정의합니다.
    3. SAML 구성 PrincipalTag속성. 이 요소를 사용하면 SAML 어설션에서 속성을 세션 태그로 전달할 수 있습니다. 세션 태그에 대한 자세한 내용은 다음을 참조하십시오. AWS STS에서 세션 태그 전달.
  4. Amazon Redshift 데이터베이스 그룹을 설정합니다.
    1. Okta 그룹과 일치하도록 Amazon Redshift 데이터베이스 내에 그룹을 생성합니다.
    2. 특정 스키마 및 테이블에 액세스할 수 있도록 이러한 그룹에 권한을 부여합니다.
    3. 엔터프라이즈 자격 증명을 사용하여 Amazon Redshift 쿼리 편집기 v2에 액세스하고 Amazon Redshift 데이터베이스를 쿼리합니다.
  5. Okta 계정에 로그인하고 할당된 애플리케이션에 액세스합니다. 애플리케이션은 연동 로그인을 사용하여 Amazon Redshift 쿼리 편집기 v2로 안내합니다.
  6. Amazon Redshift 데이터베이스에 액세스하고 쿼리합니다.

사전 조건

이 게시물은 다음과 같은 전제 조건이 있다고 가정합니다.

옥타 설정

먼저 Okta 애플리케이션을 설정하고 사용자와 그룹을 생성합니다. 다음 단계를 완료하십시오.

  1. URL을 사용하여 Okta 관리 콘솔에 로그인합니다. https://<prefix>-admin.okta.com/admin/dashboard어디로 귀하의 계정에만 해당되며 계정 설정 시 생성되었습니다.
  2. 관리 콘솔에서 다음을 선택합니다. 관리자.
  3. $XNUMX Million 미만 명부 담당 탐색 창에서 사람들.
  4. 사용자를 추가하려면 다음을 선택하십시오. 사람 추가.
    다음 스크린샷은 우리가 만든 사용자를 보여줍니다.
  5. Okta에 그룹을 추가하려면 그룹 탐색 창에서 다음을 선택합니다. 그룹 추가.
    다음 스크린샷은 우리가 만든 두 그룹을 보여줍니다. 우리는 추가했다 Janeanalyst_usersMikebi_users.
  6. $XNUMX Million 미만 어플리케이션 탐색 창에서 어플리케이션 선택하고 앱 카탈로그 찾아보기.
  7. 에 대한 검색 AWS 계정 연합 선택하고 추가.
  8. 애플리케이션을 추가한 후 다음을 선택합니다. AWS 계정 연합.
  9. 값을 그대로 둡니다. 일반 설정 기본값으로 선택하고 다음 보기.
  10. $XNUMX Million 미만 로그인 옵션, 고르다 SAML 2.0.
  11. 선택 ID 제공자 메타데이터 링크를 클릭하여 .xml 형식의 메타데이터 파일을 다운로드합니다.

IAM 역할 구성

다음으로 IdP와 AWS 간의 신뢰 관계를 설정하는 IAM 역할을 설정합니다. 또한 Okta가 Amazon Redshift 쿼리 편집기 v2에 액세스하는 데 사용하는 IAM 역할을 생성합니다.

  1. IAM 콘솔의 액세스 관리 탐색 창에서 ID 공급자.
  2. 왼쪽 메뉴에서 공급자 추가.
  3. 럭셔리 공급자 유형고르다 SAML.
  4. 럭셔리 공급자 이름¸ 이름을 입력하십시오.
  5. 왼쪽 메뉴에서 파일 선택 다운로드한 메타데이터 파일을 업로드합니다.
  6. 왼쪽 메뉴에서 공급자 추가.

    이제 IAM SAML 2.0 연동 역할을 생성합니다.
  7. IAM 콘솔에서 역할 탐색 창에서
  8. 왼쪽 메뉴에서 역할 만들기.
  9. 럭셔리 신뢰할 수 있는 항목 유형, 고르다 SAML 2.0 연합.
  10. 럭셔리 SAML 2.0 기반 공급자, 이전 단계에서 생성한 IdP를 선택합니다.
  11. 선택 프로그래밍 방식 및 AWS Management 콘솔 액세스 허용.
  12. 왼쪽 메뉴에서 다음 보기 그런 다음 정책 작성.

Amazon Redshift 쿼리 편집기 v2는 쿼리 편집기에 액세스할 수 있는 여러 관리형 정책을 제공합니다. 관리형 정책 목록은 다음을 참조하십시오. AWS 계정 구성. 관리형 정책을 사용하면 사용자에게 콘솔에서 관리 기능을 수행할 수 있는 액세스 권한을 부여하지 않고 쿼리 편집기 v2만 사용하도록 액세스를 제한할 수 있습니다. 이 게시물에서는 다음을 사용합니다. AmazonRedshiftQueryEditorV2ReadSharing 관리형 정책을 만들고 사용자 지정 정책을 만듭니다.

다음 코드에서 리전, 계정 및 클러스터 파라미터를 제공하여 Amazon Redshift에 대한 액세스 권한을 부여하여 클러스터 자격 증명을 얻고, 사용자를 생성하고, 사용자가 그룹에 가입하도록 허용합니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "RedshiftClusterPermissions",
            "Effect": "Allow",
            "Action": [
                "redshift:GetClusterCredentials",
                "redshift:CreateClusterUser",
                "redshift:JoinGroup"
            ],
            "Resource": [
                "arn:aws:redshift:<region>:<account>:cluster:<cluster>,
                "arn:aws:redshift:<region>:<account>:dbuser:<cluster>/${aws:PrincipalTag/RedshiftDbUser}",
                "arn:aws:redshift:<region>:<account>:dbgroup:<cluster>/analyst_users",
                "arn:aws:redshift:<region>:<account>:dbgroup:<cluster>/bi_users",
                "arn:aws:redshift:<region>:<account>:dbname:<cluster>/${redshift:DBName}"
            ]
        }
    ]
}

그룹 멤버십은 사용자 세션 동안만 지속됩니다. 추가로 없습니다 CreateGroup 그룹을 수동으로 생성하고 DB 권한을 부여해야 하기 때문입니다.

  1. 생성한 정책을 역할에 연결합니다.
    다음 스크린샷은 역할에 대한 요약 페이지를 보여줍니다.
  2. 역할에 대한 신뢰 관계를 수정하고 다음을 추가합니다. sts:TagSession 허가.
    세션 태그를 사용할 때 IdP 전달 태그에 연결된 모든 역할에 대한 신뢰 정책은 sts:태그세션 허가. 신뢰 정책에서 이 권한이 없는 역할의 경우 AssumeRole 작업이 실패합니다.
  3. 왼쪽 메뉴에서 정책 업데이트.

Okta 고급 구성 설정

이 섹션에서는 방금 생성한 IAM 역할을 추가하여 Okta 구성을 마무리합니다. SAML을 설정했습니다. PrincipalTag 다음과 같은 속성 RedshiftDbUserRedshiftDbGroups, Amazon Redshift 쿼리 편집기 v2에 대한 액세스를 연합하기 위해 SAML 어설션에 전달됩니다. 또한 SAML을 통한 성공적인 인증 후 사용자가 연결되는 URL인 기본 릴레이 상태를 정의합니다.

  1. Okta 계정에서 AWS Account Federation 앱을 엽니다.
  2. 서명하다 탭, 설정 기본 릴레이 상태 형식을 사용하여 쿼리 편집기 URL에 https://<region>.console.aws.amazon.com/sqlworkbench/home. 이 게시물에서 우리는 https://eu-west-1.console.aws.amazon.com/sqlworkbench/home.
  3. 왼쪽 메뉴에서 Attributes 다음 속성 매핑을 설정합니다.
    1. 다음을 사용하여 DB 사용자 설정 PrincipalTag:RedshiftDbUser. 이것은 디렉토리의 사용자 이름을 사용합니다. 이것은 필수 태그이며 쿼리 편집기 v2에서 사용하는 데이터베이스 사용자를 정의합니다.
    2. 다음을 사용하여 DB 그룹 설정 PrincipalTag:RedshiftDbGroups. 이것은 Okta 그룹을 사용하여 주요 태그를 채웁니다. 값은 콜론으로 구분된 목록이어야 합니다.
    3. 다음을 사용하여 전이 키 설정 TransitiveTagKeys. 이렇게 하면 역할 연결의 경우 사용자가 세션 태그를 변경할 수 없습니다.

이 태그는 redshift:GetClusterCredentials 클러스터에 대한 자격 증명을 가져오는 API입니다. 다음 표에는 속성 구성이 요약되어 있습니다.

  1. $XNUMX Million 미만 고급 로그인 설정고르다 그룹 매핑 사용.
  2. 전역적으로 고유한 IdP 및 IAM 역할 ARN을 입력하고 Okta가 AWS 계정으로 전달되는지 확인합니다.
  3. 해당 그룹 또는 개별 사용자 계정을 선택하여 사용자가 AWS 계정 연합 애플리케이션을 사용하도록 승인합니다. 이 예에서는 그룹별로 사용자를 승인했습니다.

Amazon Redshift 데이터베이스 그룹 설정

그런 다음 Amazon Redshift 데이터베이스에서 Okta 그룹과 일치하도록 그룹을 설정합니다. 또한 이러한 그룹이 특정 스키마 및 테이블에 액세스할 수 있는 권한을 부여합니다.

  1. 관리자 계정으로 Amazon Redshift 클러스터에 로그인합니다.
  2. IdP 그룹 이름과 일치하는 그룹을 생성하고 테이블 및 스키마에 적절한 권한을 부여합니다.
CREATE GROUP analyst_users;
CREATE GROUP bi_users;

ALTER DEFAULT PRIVILEGES IN SCHEMA sales_analysis
GRANT SELECT on TABLES to GROUP analyst_users;
GRANT USAGE on SCHEMA sales_analysis to GROUP analyst_users;
GRANT SELECT on ALL TABLES in SCHEMA sales_analysis to GROUP analyst_users;

ALTER DEFAULT PRIVILEGES IN SCHEMA sales_bi
GRANT SELECT on TABLES to GROUP bi_users;
GRANT USAGE on SCHEMA sales_bi to GROUP bi_users;
GRANT SELECT on ALL TABLES in SCHEMA sales_bi to GROUP bi_users;

Okta에서 사용자를 생성했습니다. Jane 그리고 할당 Jane ~로 analyst_users 그룹입니다.

Amazon Redshift 데이터베이스에서 두 개의 데이터베이스 그룹을 생성했습니다. analyst_usersbi_users.

사용자가 Jane 쿼리 편집기 v2를 사용하여 연동 인증을 통해 Amazon Redshift에 로그인하면 사용자가 아직 없는 경우 생성되고 analyst_users 데이터베이스 그룹이 가정됩니다. 사용자 Jane 다음에서만 테이블을 쿼리할 수 있습니다. sales_analysis 개요.

왜냐하면 사용자 Jane 의 일부가 아닙니다 bi_users 그룹에 액세스하려고 할 때 sales_bi 스키마에서 권한 거부 오류가 발생합니다.

다음 다이어그램은 이 구성을 보여줍니다.

Amazon Redshift 쿼리 편집기 v2에 액세스

이제 연합 로그인을 사용하여 Amazon Redshift 쿼리 편집기 v2를 사용하여 Amazon Redshift 클러스터에 연결할 준비가 되었습니다. 사용자 자격 증명으로 Okta 계정에 로그인합니다. 나의 앱들¸ 선택 Amazon Redshift 쿼리 편집기 V2.

기본 릴레이 상태로 지정한 Amazon Redshift 쿼리 편집기 v2 URL로 리디렉션됩니다.

Amazon Redshift 데이터베이스에 연결하고 쿼리 실행

이제 Amazon Redshift 클러스터에 대한 연결을 설정하겠습니다.

  1. 쿼리 편집기에서 클러스터를 선택하고(오른쪽 클릭) 연결 만들기.
  2. 럭셔리 데이터베이스이름을 입력하십시오.
  3. 럭셔리 인증, 고르다 연합 사용자.
    사용자 이름은 연합 로그인 정보로 미리 채워져 있습니다.
  4. 왼쪽 메뉴에서 연결 만들기.

Amazon Redshift 데이터베이스에 연결되면 다음 스크린샷과 같이 연결 세부 정보를 확인할 수 있습니다. Okta 애플리케이션 구성의 그룹 할당에 따른 세션 수준 그룹 연결을 확인하십시오. 이 경우 사용자 Jane은 analyst_users 그룹입니다.

이 사용자는 SELECT의 모든 테이블에 액세스할 수 있습니다. sales_analysis 스키마 및 액세스 권한 없음 sales_bi 개요. 다음 명령문을 실행하여 액세스 권한을 테스트할 수 있습니다.

다음 스크린샷은 쿼리 결과를 보여줍니다. sales_analysis.store_sales_us 테이블.

사용자가 Jane 의 테이블에 액세스하려고 시도합니다. sales_bi 스키마에서 권한 거부 오류가 발생합니다.

요약

이 게시물에서는 Okta를 IdP로 사용하여 Amazon Redshift 쿼리 편집기 v2에 대한 SSO 액세스를 연합하는 방법을 시연했습니다. 우리는 Okta를 설정하는 방법을 보여주었습니다. PrinicpalTag 쿼리 편집기 v2에 대한 속성을 추가하고 Okta IdP에 정의된 그룹 멤버십을 Amazon Redshift 클러스터로 전달합니다. 연합 로그인을 사용하여 Amazon Redshift 쿼리 편집기 v2에 로그인하고 몇 가지 쿼리를 실행하여 구성을 검증하는 방법을 보여주었습니다. 이 솔루션을 사용하면 Amazon Redshift 데이터베이스 객체에 대한 액세스를 제어할 수 있으며, 사용자는 데이터베이스 사용자 및 암호를 관리하지 않고도 연동 자격 증명을 사용하여 쿼리 편집기 v2를 통해 Amazon Redshift 클러스터에 쉽게 액세스할 수 있습니다.

피드백이나 질문이 있으면 댓글에 남겨주세요.


저자에 관하여

수밋 조시 뉴욕에 기반을 둔 분석 전문가 솔루션 설계자입니다. 그는 대규모 데이터 웨어하우징 솔루션 구축을 전문으로 합니다. 그는 데이터 웨어하우징 및 분석 분야에서 16년 이상의 경험을 가지고 있습니다.

바누 핏탐펄리 댈러스에 거주하는 분석 전문가 솔루션 설계자입니다. 그는 분석 솔루션 구축을 전문으로 합니다. 그의 배경은 14년 이상 데이터 및 분석 분야입니다. 그의 LinkedIn 프로필을 찾을 수 있습니다 여기에서 지금 확인해 보세요..

에롤 무르테자오글루, AWS의 기술 제품 관리자는 자기 개선 및 학습에 대한 추진력이 있는 호기심 많고 열정적인 사고 방식을 가지고 있습니다. 그는 소프트웨어 개발 및 아키텍처 분야에서 강력하고 입증된 기술적 배경을 가지고 있으며 상업적으로 성공적인 제품을 제공하려는 추진력과 균형을 이루고 있습니다. Erol은 기대 이상의 솔루션을 제공하기 위해 고객의 요구와 문제를 이해하는 과정을 높이 평가합니다.

야니스 텔라우마텐 AWS의 소프트웨어 개발 엔지니어입니다. 그의 열정은 신뢰할 수 있는 소프트웨어를 구축하고 다른 엔지니어가 보다 효율적으로 작업할 수 있도록 하는 도구를 만드는 것입니다. 지난 몇 년 동안 그는 Redshift 서비스의 ID, 보안 및 안정성에 대해 작업했습니다.

spot_img

최신 인텔리전스

spot_img

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?