단계 1. Amazon Redshift에 대한 IAM 역할 생성 - Amazon Redshift

단계 1. Amazon Redshift에 대한 IAM 역할 생성

클러스터가 AWS Glue 또는 Amazon Athena에 있는 외부 Data Catalog와 Amazon S3에 있는 데이터 파일에 액세스하려면 권한 부여가 필요합니다. 이러한 권한을 부여하려면 클러스터에 연결되어 있는 AWS Identity and Access Management(IAM) 역할을 참조합니다. Amazon Redshift에서의 역할 사용에 대한 자세한 내용은 IAM 역할을 사용하여 COPY 및 UNLOAD 작업 권한 부여 섹션을 참조하세요.

참고

경우에 따라 Athena Data Catalog를 AWS Glue Data Catalog로 마이그레이션할 수 있습니다. 클러스터가 AWS Glue가 지원되는 AWS 리전에 있고 Athena Data Catalog에 Redshift Spectrum 외부 테이블이 있는 경우 이 작업을 수행할 수 있습니다. AWS Glue 데이터 카탈로그를 Redshift Spectrum과 함께 사용하려면 IAM 정책을 변경해야 할 수 있습니다. 자세한 내용은 Athena User GuideUpgrading to the AWS Glue Data Catalog 섹션을 참조하세요.

Amazon Redshift에 대한 역할을 생성할 때 다음 접근 방식 중 하나를 선택합니다.

Amazon Redshift에 대한 IAM 역할을 생성하려면
  1. IAM 콘솔을 엽니다.

  2. 탐색 창에서 역할을 선택합니다.

  3. 역할 생성을 선택합니다.

  4. AWS service(AWS 서비스)를 신뢰할 수 있는 엔터티로 선택한 다음 사용 사례로 Redshift를 선택합니다.

  5. Use case for other AWS 서비스(다른 AWS 서비스 스의 사용 사례)에서 Redshift - Customizable(Redshift - 사용자 지정)을 선택한 후 Next(다음)를 선택합니다.

  6. Add permissions policy(권한 정책 추가) 페이지가 나타납니다. AWS Glue 데이터 카탈로그를 사용하는 경우 AmazonS3ReadOnlyAccessAWSGlueConsoleFullAccess를 선택합니다. 또는 Athena Data Catalog를 사용하는 경우 AmazonAthenaFullAccess를 선택합니다. Next(다음)를 선택합니다.

    참고

    AmazonS3ReadOnlyAccess 정책은 모든 Amazon S3 버킷에 대한 읽기 전용 액세스 권한을 클러스터에 부여합니다. AWS 샘플 데이터 버킷에만 액세스 권한을 부여하려면 새 정책을 생성하고 다음 권한을 추가합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::redshift-downloads/*" } ] }
  7. Role name(역할 이름)에는 역할 이름을 입력합니다(예: myspectrum_role).

  8. 정보를 검토한 후 역할 만들기를 선택합니다.

  9. 탐색 창에서 역할(Roles)을 선택합니다. 새 역할 이름을 선택하여 요약을 본 다음 역할 ARN을 클립보드에 복사합니다. 이 값은 방금 만든 역할의 Amazon 리소스 이름(ARN)입니다. 외부 테이블을 생성해 Amazon S3에 있는 데이터 파일을 참조할 때는 이 값을 사용합니다.

AWS Lake Formation에 사용되는 AWS Glue Data Catalog로 Amazon Redshift에 대한 IAM 역할을 생성하려면
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 정책을 선택합니다.

    정책을 처음으로 선택하는 경우 관리형 정책 소개 페이지가 나타납니다. 시작하기(Get Started)를 선택합니다.

  3. 정책 생성을 선택합니다.

  4. JSON 탭에서 정책을 생성하도록 선택합니다.

  5. 다음 JSON 정책 문서를 붙여넣습니다. 이는 Lake Formation에 대한 액세스 권한을 부여하지만 Data Catalog에 대한 관리자 권한은 거부합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "RedshiftPolicyForLF", "Effect": "Allow", "Action": [ "glue:*", "lakeformation:GetDataAccess" ], "Resource": "*" } ] }
  6. 작업이 완료되면 검토를 선택하여 정책을 검토합니다. 정책 검사기가 모든 구문 오류를 보고합니다.

  7. 정책 검토 페이지의 이름myspectrum_policy를 입력하여 생성 중인 정책의 이름을 지정합니다. 설명을 입력합니다(선택 사항). 정책 요약을 검토하여 정책이 부여한 권한을 확인합니다. 그런 다음 정책 생성을 선택하여 작업을 저장합니다.

    정책을 생성한 후 사용자에게 연결할 수 있습니다.

액세스 권한을 제공하려면 사용자, 그룹 또는 역할에 권한을 추가하세요:

  • AWS IAM Identity Center의 사용자 및 그룹:

    권한 세트를 생성합니다. AWS IAM Identity Center 사용 설명서권한 세트 생성의 지침을 따르십시오.

  • 보안 인증 공급자를 통해 IAM에서 관리되는 사용자:

    ID 페더레이션을 위한 역할을 생성합니다. IAM 사용 설명서서드 파티 자격 증명 공급자의 역할 만들기(연합)의 지침을 따르십시오.

  • IAM 사용자:

    • 사용자가 맡을 수 있는 역할을 생성합니다. IAM 사용 설명서에서 IAM 사용자의 역할 생성의 지침을 따르십시오.

    • (권장되지 않음)정책을 사용자에게 직접 연결하거나 사용자를 사용자 그룹에 추가합니다. IAM 사용 설명서에서 사용자(콘솔)에 권한 추가의 지침을 따르십시오.

Lake Formation 데이터베이스에서 쿼리할 테이블에 대한 SELECT 권한을 부여하려면
  1. Lake Formation 콘솔(https://console.aws.amazon.com/lakeformation/)을 엽니다.

  2. 탐색 창에서 데이터 레이크 권한을 선택한 다음 권한 부여를 선택합니다.

  3. AWS Lake Formation 개발자 안내서의 명명된 리소스 방법을 사용하여 테이블 권한 부여의 지침을 따르세요. 다음 정보를 제공합니다.

    • [IAM 역할(IAM role)]에서 생성한 IAM 역할인 myspectrum_role을 선택합니다. Amazon Redshift 쿼리 편집기를 실행할 때 데이터에 대한 권한으로 이 IAM 역할을 사용합니다.

      참고

      Lake Formation 사용 Data Catalog에서 쿼리할 테이블에 대해 SELECT 권한을 부여하려면 다음을 수행합니다.

      • Lake Formation에서 데이터의 경로를 등록합니다.

      • Lake Formation에서 사용자에게 해당 경로에 대한 권한을 부여합니다.

      • 생성된 테이블은 Lake Formation에 등록된 경로에서 찾을 수 있습니다.

  4. 권한 부여를 선택합니다.

중요

Lake Formation 권한을 통해 기본 Amazon S3 객체에 대한 액세스 권한만 허용하는 것이 좋습니다. 승인되지 않은 액세스를 방지하려면 Lake Formation 외부의 Amazon S3 객체에 대해 부여된 권한을 제거합니다. Lake Formation,을 설정하기 전에 Amazon S3 객체에 액세스한 경우 이전에 설정된 버킷 권한 또는 IAM 정책을 제거합니다. 자세한 내용은 Upgrading AWS Glue Data Permissions to the AWS Lake Formation ModelLake Formation Permissions 섹션을 참조하세요.