

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

# 目錄聯合到遠端 Iceberg 目錄
<a name="catalog-federation"></a>

中的目錄聯合 AWS Glue 提供對 Iceberg 資料表的直接和安全存取，這些資料表存放在 Amazon S3 中，並使用 AWS 分析引擎在遠端目錄中編製目錄。當您存取遠端資料表時，目錄聯合會跨資料目錄和遠端目錄同步中繼資料。它受到各種分析引擎的支援，包括 Amazon Redshift、Amazon EMR、Amazon Athena AWS Glue、Apache Spark 等第三方引擎。

目錄聯合會使用 與遠端目錄系統 AWS Glue Data Catalog 通訊，以探索資料表，並使用 Lake Formation 授權存取 Amazon S3 中的資料表資料。當您查詢聯合資料表時，Data Catalog 會在查詢時間探索遠端目錄中的最新資料表資訊，取得資料表的 Amazon S3 位置、目前的結構描述和分割區資訊。然後，您的分析引擎 (Amazon Athena、Amazon Redshift、Amazon EMR) 會使用此資訊直接從 Amazon S3 存取 Iceberg 資料檔案。Lake Formation 透過將範圍憑證轉換為存放在 Amazon S3 中的資料表資料來管理對 table （資料表） 的存取，允許引擎將精細的許可套用至聯合資料表 （資料表）。

## 目錄聯合功能
<a name="catalog-federation-features"></a>

**使用 Lake Formation 管理**  
Data Catalog 中的聯合 Iceberg 目錄是 Lake Formation 註冊的資源，可讓您使用 Lake Formation 授予，將精細的資料列、資料欄、儲存格層級許可授予聯合 Iceberg 目錄中的 Iceberg 資料表。聯合 Iceberg 目錄和相關聯的物件可以安全地跨 AWS 帳戶共用。聯合 Iceberg 目錄也適用於 Lake Formation 標籤型存取控制，可讓您使用標籤擴展控管。

**網路組態**  
目錄聯合支援使用標準 HTTPS 連線直接連線至遠端目錄來源。當您想要透過組織防火牆進行安全通訊時，它還支援透過 Amazon VPC 的連線，以及使用代理支援維持網路隔離和連線。

**Topics**
+ [目錄聯合功能](#catalog-federation-features)
+ [聯合至 Snowflake Iceberg 目錄](catalog-federation-snowflake.md)
+ [聯合到 Databricks Unity Catalog](catalog-federation-databricks.md)

# 聯合至 Snowflake Iceberg 目錄
<a name="catalog-federation-snowflake"></a>

AWS Glue Data Catalog Snowflake使用Snowflake服務主體的 OAuth2 登入資料聯合到 。您可以使用此聯合來連線至 Snowflake Horizon和 Snowflake Polaris目錄。此身分驗證機制允許 Data Catalog 根據與服務主體相關聯的權限，存取目錄中各種物件 （例如目錄、資料庫和資料表） 的中繼資料。為了確保存取正確的物件，請務必授予 中的服務主體Snowflake讀取這些物件中繼資料的必要許可。

## 先決條件
<a name="catalog-federation-snowflake-prerequisites"></a>

在由 Lake Formation 管理的 Data Catalog 中建立聯合目錄之前，請確定您具有下列許可：

您的 IAM 主體 （使用者或角色） 必須具有下列許可：
+ **Lake Formation 許可** – `lakeformation:RegisterResource`、 `lakeformation:DescribeResource`
+ **AWS Glue 許可** – `glue:CreateConnection`、`glue:CreateCatalog`、`glue:GetConnection`、 `glue:PassConnection`
+ **Secrets Manager 許可** – `secretsmanager:CreateSecret`、 `secretsmanager:GetSecretValue`
+ **IAM 許可** – `iam:CreateRole`、`iam:AttachRolePolicy`、 `iam:PassRole`

您必須是 Lake Formation 資料湖管理員或具有 Data Catalog 的`CREATE_CATALOG`許可

## 建立聯合目錄
<a name="catalog-federation-snowflake-create"></a>

### 使用主控台
<a name="catalog-federation-snowflake-console"></a>

1. 登入 主控台，並在 https：//[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) 開啟 Lake Formation 主控台。

1. 在右上角頁面區段中選擇偏好的 AWS 區域。

1. 在左側導覽窗格中，選擇型錄。

1. 選擇**建立目錄**以開啟**建立目錄工作流程**。

1. 在**選擇資料來源**步驟中，Snowflake從可用的選項中選取 。

1. 在**設定目錄詳細資訊**步驟中，您提供三種資訊：目錄詳細資訊、連線詳細資訊和註冊詳細資訊。

1. 在**目錄詳細資訊**容器中，提供 AWS Glue 聯合目錄的唯一名稱，然後輸入現有Snowflake目錄的名稱。

1. 在**連線詳細資訊**容器中，您可以選擇您有權存取的現有連線，或提供組態來建立新的連接器。

1. 新的連線組態包括：
   + 連線名稱 – AWS Glue 連線物件的唯一名稱。
   + 執行個體 URL – 現有Snowflake帳戶的端點 URL。
   + 身分驗證 – 指定 AWS Glue 用來連線至遠端目錄伺服器的身分驗證組態。 同時 AWS Glue 支援 OAuth2 和自訂身分驗證。
   + 權杖 URL – 指定遠端目錄身分提供者的 URL。
   + OAuth2 用戶端 ID – 指定與遠端目錄相關聯之 OAuth2 憑證的用戶端 ID。
   + 秘密 – 使用 儲存並使用 OAuth2 用戶端秘密， AWS Secrets Manager 或在文字方塊中輸入秘密值。當您在主控台中手動輸入秘密時， 會代表您 AWS Glue 建立秘密。
   + 權杖 URL 範圍 – 指定身分驗證的 OAuth 範圍。
   + 目錄大小寫篩選條件 – 選擇從遠端目錄將小寫或大寫物件帶入 Data Catalog。

1. 建立 IAM 角色，讓 AWS Glue 和 Lake Formation 服務主體分別用來存取遠端 Iceberg 資料表的 AWS Secrets Manager 和 Amazon S3 位置中的秘密。在註冊下拉式清單中選取 IAM 角色。如需 IAM 政策詳細資訊，請參閱下列 CLI 章節中的步驟 2 和 3。

1. 選取測試連線以測試您的連線屬性和 IAM 角色存取是否已正確設定。

1. 選取**下一步**以檢閱您的設定。

1. 在檢閱頁面中選取**建立目錄**。

### 使用 CLI
<a name="snowflake-federation-cli"></a>

1. <a name="snowflake-step-1"></a>**建立 AWS Secrets Manager 秘密**

    AWS Glue 連接器支援兩種身分驗證類型：**OAuth2** 和 **Custom**。使用 OAuth2 選項時，請使用 AWS Secrets Manager 來存放Snowflake服務主體的用戶端秘密。您稍後會在建立 AWS Glue 連線時使用此秘密。對於自訂身分驗證，請使用 AWS Secrets Manager 來存放和擷取存取權杖。

   在下列範例中，將 `your-snowflake-secret`、 `client_secret`取代`region`為您自己的資訊。

   ```
   aws secretsmanager create-secret \
   --name your-snowflake-secret \
   --description "Snowflake secret" \
   --secret-string '{
   "USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET": "client_secret"
   }' \
   --region region
   ```
**注意**  
`USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` 是預留關鍵字， AWS Glue 用來參考秘密中的用戶端秘密值。當您在 Lake Formation 主控台中建立秘密時，也請使用相同的關鍵字。

1. <a name="snowflake-step-2"></a>**建立 IAM 角色，讓 AWS Glue 連線物件存取上一個步驟中建立的秘密**

   當您使用 AWS Secrets Manager 存放、擷取和重新整理 OAuth AWS Secrets Manager 秘密字符時， AWS Glue 連線物件需要存取秘密。當您使用 Amazon VPC 端點限制Snowflake與帳戶的連線時， AWS Glue 連線物件也需要存取才能建立、描述和使用 Amazon VPC 網路介面。

   建立 IAM 政策並將其連接至 IAM 角色。將 AWS Glue 服務主體新增至信任政策。

   在下列範例中，將 `your-secrets-manager-ARN`、 `your-vpc-id`和 取代`your-subnet-id1`為您自己的資訊。  
**Example IAM 政策**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
               "Effect": "Allow",
               "Action": [
                   "secretsmanager:GetSecretValue",
                   "secretsmanager:DescribeSecret",
                   "secretsmanager:PutSecretValue"
               ],
               "Resource": [
                   "your-secrets-manager-ARN"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateNetworkInterface",
                   "ec2:DeleteNetworkInterface",
                   "ec2:DescribeNetworkInterfaces"
               ],
               "Resource": "*",
               "Condition": {
                   "ArnEquals": {
                       "ec2:Vpc": "arn:aws:ec2:region:account-id:vpc/your-vpc-id",
                       "ec2:Subnet": ["arn:aws:ec2:region:account-id:subnet/your-subnet-id1"]
                   }
               }
           }
       ]
   }
   ```  
**Example 信任政策**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Principal": {
               "Service": "glue.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```

1. <a name="snowflake-step-3"></a>**建立 IAM 政策，讓 Lake Formation 能夠讀取目錄的 Amazon S3 位置**

   身為 Data Catalog 中聯合目錄的目錄擁有者，您可以使用 Lake Formation 將粗粒資料表存取、精細 - 資料欄層級、資料列層級和儲存格層級 - 存取，以及標籤型存取授予資料團隊。Lake Formation 使用 IAM 角色，讓其存取遠端 Iceberg 資料表的基礎 Amazon S3 位置。此存取可讓 Lake Formation 將範圍存取憑證提供給查詢遠端資料表的分析引擎。

   建立 IAM 政策並連接至 IAM 角色。將 Lake Formation 服務主體新增至角色信任政策。

   在下列範例中，將 `amzn-s3-demo-bucketN`和 取代`your-kms-key`為您自己的資訊。  
**Example IAM 政策**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1/*",
                   "arn:aws:s3:::amzn-s3-demo-bucket2/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1",
                   "arn:aws:s3:::amzn-s3-demo-bucket2"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:Encrypt"
               ],
               "Resource": [
                   "your-kms-key"
               ]
           }
       ]
   }
   ```  
**Example 信任政策**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
           "Sid": "",
           "Effect": "Allow",
           "Principal": {
               "Service": "lakeformation.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```
**注意**  
當您使用 Lake Formation 主控台建立聯合目錄時，主控台會使用單一 IAM 角色，並連接兩個政策以完成設定。

1. <a name="snowflake-step-4"></a>**建立 AWS Glue 連線物件**

   AWS Glue 連接器支援 OAuth2 和自訂身分驗證方法。Data Catalog 連線物件支援`CATALOG_CASING_FILTER`組態，可讓您將遠端目錄中的小寫或大寫物件帶到 Data Catalog。

   下列範例使用 OAuth2 身分驗證組態來建立 AWS Glue 連線。將 取代`highlighted sections`為您的資訊。

   ```
   aws glue create-connection \
       --connection-input '{
   "Name": "your-glue-connection-to-snowflake-account",
   "ConnectionType": "SNOWFLAKEICEBERGRESTCATALOG",
   "ConnectionProperties": {
       "INSTANCE_URL": "your-snowflake-account-URL",
       "ROLE_ARN": "your-IAM-role-for-secrets-and-VPC-access",
       "CATALOG_CASING_FILTER": "LOWERCASE_ONLY"
   },
   "AuthenticationConfiguration": {
       "AuthenticationType": "OAUTH2",
       "OAuth2Properties": {
           "OAuth2GrantType": "CLIENT_CREDENTIALS",
           "TokenUrl": "your-internal-or-external-token-server-url",
           "OAuth2ClientApplication": {
               "UserManagedClientApplicationClientId": "our-client-id"
           },
           "TokenUrlParametersMap": {
               "scope": "all-apis"
           }
       },
       "SecretArn": "arn:aws:secretsmanager:your-aws-region:your-aws-account-id:secret:snowflake-secret"
   }
   }'
   ```

1. <a name="snowflake-step-5"></a>**將 AWS Glue 連線註冊為 Lake Formation 資源**

   使用 AWS Glue 連線物件 （在步驟 4 中建立） 和 IAM 角色 （在步驟 3 中建立），您現在可以將 AWS Glue 連線物件註冊為 Lake Formation 受管資源。

   將 `your-glue-connector-arn`和 取代`your-IAM-role-ARN-having-LF-access`為您的資訊。

   ```
   aws lakeformation register-resource \
       --resource-arn your-glue-connector-arn \
       --role-arn your-IAM-role-ARN-having-LF-access \
       --with-federation \
       --with-privileged-access
   ```

1. <a name="snowflake-step-6"></a>**在 Data Catalog 中建立聯合目錄**

   建立 AWS Glue 連線物件並使用 Lake Formation 註冊後，您可以在 Data Catalog 中建立聯合目錄：

   在 提供聯合目錄唯一名稱`your-federated-catalog-name`、在 Snowflake中參考目錄`catalog-name-in-Snowflake`，以及在 中稍早建立的輸入連線名稱`your-glue-connection-name`。

   ```
   aws glue create-catalog \
       --name your-federated-catalog-name \
       --catalog-input '{
       "FederatedCatalog": {
           "Identifier": catalog-name-in-Snowflake",
           "ConnectionName": your-glue-connection-name"
       },
       "CreateTableDefaultPermissions": [],
       "CreateDatabaseDefaultPermissions": []
   }'
   ```

## 與 整合時的考量事項 Snowflake
<a name="snowflake-considerations"></a>
+ 當您在 中捨棄資源 （例如資料庫和資料表） 時Snowflake，Lake Formation 不會自動撤銷在該聯合資源上授予的許可。若要移除存取許可，您需要使用 Lake Formation 明確撤銷先前在聯合資源上授予的許可。
+ 當您使用`CATALOG_CASING_FILTER='UPPERCASE_ONLY'`組態掛載遠端目錄時，具有大寫識別符的資料庫和資料表是聯合的，但具有小寫識別符的物件不是聯合的。
+ 您可以重複使用相同的 AWS Glue 連線來建立多個聯合目錄。刪除目錄不會刪除相關聯的連線。若要刪除連線，請使用 AWS CLI `aws glue delete-connection`命令，並確保先刪除所有相關聯的目錄。
+ Polaris 目錄中不支援巢狀命名空間。也就是說，目錄聯合可以存取遵循 3 部分表示法 的遠端Iceberg資料表`catalog.database.table`。

# 聯合到 Databricks Unity Catalog
<a name="catalog-federation-databricks"></a>

AWS Glue Data Catalog Databricks使用Databricks服務主體的 OAuth2 登入資料聯合到 。此身分驗證機制 AWS Glue Data Catalog 允許 根據與服務主體相關聯的權限Databricks Unity Catalog，存取 中各種物件 （例如目錄、資料庫和資料表） 的中繼資料。為了確保存取正確的物件，必須在 中授予服務主體必要的許可Databricks，以讀取這些物件的中繼資料。

接下來，目錄聯合會可讓您探索和查詢 Databricks Unity Catalog 中的Iceberg資料表。若要讀取差異資料表，請使用 確保這些資料表有Iceberg中繼資料可用Uniform。遵循Databricks教學課程和文件，在Databricks工作區中建立服務主體和相關聯的權限。

## 先決條件
<a name="catalog-federation-databricks-prerequisites"></a>

在由 Lake Formation 管理的 Data Catalog 中建立聯合目錄之前，請確定您具有下列許可：

您的 IAM 主體 （使用者或角色） 必須具有下列許可：
+ **Lake Formation 許可** – `lakeformation:RegisterResource`、 `lakeformation:DescribeResource`
+ **AWS Glue 許可** – `glue:CreateConnection`、`glue:CreateCatalog`、`glue:GetConnection`、 `glue:PassConnection`
+ **Secrets Manager 許可** – `secretsmanager:CreateSecret`、 `secretsmanager:GetSecretValue`
+ **IAM 許可** – `iam:CreateRole`、`iam:AttachRolePolicy`、 `iam:PassRole`

您必須是 Lake Formation 資料湖管理員或具有 Data Catalog 的`CREATE_CATALOG`許可

## 建立聯合目錄
<a name="catalog-federation-databricks-create"></a>

### 使用主控台
<a name="catalog-federation-databricks-console"></a>

1. 登入 主控台，並在 https：//[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) 開啟 Lake Formation 主控台。

1. 在右上角頁面區段中選擇偏好的 AWS 區域。

1. 在左側導覽窗格中，選擇型錄。

1. 選擇**建立目錄**以開啟**建立目錄工作流程**。

1. 在**選擇資料來源**步驟中，Databricks從可用的選項中選取 。

1. 在**設定目錄詳細資訊**步驟中，您提供三種資訊：目錄詳細資訊、連線詳細資訊和註冊詳細資訊。

1. 在**目錄詳細資訊**容器中，提供 AWS Glue 聯合目錄的唯一名稱，然後輸入現有Databricks目錄的名稱。

1. 在**連線詳細資訊**容器中，您可以選擇您有權存取的現有連線，或提供組態來建立新的連接器。

1. 新的連線組態包括：
   + 連線名稱 – AWS Glue 連線物件的唯一名稱。
   + 工作區 URL – 現有Databricks工作區的端點 URL。
   + 身分驗證 – 指定 AWS Glue 用來連線至遠端目錄伺服器的身分驗證組態。 同時 AWS Glue 支援 OAuth2 和自訂身分驗證。
   + 權杖 URL – 指定遠端目錄身分提供者的 URL。
   + OAuth2 用戶端 ID – 指定與遠端目錄相關聯之 OAuth2 登入資料的用戶端 ID。
   + 秘密 – 使用 儲存並使用 OAuth2 用戶端秘密， AWS Secrets Manager 或在文字方塊中輸入秘密值。當您在主控台中手動輸入秘密時， 會代表您 AWS Glue 建立秘密。
   + 權杖 URL 範圍 – 指定身分驗證的 OAuth 範圍。

1. 建立 IAM 角色，讓 AWS Glue 和 Lake Formation 服務主體可以分別用來存取遠端Iceberg資料表的 和 Amazon S3 位置中的秘密。在註冊下拉式清單中選取 IAM 角色。如需 IAM 政策詳細資訊，請參閱下列 CLI 章節中的步驟 2 和 3。

1. 選取測試連線，以測試您的連線屬性和 IAM 角色存取是否已正確設定。Databricks 使用 Amazon VPC 連線至 時，無法使用測試連線功能。

1. 選取**下一步**以檢閱您的設定。

1. 在檢閱頁面中選取**建立目錄**。

### 使用 CLI
<a name="catalog-federation-databricks-cli"></a>

1. <a name="databricks-step-1"></a>**建立 AWS Secrets Manager 秘密**

    AWS Glue 連接器支援兩種身分驗證類型：**OAuth2** 和 **Custom**。使用 OAuth2 選項時，請使用 AWS Secrets Manager 來存放Databricks服務主體的用戶端秘密。您稍後會在建立 AWS Glue 連線時使用此秘密。對於自訂身分驗證，請使用 AWS Secrets Manager 來存放和擷取存取權杖。

   在下列範例中，將 `<databricks-secret>`、 `<client_secret>`取代`<region>`為您自己的資訊。

   ```
   aws secretsmanager create-secret \
   --name <databricks-secret> \
   --description "Databricks secret" \
   --secret-string '{
   "USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET": "<client_secret>"
   }' \
   --region <region>
   ```
**注意**  
`USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` 是預留關鍵字， AWS Glue 用來參考秘密中的用戶端秘密值。當您在 Lake Formation 主控台中建立秘密時，也請使用相同的關鍵字。

1. <a name="databricks-step-2"></a>**建立 IAM 角色，讓 AWS Glue 連線物件存取上一個步驟中建立的秘密**

   當您使用 AWS Secrets Manager 存放、擷取和重新整理 OAuth AWS Secrets Manager 秘密字符時， AWS Glue 連線物件需要存取秘密。當您使用 Amazon VPC 端點限制與Databricks工作區的連線時， AWS Glue 連線物件也需要存取才能建立、描述和使用 Amazon VPC 網路介面。

   建立 IAM 政策並將其連接至 IAM 角色。將 AWS Glue 服務主體新增至信任政策。

   在下列範例中，將 `<your-secrets-manager-ARN>`、 `<your-vpc-id>`和 取代`<your-subnet-id1>`為您自己的資訊。  
**Example IAM 政策**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
               "Effect": "Allow",
               "Action": [
                   "secretsmanager:GetSecretValue",
                   "secretsmanager:DescribeSecret",
                   "secretsmanager:PutSecretValue"
               ],
               "Resource": [
                   "<your-secrets-manager-ARN>"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateNetworkInterface",
                   "ec2:DeleteNetworkInterface",
                   "ec2:DescribeNetworkInterfaces"
               ],
               "Resource": "*",
               "Condition": {
                   "ArnEquals": {
                       "ec2:Vpc": "arn:aws:ec2:region:account-id:vpc/<your-vpc-id>",
                       "ec2:Subnet": ["arn:aws:ec2:region:account-id:subnet/<your-subnet-id1>"]
                   }
               }
           }
       ]
   }
   ```  
**Example 信任政策**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Principal": {
               "Service": "glue.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```

1. <a name="databricks-step-3"></a>**建立 IAM 政策，讓 Lake Formation 能夠讀取目錄的 Amazon S3 位置**

   身為 Data Catalog 中聯合目錄的目錄擁有者，您可以使用 Lake Formation 將粗細資料表存取、精細 - 資料欄層級、資料列層級和儲存格層級 - 存取，以及標籤型存取授予資料團隊。Lake Formation 使用 IAM 角色，讓其存取遠端 Iceberg 資料表的基礎 Amazon S3 位置。此存取可讓 Lake Formation 將範圍存取憑證提供給查詢遠端資料表的分析引擎。

   建立 IAM 政策並連接至 IAM 角色。將 Lake Formation 服務主體新增至 IAM 角色信任政策。

   在下列範例中，將 `<your-s3-bucket-N>`和 取代`<your-kms-key>`為您自己的資訊。  
**Example IAM 政策**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::<your-s3-bucket-1>/*",
                   "arn:aws:s3:::<your-s3-bucket-2>/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::<your-s3-bucket-1>",
                   "arn:aws:s3:::<your-s3-bucket-2>"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:Encrypt"
               ],
               "Resource": [
                   "<your-kms-key>"
               ]
           }
       ]
   }
   ```  
**Example 信任政策**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
           "Sid": "",
           "Effect": "Allow",
           "Principal": {
               "Service": "lakeformation.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```
**注意**  
當您使用 Lake Formation 主控台建立聯合目錄時，主控台會使用單一 IAM 角色，並連接兩個政策以完成設定。

1. <a name="databricks-step-4"></a>**建立 AWS Glue 連線物件**

   Data Catalog 支援 connectionType：`DATABRICKSICEBERGRESTCATALOG`用於將 Data Catalog 連線至 Databricks。此 AWS Glue 連接器支援 OAuth2 和自訂身分驗證方法。

   下列範例使用 OAuth2 身分驗證組態來建立 AWS Glue 連線。將 取代`highlighed sections`為您的資訊。

   ```
   aws glue create-connection \
       --connection-input '{
   "Name": "<your-glue-connection-to-databricks-unity-account>",
   "ConnectionType": "DATABRICKSICEBERGRESTCATALOG",
   "ConnectionProperties": {
       "INSTANCE_URL": "<your-databricks-workspace-catalog-URL>",
       "ROLE_ARN": "<your-IAM-role-for-secrets-and-VPC-access>"
   },
   "AuthenticationConfiguration": {
       "AuthenticationType": "OAUTH2",
       "OAuth2Properties": {
           "OAuth2GrantType": "CLIENT_CREDENTIALS",
           "TokenUrl": "<your-internal-or-external-token-server-url>",
           "OAuth2ClientApplication": {
               "UserManagedClientApplicationClientId": "<your-client-id>"
           },
           "TokenUrlParametersMap": {
               "scope": "all-apis"
           }
       },
       "SecretArn": "arn:aws:secretsmanager:<aws-region>:<your-aws-account-id>:secret:<databricks-secret>"
   }
   }'
   ```

1. <a name="databricks-step-5"></a>**將 AWS Glue 連線註冊為 Lake Formation 資源**

   使用 AWS Glue 連線物件 （在步驟 4 中建立） 和 IAM 角色 （在步驟 3 中建立），您現在可以將 AWS Glue 連線物件註冊為 Lake Formation 受管資源。

   將 `<your-glue-connector-arn>`和 取代`<your-IAM-role-ARN-having-LF-access>`為您的資訊。

   ```
   aws lakeformation register-resource \
       --resource-arn <your-glue-connector-arn> \
       --role-arn <your-IAM-role-ARN-having-LF-access> \
       --with-federation \
       --with-privileged-access
   ```

1. <a name="databricks-step-6"></a>**在 Data Catalog 中建立聯合目錄**

   建立 AWS Glue 連線物件並使用 Lake Formation 註冊後，您可以在 Data Catalog 中建立聯合目錄：

   在 提供聯合目錄唯一名稱`<your-federated-catalog-name>`、在 Databricks中參考目錄`"<catalog-name-in-Databricks>`，以及在 上稍早建立的輸入連線名稱`"<your-glue-connection-name>`。

   ```
   aws glue create-catalog \
       --name <your-federated-catalog-name> \
       --catalog-input '{
       "FederatedCatalog": {
           "Identifier": "<catalog-name-in-Databricks>",
           "ConnectionName": "<your-glue-connection-name>"
       },
       "CreateTableDefaultPermissions": [],
       "CreateDatabaseDefaultPermissions": []
   }'
   ```

## 與 整合時的考量事項 Databricks
<a name="databricks-considerations"></a>
+ 當您在 中捨棄資源 （例如資料庫和資料表） 時Databricks，Lake Formation 不會自動撤銷在該聯合資源上授予的許可。若要移除存取許可，您需要使用 Lake Formation 明確撤銷先前在聯合資源上授予的許可。
+ 您可以使用此整合來查詢存放在 Amazon S3 中的 Iceberg 資料表。使用任何其他資料表格式或物件儲存時，您可以將遠端目錄中的中繼資料聯合到 AWS Glue ，並列出其資料庫和資料表，但 之類的查詢操作`SELECT ColumnFoo from TableBar`會在查詢期間失敗，且發生錯誤 ' 無法讀取Apache Iceberg資料表。不支援物件儲存位置。」
+ 您可以重複使用相同的 AWS Glue 連線來建立多個聯合目錄。刪除目錄不會刪除相關聯的連線物件。若要刪除連線物件，請使用 AWS CLI `aws glue delete-connection`命令，並確保先刪除所有相關聯的目錄。