Amazon Redshift와 AWS IAM Identity Center 통합 설정 - Amazon Redshift

Amazon Redshift와 AWS IAM Identity Center 통합 설정

Amazon Redshift 클러스터 관리자 또는 Amazon Redshift Serverless 관리자는 여러 단계를 수행하여 Redshift를 AWS IAM Identity Center 지원 애플리케이션으로 구성해야 합니다. 이렇게 하면 Redshift는 AWS IAM Identity Center를 자동으로 검색하고 연결하여 로그인 및 사용자 디렉터리 서비스를 받을 수 있습니다. 그런 다음 Redshift 관리자가 클러스터 또는 작업 그룹을 생성할 때 새 데이터 웨어하우스에서 AWS IAM Identity Center를 사용하여 데이터베이스 액세스를 관리하도록 할 수 있습니다.

Redshift를 AWS IAM Identity Center 관리형 애플리케이션으로 활성화하는 이유는 AWS IAM Identity Center 내에서 또는 통합된 타사 ID 제공업체로부터 사용자 및 그룹 권한을 제어할 수 있도록 하기 위해서입니다. 데이터베이스 사용자(예: 분석가 또는 데이터 과학자)가 Redshift 데이터베이스에 로그인하면 AWS IAM Identity Center의 해당 그룹이 Redshift의 역할 이름과 일치하는지 확인합니다. 이러한 방식으로 Redshift 데이터베이스 역할의 이름을 정의하는 그룹은 예를 들어 판매 분석을 위한 테이블 세트에 액세스할 수 있습니다. 다음 섹션에서는 설정 방법을 안내합니다.

사전 조건

AWS IAM Identity Center를 Amazon Redshift와 통합하기 위한 사전 조건은 다음과 같습니다.

  • 계정 구성 - 계정 간 사용 사례를 계획하거나 동일한 AWS IAM Identity Center 인스턴스로 서로 다른 계정에서 Redshift 클러스터를 사용하는 경우 AWS 조직의 관리 계정에서 AWS IAM Identity Center를 구성해야 합니다. 여기에는 ID 소스 구성이 포함됩니다. 자세한 내용은 AWS IAM Identity Center 사용 설명서의 시작하기, 작업 인력 ID지원되는 ID 제공업체를 참조하세요. Redshift의 데이터에 할당하려면 먼저 AWS IAM Identity Center에서 사용자 또는 그룹을 생성했거나 ID 소스에서 사용자 및 그룹을 동기화해야 합니다.

    참고

    Redshift와 AWS IAM Identity Center가 동일한 계정에 있는 경우 AWS IAM Identity Center의 계정 인스턴스를 사용할 수 있습니다. Redshift 클러스터 또는 작업 그룹을 만들고 구성할 때 위젯을 사용하여 이 인스턴스를 만들 수 있습니다.

  • 신뢰할 수 있는 토큰 발급자 구성 - 경우에 따라 신뢰 토큰을 발급하고 확인할 수 있는 기관인 신뢰할 수 있는 토큰 발급자를 사용해야 할 수도 있습니다. 이를 위해서는 AWS IAM Identity Center 통합을 구성하는 Redshift 관리자가 신뢰할 수 있는 토큰 발급자를 선택하고 필요한 속성을 추가하여 구성을 완료하기 전에 사전 단계를 거쳐야 합니다. 여기에는 신뢰할 수 있는 토큰 발급자 역할을 하도록 외부 ID 제공업체를 구성하고 AWS IAM Identity Center 콘솔에서 해당 속성을 추가하는 것이 포함될 수 있습니다. 이 단계를 완료하려면 신뢰할 수 있는 토큰 발급자를 사용하여 애플리케이션 사용을 참조하세요.

    참고

    모든 외부 연결에 신뢰할 수 있는 토큰 발급자를 설정할 필요는 없습니다. Amazon Redshift 쿼리 에디터 v2를 사용하여 Redshift 데이터베이스에 연결할 때는 신뢰할 수 있는 토큰 발급자 구성이 필요하지 않습니다. 하지만 대시보드와 같은 타사 애플리케이션 또는 ID 제공업체를 통해 인증하는 사용자 지정 애플리케이션에도 적용될 수 있습니다.

  • 하나 이상의 IAM 역할 구성 - 다음 섹션에는 구성해야 하는 권한이 언급되어 있습니다. IAM 모범 사례에 따라 권한을 추가해야 합니다. 구체적인 권한은 다음 절차에 자세히 설명되어 있습니다.

자세한 내용은 Getting Started with AWS IAM Identity Center를 참조하세요.

AWS IAM Identity Center 작업을 위해 ID 제공업체 구성

사용자 및 그룹 ID 관리를 제어하는 첫 번째 단계는 AWS IAM Identity Center에 연결하고 ID 제공업체를 구성하는 것입니다. AWS IAM Identity Center 자체를 ID 제공업체로 사용하거나 Okta와 같은 타사 ID 저장소를 연결할 수 있습니다. ID 제공업체에 대한 연결 설정 및 구성에 대한 자세한 내용은 AWS IAM Identity Center 사용 설명서의 외부 ID 제공업체에 연결을 참조하세요. 이 프로세스 말미에 테스트하기 위해 AWS IAM Identity Center에 소수의 사용자 및 그룹을 추가했는지 확인하세요.

관리 권한

Redshift/AWS IAM Identity Center 애플리케이션 수명 주기 관리에 필요한 권한

Redshift 관리자가 AWS IAM Identity Center와 함께 사용하도록 Redshift를 구성하는 데 사용하는 IAM ID를 만들어야 합니다. 대부분의 경우 권한이 있는 IAM 역할을 생성하고 필요에 따라 다른 ID에 할당합니다. 다음 작업을 수행할 수 있는 권한이 나열되어 있어야 합니다.

Redshift/AWS IAM Identity Center 애플리케이션 생성

  • sso:PutApplicationAssignmentConfiguration - 보안에 사용됩니다.

  • sso:CreateApplication - AWS IAM Identity Center 애플리케이션을 생성하는 데 사용됩니다.

  • sso:PutApplicationAuthenticationMethod - Redshift 인증 액세스 권한을 부여합니다.

  • sso:PutApplicationGrant - 신뢰할 수 있는 토큰 발급자 정보를 변경하는 데 사용됩니다.

  • sso:PutApplicationAccessScope - Redshift AWS IAM Identity Center 애플리케이션을 설정하는 데 사용됩니다. 여기에는 AWS Lake Formation용 및 Amazon S3 Access Grants용이 포함됩니다.

  • redshift:CreateRedshiftIdcApplication - Redshift AWS IAM Identity Center 애플리케이션을 생성하는 데 사용됩니다.

Redshift/AWSIAM Identity Center 애플리케이션 설명

  • sso:GetApplicationGrant - 신뢰할 수 있는 토큰 발급자 정보를 나열하는 데 사용됩니다.

  • sso:ListApplicationAccessScopes - Redshift AWS IAM Identity Center 애플리케이션 설정에서 다운스트림 통합(예: AWS Lake Formation용 및 S3 Access Grants용)을 나열하는 데 사용됩니다.

  • redshift:DescribeRedshiftIdcApplications - 기존 AWS IAM Identity Center 애플리케이션을 설명하는 데 사용됩니다.

Redshift/AWS IAM Identity Center 애플리케이션 변경

  • redshift:ModifyRedshiftIdcApplication - 기존 Redshift 애플리케이션을 변경하는 데 사용됩니다.

  • sso:UpdateApplication - AWS IAM Identity Center 애플리케이션을 업데이트하는 데 사용됩니다.

  • sso:GetApplicationGrant - 신뢰할 수 있는 토큰 발급자 정보를 가져옵니다.

  • sso:ListApplicationAccessScopes - Redshift AWS IAM Identity Center 애플리케이션을 설정하는 데 사용됩니다.

  • sso:DeleteApplicationGrant - 신뢰할 수 있는 토큰 발급자 정보를 삭제합니다.

  • sso:PutApplicationGrant - 신뢰할 수 있는 토큰 발급자 정보를 변경하는 데 사용됩니다.

  • sso:PutApplicationAccessScope - Redshift AWS IAM Identity Center 애플리케이션을 설정하는 데 사용됩니다. 여기에는 AWS Lake Formation용 및 Amazon S3 Access Grants용이 포함됩니다.

  • sso:DeleteApplicationAccessScope - Redshift AWS IAM Identity Center 애플리케이션을 설정을 삭제하는 데 사용됩니다. 여기에는 AWS Lake Formation용 및 Amazon S3 Access Grants용이 포함됩니다.

Redshift/AWS IAM Identity Center 애플리케이션 삭제

  • sso:DeleteApplication - AWS IAM Identity Center 애플리케이션을 삭제하는 데 사용됩니다.

  • redshift:DeleteRedshiftIdcApplication - 기존 Redshift AWS IAM Identity Center 애플리케이션을 삭제할 수 있는 기능을 제공합니다.

Redshift/쿼리 에디터 v2 애플리케이션 수명 주기 관리에 필요한 권한

Redshift 관리자가 AWS IAM Identity Center와 함께 사용하도록 Redshift를 구성하는 데 사용하는 IAM ID를 만들어야 합니다. 대부분의 경우 권한이 있는 IAM 역할을 생성하고 필요에 따라 다른 ID에 할당합니다. 다음 작업을 수행할 수 있는 권한이 나열되어 있어야 합니다.

쿼리 에디터 v2 애플리케이션 생성

  • redshift:CreateQev2IdcApplication - QEV2 애플리케이션을 생성하는 데 사용됩니다.

  • sso:CreateApplication - AWS IAM Identity Center 애플리케이션을 생성하는 권한을 부여합니다.

  • sso:PutApplicationAuthenticationMethod - Redshift 인증 액세스 권한을 부여합니다.

  • sso:PutApplicationGrant - 신뢰할 수 있는 토큰 발급자 정보를 변경하는 데 사용됩니다.

  • sso:PutApplicationAccessScope - Redshift AWS IAM Identity Center 애플리케이션을 설정하는 데 사용됩니다. 여기에는 쿼리 에디터 v2가 포함됩니다.

  • sso:PutApplicationAssignmentConfiguration - 보안에 사용됩니다.

쿼리 에디터 v2 애플리케이션 설명

  • redshift:DescribeQev2IdcApplications - AWS IAM Identity Center QEV2 애플리케이션을 설명하는 데 사용됩니다.

쿼리 에디터 v2 애플리케이션 변경

  • redshift:ModifyQev2IdcApplication - AWS IAM Identity Center QEV2 애플리케이션을 변경하는 데 사용됩니다.

  • sso:UpdateApplication - AWS IAM Identity Center QEV2 애플리케이션을 변경하는 데 사용됩니다.

쿼리 에디터 v2 애플리케이션 삭제

  • redshift:DeleteQev2IdcApplication - QEV2 애플리케이션을 삭제하는 데 사용됩니다.

  • sso:DeleteApplication - QEV2 애플리케이션을 삭제하는 데 사용됩니다.

참고

Amazon Redshift SDK에서는 다음과 같은 API를 사용할 수 없습니다.

  • CreateQev2IdcApplication

  • DescribeQev2IdcApplications

  • ModifyQev2IdcApplication

  • DeleteQev2IdcApplication

이러한 작업은 AWS 콘솔에서 AWS IAM Identity Center를 Redshift QEV2와 통합하는 경우에만 사용할 수 있습니다. 자세한 내용은 Actions defined by Amazon Redshift를 참조하세요.

콘솔에서 새 리소스를 연결하기 위해 데이터베이스 관리자에게 필요한 권한

생성 프로세스 중에 새로 프로비저닝된 클러스터 또는 Amazon Redshift Serverless 작업 그룹을 연결하려면 이러한 권한이 필요합니다. 이러한 권한이 있는 경우 콘솔에 Redshift용 AWS IAM Identity Center 관리형 애플리케이션에 연결하도록 선택할 수 있는 선택 항목이 표시됩니다.

  • redshift:DescribeRedshiftIdcApplications

  • sso:ListApplicationAccessScopes

  • sso:GetApplicationAccessScope

  • sso:GetApplicationGrant

가장 좋은 방법은 권한 정책을 IAM 역할에 연결한 다음 필요에 따라 사용자 및 그룹에 할당하는 것입니다. 자세한 내용은 Amazon Redshift의 Identity and Access Management를 참조하세요.

AWS IAM Identity Center와 연결된 AWS 관리형 애플리케이션으로 Redshift 설정

AWS IAM Identity Center에서 Amazon Redshift 프로비저닝 클러스터 또는 Amazon Redshift Serverless 작업 그룹의 ID를 관리하려면 먼저 Redshift 관리자가 Redshift를 AWS IAM Identity Center 관리형 애플리케이션으로 생성하기 위한 단계를 완료해야 합니다.

  1. Amazon Redshift 또는 Amazon Redshift Serverless 콘솔 메뉴에서 AWS IAM Identity Center 통합을 선택한 다음 AWS IAM Identity Center에 연결을 선택합니다. 여기에서 일련의 선택 단계를 수행하여 AWS IAM Identity Center 통합을 위한 속성을 채웁니다.

  2. Redshift의 AWS IAM Identity Center 관리형 애플리케이션에 대한 표시 이름과 고유한 이름을 선택합니다.

  3. 조직의 네임스페이스를 지정합니다. 일반적으로 조직 이름의 축약된 버전입니다. Redshift 데이터베이스에서 AWS IAM Identity Center 관리형 사용자 및 역할의 접두사로 추가됩니다.

  4. 사용할 IAM 역할을 선택합니다. 이 IAM 역할은 Redshift에 사용되는 다른 역할과 분리되어야 하며 다른 용도로는 사용하지 않는 것이 좋습니다. 구체적인 필수 정책 권한은 다음과 같습니다.

    • sso:DescribeApplication - 카탈로그에 ID 제공업체(idP) 항목을 생성하는 데 필요합니다.

    • sso:DescribeInstance - IdP 페더레이션 역할 또는 사용자를 수동으로 생성하는 데 사용됩니다.

  5. 클라이언트 연결 및 신뢰할 수 있는 토큰 발급자를 구성합니다. 신뢰할 수 있는 토큰 발급자를 구성하면 외부 ID 제공업체와의 관계를 설정하여 신뢰할 수 있는 ID 전파가 용이해집니다. 예를 들어 ID 전파를 통해 사용자는 한 애플리케이션에 로그인하고 다른 애플리케이션의 특정 데이터에 액세스할 수 있습니다. 이를 통해 사용자는 서로 다른 위치에서 보다 원활하게 데이터를 수집할 수 있습니다. 이 단계에서는 콘솔에서 각 신뢰할 수 있는 토큰 발급자의 속성을 설정합니다. 속성에는 도구 또는 서비스의 구성 속성에서 가져와야 할 수 있는 이름 및 대상 클레임(aud 클레임이라고도 함)이 포함됩니다. 타사 도구의 JSON 웹 토큰(JWT)에서 가져온 애플리케이션 이름을 제공해야 할 수도 있습니다.

    참고

    각 타사 도구 또는 서비스에 필요한 aud claim은 토큰 유형(ID 제공업체가 발급한 액세스 토큰일 수 있음) 또는 ID 토큰 등의 다른 유형에 따라 달라질 수 있습니다. 벤더마다 다를 수 있습니다. 신뢰할 수 있는 ID 전파를 구현하고 Redshift와 통합할 때는 타사 도구가 AWS에 전송하는 토큰 유형에 대해 올바른 aud 값을 제공해야 합니다. 도구 또는 서비스 벤더의 권장 사항을 확인하세요.

    신뢰할 수 있는 ID 전파에 대한 자세한 내용은 How trusted identity propagation works를 참조하세요. 또한 이 설명서와 함께 제공되는 AWS IAM Identity Center의 베타 설명서를 참조하세요.

Redshift 관리자가 단계를 완료하고 구성을 저장하면 Redshift 콘솔에 AWS IAM Identity Center 속성이 표시됩니다. 또한 시스템 뷰 SVV_IDENTITY_PROVIDERS를 쿼리하여 애플리케이션의 속성을 확인할 수 있습니다. 여기에는 애플리케이션 이름과 네임스페이스가 포함됩니다. 네임스페이스는 애플리케이션과 연결된 Redshift 데이터베이스 객체의 접두사로 사용합니다. 이러한 작업을 완료하면 Redshift는 AWS IAM Identity Center 지원 애플리케이션이 됩니다. 콘솔의 속성에는 통합 상태가 포함됩니다. 통합이 완료되면 활성화됨이라고 표시됩니다. 이 프로세스가 끝나면 각각의 새 클러스터에서 AWS IAM Identity Center 통합을 활성화할 수 있습니다.

구성 후에는 사용자 또는 그룹 탭을 선택하고 할당을 선택하여 AWS IAM Identity Center에 있는 사용자 및 그룹을 Redshift에 포함할 수 있습니다.

새 Amazon Redshift 클러스터 또는 Amazon Redshift Serverless 작업 그룹에 AWS IAM Identity Center 통합 활성화

데이터베이스 관리자는 새로운 Redshift 리소스가 AWS IAM Identity Center와 연계되어 작동하도록 구성하여 로그인 및 데이터 액세스를 더 용이하게 만듭니다. 이는 프로비저닝된 클러스터 또는 서버리스 작업 그룹을 생성하는 단계의 일부로 수행됩니다. Redshift 리소스를 생성할 수 있는 권한이 있는 모든 사용자는 AWS IAM Identity Center 통합 태스크를 수행할 수 있습니다. 프로비저닝된 클러스터를 생성할 때 Amazon Redshift 콘솔에서 클러스터 생성을 선택하는 것부터 시작하면 됩니다. 다음 단계는 데이터베이스에 대한 AWS IAM Identity Center 관리를 활성화하는 방법을 보여줍니다. 클러스터를 생성하는 모든 단계가 포함되어 있지는 않습니다.

  1. create-cluster 단계에서 IAM Identity Center 통합 섹션의 <클러스터 이름>에 대해 활성화를 선택합니다.

  2. 통합을 활성화하는 프로세스에 한 단계가 있습니다. 콘솔에서 IAM Identity Center 통합 활성화를 선택하면 됩니다.

  3. 새 클러스터 또는 작업 그룹의 경우 SQL 명령을 사용하여 Redshift에서 데이터베이스 역할을 생성합니다. 다음은 명령입니다.

    CREATE ROLE <idcnamespace:rolename>;

    네임스페이스와 역할 이름은 다음과 같습니다.

    • IAM Identity Center 네임스페이스 접두사 - AWS IAM Identity Center와 Redshift 간의 연결을 설정할 때 정의한 네임스페이스입니다.

    • 역할 이름 - 이 Redshift 데이터베이스 역할은 AWS IAM Identity Center의 그룹 이름과 일치해야 합니다.

    Redshift는 AWS IAM Identity Center와 연결하여 데이터베이스 역할을 생성하고 AWS IAM Identity Center 그룹에 매핑하는 데 필요한 정보를 가져옵니다.

새 데이터 웨어하우스가 생성되면 AWS IAM Identity Center 통합을 위해 지정된 IAM 역할이 프로비저닝된 클러스터 또는 Amazon Redshift Serverless 작업 그룹에 자동으로 연결된다는 점에 유의하세요. 필요한 클러스터 메타데이터를 입력하고 리소스를 생성한 후에는 속성에서 AWS IAM Identity Center 통합 상태를 확인할 수 있습니다. AWS IAM Identity Center의 그룹 이름에 공백이 있는 경우 매칭되는 역할을 생성할 때 SQL에서 따옴표를 사용해야 합니다.

Redshift 데이터베이스를 활성화하고 역할을 생성했으면 Amazon Redshift 쿼리 에디터 v2 또는 Amazon QuickSight를 사용하여 데이터베이스에 연결할 준비가 된 것입니다. 자세한 내용은 다음 섹션에 자세히 설명되어 있습니다.

API를 사용하여 기본 RedshiftIdcApplication 설정

설정은 ID 관리자가 수행합니다. API를 사용하여 AWS IAM Identity Center 내의 Redshift 애플리케이션을 나타내는 RedshiftIdcApplication을 만들고 채웁니다.

  1. 먼저 사용자를 생성하고 AWS IAM Identity Center의 그룹에 추가할 수 있습니다. AWS IAM Identity Center용 AWS 콘솔에서 이 작업을 수행하면 됩니다.

  2. AWS IAM Identity Center 애플리케이션을 생성하고 Redshift와 호환해서 사용하도록 create-redshift-idc-application을 호출합니다. 필요한 값을 입력하여 애플리케이션을 생성합니다. 표시 이름은 AWS IAM Identity Center 대시보드에 표시할 이름입니다. IAM 역할 ARN은 AWS IAM Identity Center에 대한 권한이 있는 ARN이며 Redshift에서도 이 역할을 맡을 수 있습니다.

    aws redshift create-redshift-idc-application ––idc-instance-arn 'arn:aws:sso:::instance/ssoins-1234a01a1b12345d' ––identity-namespace 'MYCO' ––idc-display-name 'TEST-NEW-APPLICATION' ––iam-role-arn 'arn:aws:redshift:us-east-1:012345678901:role/TestRedshiftRole' ––redshift-idc-application-name 'myredshiftidcapplication'

    다음 예는 create-redshift-idc-application에 대한 호출에서 반환된 샘플 RedshiftIdcApplication 응답을 보여줍니다.

    "RedshiftIdcApplication": { "IdcInstanceArn": "arn:aws:sso:::instance/ssoins-1234a01a1b12345d", "RedshiftIdcApplicationName": "test-application-1", "RedshiftIdcApplicationArn": "arn:aws:redshift:us-east-1:012345678901:redshiftidcapplication:12aaa111-3ab2-3ab1-8e90-b2d72aea588b", "IdentityNamespace": "MYCO", "IdcDisplayName": "Redshift-Idc-Application", "IamRoleArn": "arn:aws:redshift:us-east-1:012345678901:role/TestRedshiftRole", "IdcManagedApplicationArn": "arn:aws:sso::012345678901:application/ssoins-1234a01a1b12345d/apl-12345678910", "IdcOnboardStatus": "arn:aws:redshift:us-east-1:123461817589:redshiftidcapplication", "RedshiftIdcApplicationArn": "Completed", "AuthorizedTokenIssuerList": [ "TrustedTokenIssuerArn": ..., "AuthorizedAudiencesList": [...]... ]}
  3. create-application-assignment를 사용하여 AWS IAM Identity Center의 관리형 애플리케이션에 특정 그룹이나 개별 사용자를 할당할 수 있습니다. 이렇게 하면 AWS IAM Identity Center를 통해 관리할 그룹을 지정할 수 있습니다. 데이터베이스 관리자가 Redshift에서 데이터베이스 역할을 생성하는 경우 AWS IAM Identity Center의 그룹 이름이 Redshift의 역할 이름에 매핑됩니다. 이 역할은 데이터베이스의 권한을 제어합니다. 자세한 내용은 AWS IAM Identity Center 콘솔에서 애플리케이션에 사용자 액세스 권한 할당을 참조하세요.

  4. 애플리케이션을 활성화한 후에는 create-cluster를 호출하여 AWS IAM Identity Center에서 Redshift 관리형 애플리케이션 ARN을 포함합니다. 이렇게 하면 클러스터가 AWS IAM Identity Center의 관리형 애플리케이션과 연결됩니다.

AWS IAM Identity Center 애플리케이션을 기존 클러스터 또는 작업 그룹과 연결

AWS IAM Identity Center 통합을 활성화하려는 기존 클러스터 또는 작업 그룹이 있는 경우 SQL 명령을 실행하여 활성화할 수 있습니다. SQL 명령을 실행하여 통합 설정을 변경할 수도 있습니다. 자세한 내용은 ALTER IDENTITY PROVIDER를 참조하세요.

기존 ID 제공업체를 삭제할 수도 있습니다. 다음 예에서는 CASCADE가 ID 제공업체에 연결된 사용자 및 역할을 삭제하는 방법을 보여줍니다.

DROP IDENTITY PROVIDER <provider_name> [ CASCADE ]

사용자 권한 설정

관리자는 ID 제공업체 내에서 또는 AWS IAM Identity Center 내에서 사용자의 ID 속성 및 그룹 멤버십을 기반으로 다양한 리소스에 대한 권한을 직접 구성합니다. 예를 들어, ID 제공업체 관리자는 맡은 역할에 적합한 그룹에 데이터베이스 엔지니어를 추가할 수 있습니다. 이 그룹 이름은 Redshift 데이터베이스 역할 이름에 매핑됩니다. 역할은 Redshift의 특정 테이블 또는 뷰에 대한 액세스를 제공하거나 제한합니다.