

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

# 建立與 Amazon SageMaker 資料湖倉的 Aurora 零 ETL 整合
<a name="zero-etl.creating-smlh"></a>

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

## 先決條件
<a name="zero-etl.create-prereqs-smlh"></a>

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

如需完成上述每個步驟的指示，請參閱 [開始使用 Aurora 零 ETL 整合](zero-etl.setting-up.md)。

## 所需的許可
<a name="zero-etl.create-permissions-smlh"></a>

建立與 Amazon SageMaker 資料湖倉的零 ETL 整合需要特定 IAM 許可。您至少需要執行下列動作的許可：
+ 為來源 Aurora 資料庫叢集建立零 ETL 整合。
+ 檢視並刪除所有零 ETL 整合。
+ 在目標 AWS Glue 受管目錄中建立傳入整合。
+ 存取 AWS Glue 受管目錄使用的 Amazon S3 儲存貯體。
+ 如果已設定自訂加密，請使用 AWS KMS 金鑰進行加密。
+ 向 Lake Formation 註冊資源。
+ 在 AWS Glue 受管目錄上放置資源政策，以授權傳入整合。

下列範例政策示範建立和管理與 Amazon SageMaker 資料湖倉的整合所需的[最低權限許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)。如果您的使用者或角色具有更廣泛的許可，例如 `AdministratorAccess` 受管政策，則可能不需要這些確切許可。

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

### 用於授權目標目錄上傳入整合的範例 AWS CLI 命令
<a name="zero-etl.create-sample-policy-smlh"></a>

```
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 受管目錄
<a name="zero-etl.create-permissions-cross-account-smlh"></a>

如果您打算指定位於另一個 中的目標 AWS Glue 受管目錄 AWS 帳戶，則必須建立角色，允許目前帳戶中的使用者存取目標帳戶中的資源。如需詳細資訊，請參閱[AWS 帳戶 為您擁有的另一個 IAM 使用者提供存取權](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)。

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

#### 必要許可和信任政策
<a name="zero-etl.cross-account-sample-policy-smlh"></a>

------
#### [ 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"
      }
   ]
}
```

------

如需建立角色的指示，請參閱[使用自訂信任政策建立角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)。

## 建立與 Amazon SageMaker 資料湖倉的零 ETL 整合
<a name="zero-etl.create-smlh"></a>

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

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

### RDS 主控台
<a name="zero-etl.create-console-smlh"></a>

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

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)：// 開啟 Amazon RDS 主控台。

1. 在左側導覽窗格中，選擇**零 ETL 整合**。

1. 選擇**建立零 ETL 整合**。

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

1. 選擇**下一步**。

1. 對於**來源**，請選取資料源自其中的 Aurora 資料庫叢集。
**注意**  
如果未正確設定資料庫叢集參數，RDS 即會通知您。如果您收到此訊息，您可以選擇**為我修正**或手動設定它們。如需手動修正它們的指示，請參閱 [步驟 1：建立自訂資料庫叢集參數群組。](zero-etl.setting-up.md#zero-etl.parameters)。  
修改資料庫叢集參數需要重新開機。在可以建立整合之前，必須先完成重新開機，且新參數值必須成功套用至叢集。

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

1. 順利設定來源資料庫叢集後，即可選擇**下一步**。

1. 針對**目標**，執行下列動作：

   1. （選用） 若要 AWS 帳戶 對湖區目標使用不同的 Amazon SageMaker ，請選擇**指定不同的帳戶**。然後，輸入具有顯示 AWS Glue 目錄許可的 IAM 角色的 ARN。如需建立 IAM 角色的指示，請參閱 [在不同的帳戶中選擇目標 AWS Glue 受管目錄](#zero-etl.create-permissions-cross-account-smlh)。

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

   1. 目標 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"
              }
          ]
      }
      ```

------

   1. 您必須使用在 中建立的 Lake Formation 管理員角色，授予目標 IAM 角色描述目標 AWS Glue 受管目錄的許可[步驟 3b：建立 Amazon SageMaker Lakehouse 零 ETL 整合的 AWS Glue 目錄](zero-etl.setting-up.md#zero-etl-setting-up.sagemaker)。
**注意**  
如果指定的 AWS Glue 受管目錄的資源政策或組態設定未正確設定，RDS 會通知您。如果您收到此訊息，您可以選擇**為我修正**或手動設定它們。  
如果您選取的來源和目標位於不同的 AWS 帳戶中，則 Amazon RDS 無法為您修正這些設定。您必須導覽至其他帳戶，然後在 SageMaker Unified Studio 中手動修正這些設定。

1. 正確設定目標 AWS Glue 受管目錄後，請選擇**下一步**。

1. (選用) 對於**標籤**，將一或多個標籤新增至整合。如需詳細資訊，請參閱[標記 Amazon Aurora 和 Amazon RDS 資源](USER_Tagging.md)。

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

   可選擇性地新增加密內容。如需詳細資訊，請參閱 *AWS Key Management Service 開發人員指南*中的[加密內容](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)。
**注意**  
除了您新增的任何項目之外，Amazon RDS 還會新增下列加密內容對：  
`aws:glue:integration:arn` - `IntegrationArn`
`aws:servicename:id` - `glue`
這會將您可以新增的整體配對數量從 8 減少為 6，並對授予限制的整體字元限制造成影響。如需詳細資訊，請參閱《AWS Key Management Service 開發人員指南》**中的[使用授予限制條件](https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints)。

1. 選擇**下一步**。

1. 檢閱您的整合設定，然後選擇**建立零 ETL 整合**。

   如果建立失敗，請參閱 [針對 Aurora 零 ETL 整合進行疑難排解](zero-etl.troubleshooting.md)，取得疑難排解步驟。

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

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

### AWS CLI
<a name="zero-etl.create-cli-smlh"></a>

若要使用 準備零 ETL 整合的目標 AWS Glue 受管目錄 AWS CLI，您必須先使用 [create-integration-resource-property](https://docs.aws.amazon.com/cli/latest/reference/rds/create-integration.html) 命令搭配下列選項：
+ `--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](https://docs.aws.amazon.com/cli/latest/reference/rds/create-integration.html) 命令搭配下列選項：
+ `--integration-name` - 指定整合的名稱。
+ `--source-arn` - 指定 Aurora 資料庫叢集的 ARN，它將會成為整合來源。
+ `--target-arn` – 指定將成為整合目標之 AWS Glue 受管目錄的 ARN。

**Example**  
針對 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}}
```

### RDS API
<a name="zero-etl.create-api-smlh"></a>

若要使用 Amazon RDS API 建立與 Amazon SageMaker 的零 ETL 整合，請搭配下列參數使用 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateIntegration.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateIntegration.html) 操作：

**注意**  
目錄名稱限制為 19 個字元。如果 IntegrationName 參數將用作目錄名稱，請確保其符合此要求。
+ `IntegrationName` - 指定整合的名稱。
+ `SourceArn` - 指定 Aurora 資料庫叢集的 ARN，它將會成為整合來源。
+ `TargetArn` – 指定將成為整合目標之 AWS Glue 受管目錄的 ARN。

## 使用客戶自管金鑰加密整合
<a name="zero-etl.create-encrypt-smlh"></a>

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

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

### 範例金鑰政策
<a name="zero-etl.kms-sample-policy"></a>

------
#### [ 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 開發人員指南》**中的[建立金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html)。

## 後續步驟
<a name="zero-etl.create-next-smlh"></a>

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