建立與 Lakehouse 的 Aurora零 ETL Amazon SageMaker 整合 - Amazon Aurora

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

建立與 Lakehouse 的 Aurora零 ETL Amazon SageMaker 整合

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

先決條件

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

如需完成上述每個步驟的指示,請參閱 Aurora零 ETL 整合入門

所需的許可

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

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

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

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

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

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

  • 向 Lake Formation 註冊資源。

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

下列範例政策示範建立和管理與 lakehouse 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 (ARNs的格式如下:

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

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

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

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

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

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

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

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

建立與 Lakehouse Amazon SageMaker 的零 ETL 整合

您可以使用 AWS CLI、 Amazon SageMaker 或 RDS API 建立與湖房的零 ETL AWS Management Console整合。

重要

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

建立與湖房的零 ETL Amazon SageMaker 整合
  1. 登入 AWS Management Console ,並在 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 角色需要描述目標目錄的許可,並且必須具有下列許可:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "glue:GetCatalog", "Resource": [ "arn:aws:glue:region:account-id:catalog/*", "arn:aws:glue:region:account-id:catalog" ] } ] }

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

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    4. 您必須使用在 中建立的 Lake Formation 管理員角色,授予目標 IAM 角色描述目標 AWS Glue 受管目錄的許可步驟 3b:建立Amazon SageMaker零 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}: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}:my-db ^ --target-arn arn:aws:glue:{region}:{account-id}:catalog/catalog-name

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

注意

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

  • IntegrationName - 指定整合的名稱。

  • SourceArn – 指定將做為整合來源的 Aurora 資料庫叢集的 ARN。

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

加密與客戶受管金鑰的整合

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

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

{ "Version": "2012-10-17", "Id": "Key policy", "Statement": [ { "Sid": "Enables IAM user permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-ID}:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allows the Glue service principal to add a grant to an AWS KMS key", "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": "Allows the current user or role to add a grant to a KMS key", "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": "rds.us-east-1.amazonaws.com" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } }, { "Sid": "Allows the current uer or role to retrieve information about a KMS key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-ID}:role/{role-name}" }, "Action": "kms:DescribeKey", "Resource": "*" } ] }

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

後續步驟

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