建立與 Amazon SageMaker 資料湖倉的 Aurora 零 ETL 整合 - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立與 Amazon SageMaker 資料湖倉的 Aurora 零 ETL 整合

當您建立與 Lakehouse Amazon SageMaker 的 Aurora零 ETL 整合時,您可以指定來源 Aurora 資料庫叢集和目標AWS Glue受管目錄。您也可以自訂加密設定和新增標籤。Aurora 會在來源資料庫叢集與其目標之間建立整合。一旦整合作用中,您插入至來源資料庫叢集的任何資料就會複寫至設定的目標。

先決條件

建立與 Lakehouse Amazon SageMaker 的零 ETL 整合之前,您必須建立來源資料庫叢集和目標AWS Glue受管目錄。您也必須將資料庫叢集新增為授權整合來源,以允許複寫至目錄。

如需完成上述每個步驟的指示,請參閱 開始使用 Aurora 零 ETL 整合

所需的許可

建立與 Amazon SageMaker 資料湖倉的零 ETL 整合需要特定 IAM 許可。您至少需要執行下列動作的許可:

  • 為來源 Aurora 資料庫叢集建立零 ETL 整合。

  • 檢視並刪除所有零 ETL 整合。

  • 在目標AWS Glue受管目錄中建立傳入整合。

  • 存取AWS Glue受管目錄使用的 Amazon S3 儲存貯體。

  • 如果已設定自訂加密,請使用 AWS KMS金鑰進行加密。

  • 向 Lake Formation 註冊資源。

  • 在AWS Glue受管目錄上放置資源政策,以授權傳入整合。

下列範例政策示範建立和管理與 Amazon SageMaker 資料湖倉的整合所需的最低權限許可。如果您的使用者或角色具有更廣泛的許可,例如 AdministratorAccess 受管政策,則可能不需要這些確切許可。

此外,您必須在目標AWS Glue受管目錄上設定資源政策,以授權傳入整合。使用下列AWS CLI命令來套用資源政策。

aws glue put-resource-policy \ --policy-in-json '{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": [ "glue:AuthorizeInboundIntegration" ], "Resource": ["arn:aws:glue:region:account_id:catalog/catalog_name"], "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:rds:region:account_id:db:source_name" } } }, { "Effect": "Allow", "Principal": { "AWS": "account_id" }, "Action": ["glue:CreateInboundIntegration"], "Resource": ["arn:aws:glue:region:account_id:catalog/catalog_name"] } ] }' \ --region region
注意

Glue 目錄 Amazon Resource Name (ARN) 具有下列格式:

  • Glue 目錄 – arn:aws:glue:{region}:{account-id}:catalog/catalog-name

在不同的帳戶中選擇目標AWS Glue受管目錄

如果您打算指定位於另一個 的目標AWS Glue受管目錄AWS 帳戶,您必須建立角色,允許目前帳戶中的使用者存取目標帳戶中的資源。如需詳細資訊,請參閱AWS 帳戶為您擁有的另一個 IAM 使用者提供存取權

角色必須具有下列許可,允許使用者檢視目標帳戶中可用的AWS Glue目錄。

JSON
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "glue:GetCatalog" ], "Resource":[ "*" ] } ] }

角色必須具有下列信任策略,其可指定目標帳戶 ID。

JSON
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS": "arn:aws:iam::111122223333:root" }, "Action":"sts:AssumeRole" } ] }

如需建立角色的指示,請參閱使用自訂信任政策建立角色

建立與 Amazon SageMaker 資料湖倉的零 ETL 整合

您可以使用 AWS 管理主控台AWS CLI、 Amazon SageMaker 或 RDS API 建立與湖房的零 ETL 整合。

重要

與 Amazon SageMaker 資料湖倉的零 ETL 整合不支援重新整理或重新同步操作。如果您在建立整合之後遇到問題,則必須刪除整合並建立新的整合。

建立與 Amazon SageMaker 資料湖倉的零 ETL 整合
  1. 登入 AWS 管理主控台並開啟位於 https://https://console.aws.amazon.com/rds/ 的 Amazon RDS 主控台。

  2. 在左側導覽窗格中,選擇零 ETL 整合

  3. 選擇建立零 ETL 整合

  4. 對於整合識別符,輸入整合的名稱。此名稱最多可有 63 個英數字元,且可包含連字號。

  5. 選擇下一步

  6. 對於來源,請選取資料源自其中的 Aurora 資料庫叢集

    注意

    如果未正確設定資料庫叢集參數,RDS 即會通知您。如果您收到此訊息,您可以選擇為我修正或手動設定它們。如需手動修正它們的指示,請參閱 步驟 1:建立自訂資料庫叢集參數群組。

    修改資料庫叢集參數需要重新開機。在可以建立整合之前,必須先完成重新開機,且新參數值必須成功套用至叢集

  7. (選用) 選取自訂資料篩選選項,並將資料篩選條件新增至您的整合。您可以使用資料篩選條件來定義目標 Amazon SageMaker 資料湖倉的複寫範圍。如需詳細資訊,請參閱Aurora 零 ETL 整合的資料篩選

  8. 順利設定來源資料庫叢集後,即可選擇下一步

  9. 針對目標,執行下列動作:

    1. (選用) 若要AWS 帳戶對湖房目標使用不同的 Amazon SageMaker ,請選擇指定不同的帳戶。然後,輸入具有顯示AWS Glue目錄許可的 IAM 角色 ARN。如需建立 IAM 角色的指示,請參閱 在不同的帳戶中選擇目標AWS Glue受管目錄

    2. 對於 AWS Glue 目錄,從來源資料庫叢集選取複寫資料的目標。您可以選擇現有的 AWS Glue 受管目錄做為目標。

    3. 目標 IAM 角色需要描述目標目錄的許可,並且必須具有下列許可:

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "glue:GetCatalog", "Resource": [ "arn:aws:glue:us-east-1:111122223333:catalog/*", "arn:aws:glue:us-east-1:111122223333:catalog" ] } ] }

      目標 IAM 角色必須具有下列信任關係:

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    4. 您必須使用在 中建立的 Lake Formation 管理員角色,授予目標 IAM 角色描述目標AWS Glue受管目錄的許可步驟 3b:建立 Amazon SageMaker AI 零 ETL 整合的AWS Glue目錄

    注意

    如果指定的AWS Glue受管目錄的資源政策或組態設定未正確設定,RDS 會通知您。如果您收到此訊息,您可以選擇為我修正或手動設定它們。

    如果您選取的來源和目標位於不同的 AWS 帳戶 中,則 Amazon RDS 無法為您修正這些設定。您必須導覽至其他帳戶,然後在 SageMaker Unified Studio 中手動修正這些設定。

  10. 正確設定目標AWS Glue受管目錄後,請選擇下一步

  11. (選用) 對於標籤,將一或多個標籤新增至整合。如需詳細資訊,請參閱標記 Amazon Aurora 和 Amazon RDS 資源

  12. 對於加密,指定您想要加密整合的方式。根據預設,RDS 會加密與 的所有整合AWS 擁有的金鑰。若要改為選擇客戶受管金鑰,請啟用自訂加密設定,然後選擇要用於加密的 KMS 金鑰。如需詳細資訊,請參閱加密 Amazon Aurora 資源

    可選擇性地新增加密內容。如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的加密內容

    注意

    除了您新增的任何項目之外,Amazon RDS 還會新增下列加密內容對:

    • aws:glue:integration:arn - IntegrationArn

    • aws:servicename:id - glue

    這會將您可以新增的整體配對數量從 8 減少為 6,並對授予限制的整體字元限制造成影響。如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的使用授予限制條件

  13. 選擇下一步

  14. 檢閱您的整合設定,然後選擇建立零 ETL 整合

    如果建立失敗,請參閱 針對 Aurora 零 ETL 整合進行疑難排解,取得疑難排解步驟。

整合建立時的狀態為 Creating,而目標 Amazon SageMaker 資料湖倉的狀態為 Modifying。在此期間,您無法查詢目錄或對其進行任何組態變更。

成功建立整合時,整合和目標 Amazon SageMaker 資料湖倉的狀態都會變更為 Active

若要使用 準備零 ETL 整合的目標AWS Glue受管目錄AWS CLI,您必須先使用 create-integration-resource-property 命令搭配下列選項:

  • --resource-arn – 指定將成為整合目標之AWS Glue受管目錄的 ARN。

  • --target-processing-properties – 指定 IAM 角色的 ARN 以存取目標AWS Glue受管目錄

aws glue create-integration-resource-property --region us-east-1 --resource-arn arn:aws:glue:region:account_id:catalog/catalog_name \ --target-processing-properties '{"RoleArn" : "arn:aws:iam::account_id:role/TargetIamRole"}'

若要使用 建立與 Lakehouse Amazon SageMaker 的零 ETL 整合AWS CLI,請使用 create-integration 命令搭配下列選項:

  • --integration-name - 指定整合的名稱。

  • --source-arn - 指定 Aurora 資料庫叢集的 ARN,它將會成為整合來源。

  • --target-arn – 指定將成為整合目標之AWS Glue受管目錄的 ARN。

針對 Linux、macOS 或 Unix:

aws rds create-integration \ --integration-name my-sagemaker-integration \ --source-arn arn:aws:rds:{region}:{account-id}:cluster:my-db \ --target-arn arn:aws:glue:{region}:{account-id}:catalog/catalog-name

在 Windows 中:

aws rds create-integration ^ --integration-name my-sagemaker-integration ^ --source-arn arn:aws:rds:{region}:{account-id}:cluster:my-db ^ --target-arn arn:aws:glue:{region}:{account-id}:catalog/catalog-name

若要使用 Amazon RDS API 建立與 Amazon SageMaker 的零 ETL 整合,請搭配下列參數使用 CreateIntegration 操作:

注意

目錄名稱限制為 19 個字元。如果 IntegrationName 參數將用作目錄名稱,請確保其符合此要求。

  • IntegrationName - 指定整合的名稱。

  • SourceArn - 指定 Aurora 資料庫叢集的 ARN,它將會成為整合來源。

  • TargetArn – 指定將成為整合目標之AWS Glue受管目錄的 ARN。

使用客戶自管金鑰加密整合

如果您在建立與 的整合AWS 擁有的金鑰時指定自訂 KMS 金鑰,而不是 Amazon SageMaker,則金鑰政策必須提供 SageMaker Unified Studio 動作的服務主體存取權CreateGrant。此外,它必須允許目前的使用者執行 DescribeKeyCreateGrant 動作。

下列範例政策示範如何在金鑰政策中提供必要許可。它包含內容索引鍵,以進一步減少許可範圍。

JSON
{ "Version":"2012-10-17", "Id": "Key policy", "Statement": [ { "Sid": "EnablesIAMUserPermissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "GlueServicePrincipalAddGrant", "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:{context-key}":"{context-value}" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } }, { "Sid": "AllowsCurrentUserRoleAddGrantKMSKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/{role-name}" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:{context-key}":"{context-value}", "kms:ViaService": "rds.us-east-1.amazonaws.com" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } }, { "Sid": "AllowsCurrentUserRoleRetrieveKMSKeyInformation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/{role-name}" }, "Action": "kms:DescribeKey", "Resource": "*" } ] }

如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的建立金鑰政策

後續步驟

成功建立與 Amazon SageMaker 的零 ETL 整合後,您可以開始將資料新增至來源 Aurora 資料庫叢集,並在 Amazon SageMaker 資料湖倉中查詢資料。資料會自動複寫,並可用於分析和機器學習工作負載。