

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

# 使用 AWS Glue 連線建立聯合目錄
<a name="create-fed-catalog-data-source"></a>

 若要將 AWS Glue Data Catalog 連接到外部資料來源，您需要使用 AWS Glue 啟用與外部資料來源通訊的連線。您可以使用 AWS Glue 主控台、建立 AWS Glue 連線 API 和 Amazon SageMaker Lakehouse 主控台[來建立連線](https://docs.aws.amazon.com/glue/latest/webapi/API_CreateConnection.html)。

如需建立 AWS Glue 連線的逐步說明，請參閱《 AWS Glue 開發人員指南》中的[連線至資料](https://docs.aws.amazon.com/glue/latest/dg/glue-connections.html)或在 [Amazon SageMaker Lakehouse 中建立連線](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/lakehouse-create-connection.html)。

當使用者對聯合資料表執行查詢時，Lake Formation 會提供登入資料，以叫用 AWS Glue 連線中指定的 AWS Lambda 函數，從資料來源擷取中繼資料物件。

------
#### [ AWS 管理主控台 ]

**從外部資料來源建立聯合目錄並設定許可 （主控台）**

1. 開啟 Lake Formation 主控台，網址為 [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)。

1. 在導覽窗格中，選擇 Data **Catalog **下的目錄。 ****

1. 選取**建立目錄**選項。

1. 在**設定目錄**詳細資訊頁面上，輸入下列資訊：  
![具有 選項的建立目錄頁面。](http://docs.aws.amazon.com/zh_tw/lake-formation/latest/dg/images/create-glue-connection-catalog.png)
   + **名稱** – 聯合目錄的唯一名稱。名稱無法變更，且必須為小寫。名稱最多可包含 255 個字元。 帳戶。
   + **類型** – 選擇聯合目錄作為目錄類型。
   + **來源** – 從下拉式清單中選擇資料來源。隨即顯示您已為其建立連線的資料來源。如需建立外部資料來源 AWS Glue 連線的詳細資訊，請參閱《 AWS Glue 開發人員指南》中的[為連接器建立連線](https://docs.aws.amazon.com/glue/latest/dg/creating-connections.html)或在 [Amazon SageMaker Lakehouse 中建立連線](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/lakehouse-create-connection.html)。
   + **連線** – 選擇現有的資料來源 AWS Glue 連線。
   + **描述** – 輸入從資料來源建立之目錄的描述。

1. 選擇 Lake Formation 的 **IAM 角色**，以擔任 ，為查詢引擎提供登入資料，以從資料來源存取資料。此角色必須具備必要的許可，才能存取 AWS Glue 連線並叫用 Lambda 函數，才能從外部資料來源存取資料。

   您也可以在 IAM 主控台中**建立新的角色**。

   如需必要的許可，請參閱 [將 Data Catalog 連線至外部資料來源的先決條件](connect-data-source-prerequisites.md)一節。

1.  選取 選項 **啟用連接器以連接至資料來源**，讓 Athena 執行聯合查詢。

   如需支援的連接器清單，請參閱《Amazon Athena 使用者指南》中的[註冊您的連線](https://docs.aws.amazon.com/athena/latest/ug/register-connection-as-gdc.html)。

1. **加密選項** – 如果您想要使用自訂金鑰來加密目錄，請選擇**自訂加密設定**選項。若要使用自訂金鑰，您必須將其他自訂受管金鑰政策新增至 KMS 金鑰。

1. 選擇**下一步**，將許可授予其他委託人。

1. 在**授予許可**頁面上，選擇**新增許可**。

1.  在**新增許可**畫面上，選擇要授予的委託人和許可類型。  
![具有委託人類型和授予選項的目錄許可頁面。](http://docs.aws.amazon.com/zh_tw/lake-formation/latest/dg/images/catalog-permissions.png)
   +  在**主體**區段中，選擇主體類型，然後指定要授予權限的主體。
     + **IAM 使用者和角色**：從 IAM 使用者和角色清單中，選擇一或多名使用者或角色。
     + **SAML 使用者和群組** – 對於 SAML 和 Amazon Quick 使用者和群組，為透過 SAML 聯合的使用者或群組輸入一或多個 Amazon Resource Name (ARNs)，或為 Amazon Quick 使用者或群組輸入 ARNs。在每個 ARN 後按下 **Enter** 鍵。
   +  在**許可**區段中，選取權限和可授予的權限。

     在**目錄權限**下，選取要授予的一或多個權限。

     選擇**超級使用者**，針對目錄中的所有資源授予不受限制的管理權限。

      在**授予許可**下，選取授予收件人可以授予其 AWS 帳戶中其他委託人的許可。當您從外部帳戶授予 IAM 主體權限時，此選項不受支援。

1. 選擇**下一步**以檢閱資訊並建立目錄。**目錄**清單顯示新的聯合目錄。

   **資料位置**清單會顯示新註冊的聯合連線。  
![資料位置清單包含聯合連線。](http://docs.aws.amazon.com/zh_tw/lake-formation/latest/dg/images/federated_data_lake_location.png)

------
#### [ AWS CLI ]

**從外部資料來源建立聯合目錄並設定許可**

1.  下列範例示範如何建立 AWS Glue 連線。

   ```
   aws glue create-connection 
     --connection-input \
         '{
            "Name": {{"DynamoDB connection"}},
            "ConnectionType": {{"DYNAMODB"}},
            "Description": {{"A connection created for DynamoDB"}},
            "ConnectionProperties": {},
            "AthenaProperties": "spill_prefix": {{"your_spill_prefix"}},
            "lambda_function_arn": {{"Lambda_function_arn"}},
            "spill_bucket": {{"Your_Bucket_name"}},
            "AuthenticationConfiguration": {}
         }'
   ```

1.  下列範例示範如何向 Lake Formation 註冊 AWS Glue 連線。

   ```
   aws lakeformation register-resource 
     --cli-input-json \
       {"ResourceArn":{{"arn:aws:glue:us-east-1:123456789012:connection/dynamo","RoleArn":"arn:aws:iam::123456789012:role/AdminTelemetry"}},"WithFederation":true}
   ```

1.  下列範例示範如何建立聯合目錄。

   ```
   aws glue create-catalog 
    --cli-input-json \
         '{
          "Name":"ddbcatalog",
          "CatalogInput":{"CatalogProperties":{"DataLakeAccessProperties":{"DataTransferRole":"arn:aws:iam::123456789012:role/{{role name}}"}},
          "CreateDatabaseDefaultPermissions":[],
          "CreateTableDefaultPermissions":[],
          "FederatedCatalog":{"ConnectionName":"dynamo","Identifier":"dynamo"}
            }
          }'
   ```

------