Amazon Redshift는 2025년 11월 1일부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. Python UDF를 사용하려면 이 날짜 이전에 UDF를 생성하세요. 기존 Python UDF는 정상적으로 계속 작동합니다. 자세한 내용은 블로그 게시물
DynamoDB에 대한 제로 ETL 통합 생성
제로 ETL 통합을 생성하기 전에 Amazon Redshift와 제로 ETL 통합을 사용할 때 고려할 사항에 설명된 고려 사항 및 요구 사항을 검토하세요. 이 일반적인 흐름에 따라 DynamoDB에서 Amazon Redshift로의 제로 ETL 통합을 생성합니다.
제로 ETL 통합이 구성된 Amazon Redshift로 DynamoDB 데이터를 복제하려면
-
로그인 자격 증명이 Amazon Redshift 및 DynamoDB와의 제로 ETL 통합으로 작업할 수 있는 권한을 허용하는지 확인합니다. IAM 정책 예제는 DynamoDB 제로 ETL 통합을 사용하는 IAM 정책 섹션을 참조하세요.
-
DynamoDB 콘솔에서 Amazon DynamoDB 개발자 안내서에 설명된 대로 시점 복구(PITR), 리소스 정책, 자격 증명 기반 정책 및 암호화 키 권한을 갖도록 DynamoDB 테이블을 구성합니다.
-
Amazon Redshift 콘솔에서: 대상 Amazon Redshift 데이터 웨어하우스 생성 및 구성.
-
AWS CLI 또는 Amazon Redshift 콘솔에서: 데이터 웨어하우스에 대/소문자 구분 기능 사용 설정.
-
Amazon Redshift 콘솔에서: Amazon Redshift 데이터 웨어하우스에 대한 권한 부여 구성.
-
-
Amazon Redshift 콘솔에서 이 주제의 뒷부분에 설명된 대로 제로 ETL 통합을 생성합니다.
-
Amazon Redshift 콘솔에서 Amazon Redshift 데이터 웨어하우스에 대상 데이터베이스를 생성합니다. 자세한 내용은 Amazon Redshift에서 대상 데이터베이스 생성 섹션을 참조하세요.
-
Amazon Redshift 콘솔에서 Amazon Redshift 데이터 웨어하우스에서 복제된 데이터를 쿼리합니다. 자세한 내용은 Amazon Redshift에서 복제된 데이터 쿼리 섹션을 참조하세요.
이 단계에서는 Amazon Redshift와의 Amazon DynamoDB 제로 ETL 통합을 생성합니다.
DynamoDB 제로 ETL 통합을 사용하는 IAM 정책
제로 ETL 통합을 생성할 때 로그인 자격 증명은 DynamoDB 및 Amazon Redshift 작업과 통합의 소스 및 대상으로 관련된 리소스에 대한 권한이 있어야 합니다. 다음은 필요한 최소 권한을 보여주는 예제입니다.
고객 관리형 키를 사용하여 DynamoDB 통합 암호화
DynamoDB 제로 ETL 통합을 생성할 때 AWS 소유 키가 아닌 사용자 지정 KMS 키를 지정하는 경우 키 정책은 Amazon Redshift 서비스 위탁자에 CreateGrant
작업에 대한 액세스 권한을 제공해야 합니다. 또한, 요청자 계정 또는 역할 권한이 DescribeKey
및 CreateGrant
작업을 수행할 수 있도록 허용해야 합니다.
다음 샘플 키 정책 문은 정책에 필요한 권한을 보여줍니다. 일부 예에는 권한 범위를 더 축소하기 위한 컨텍스트 키가 포함됩니다.
다음 정책 문을 사용하면 요청자 계정 또는 역할이 KMS 키에 대한 정보를 검색할 수 있습니다.
{ "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::
{account-ID}
:role/{role-name}
" }, "Action":"kms:DescribeKey", "Resource":"*" }
다음 정책 문에서는 요청자 계정 또는 역할이 KMS 키에 권한 부여를 추가할 수 있도록 허용합니다. kms:ViaService
조건 키는 Amazon Redshift로부터의 요청으로 KMS 키의 사용을 제한합니다.
{ "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::
{account-ID}
:role/{role-name}
" }, "Action":"kms:CreateGrant", "Resource":"*", "Condition":{ "StringEquals":{ "kms:EncryptionContext:{context-key}
":"{context-value}
", "kms:ViaService":"redshift.{region}
.amazonaws.com" }, "ForAllValues:StringEquals":{ "kms:GrantOperations":[ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } }
다음 정책 문은 Amazon Redshift 서비스 보안 주체가 KMS 키에 권한을 추가하는 것을 허용합니다.
{ "Effect":"Allow", "Principal":{ "Service":"redshift.amazonaws.com" }, "Action":"kms:CreateGrant", "Resource":"*", "Condition":{ "StringEquals":{ "kms:EncryptionContext:
{context-key}
":"{context-value}
", "aws:SourceAccount":"{account-ID}
" }, "ForAllValues:StringEquals":{ "kms:GrantOperations":[ "Decrypt", "GenerateDataKey", "CreateGrant" ] }, "ArnLike":{ "aws:SourceArn":"arn:aws:*:{region}
:{account-ID}
:integration:*" } } }
자세한 내용은 AWS Key Management Service 개발자 안내서의 키 정책 생성을 참조하세요.
암호화 컨텍스트
제로 ETL 통합을 암호화할 때 키-값 페어를 추가 암호화 컨텍스트로 추가할 수 있습니다. 이러한 키-값 페어를 추가하여 복제되는 데이터에 대한 추가 컨텍스트 정보를 추가할 수 있습니다. 자세한 내용은 AWS Key Management Service 개발자 가이드에서 암호화 컨텍스트를 참조하세요.
Amazon Redshift는 추가한 모든 항목 외에도 다음과 같은 암호화 컨텍스트 쌍을 추가합니다.
-
aws:redshift:integration:arn
-IntegrationArn
-
aws:servicename:id
-Redshift
이렇게 하면 추가할 수 있는 전체 쌍 수가 8개에서 6개로 줄어들고 권한 부여 제약 조건의 전체 문자 제한이 늘어납니다. 자세한 내용은 AWS Key Management Service 개발자 안내서에서 권한 부여 제약 사용을 참조하세요.