自 2025 年 11 月 1 日起,Amazon Redshift 將不再支援建立新的 Python UDFs。如果您想要使用 Python UDFs,請在該日期之前建立 UDFs。現有的 Python UDFs將繼續如常運作。如需詳細資訊,請參閱部落格文章
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為 DynamoDB 建立零 ETL 整合
在建立零 ETL 整合之前,請檢閱 中概述的考量事項和要求將零 ETL 整合與 Amazon Redshift 搭配使用的考量。遵循此一般流程,建立從 DynamoDB 到 Amazon Redshift 的零 ETL 整合
使用零 ETL 整合將 DynamoDB 資料複寫至 Amazon Redshift
-
確認您的登入憑證允許許可使用 Amazon Redshift 和 DynamoDB 的零 ETL 整合。如需範例 IAM 政策使用 DynamoDB 零 ETL 整合的 IAM 政策,請參閱 。
-
從 DynamoDB 主控台,將 DynamoDB 資料表設定為具有point-in-time(PITR)、資源政策、身分型政策和加密金鑰許可,如 Amazon 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
條件金鑰會將 KMS 金鑰的使用限制為來自 Amazon Redshift 的請求。
{ "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 開發人員指南》中的使用授予限制。