

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

# 註冊第三方查詢引擎
<a name="register-query-engine"></a>

在第三方查詢引擎可以使用應用程式整合 API 操作之前，您需要明確啟用查詢引擎代表您呼叫 API 操作的許可。這在幾個步驟中完成：

1. 您需要指定 AWS 帳戶和 IAM 工作階段標籤，這些標籤需要透過 AWS Lake Formation 主控台、 AWS CLI 或 API/SDK 呼叫應用程式整合 API 操作的許可。

1. 當第三方查詢引擎在您的帳戶中擔任執行角色時，查詢引擎必須連接向代表第三方引擎的 Lake Formation 註冊的工作階段標籤。 Lake Formation使用此標籤來驗證請求是否來自核准的引擎。如需工作階段標籤的詳細資訊，請參閱《IAM 使用者指南》中的[工作階段標籤](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html)。

1. 設定第三方查詢引擎執行角色時，您必須在 IAM 政策中擁有下列最低許可集：

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {"Effect": "Allow",
       "Action": [
         "lakeformation:GetDataAccess",      
         "glue:GetTable",
         "glue:GetTables",
         "glue:GetDatabase",
         "glue:GetDatabases",
         "glue:CreateDatabase",
         "glue:GetUserDefinedFunction",
         "glue:GetUserDefinedFunctions",
         "glue:GetPartition",
         "glue:GetPartitions"
       ],
       "Resource": "*"
     }
   }
   ```

------

1. 在查詢引擎執行角色上設定角色信任政策，以對可連接到此角色的工作階段標籤金鑰值對進行精細存取控制。在下列範例中，此角色只允許`"engine1"`連接工作階段標籤索引鍵`"LakeFormationAuthorizedCaller"`和工作階段標籤值，不允許其他工作階段標籤索引鍵值對。

   ```
   {
       "Sid": "AllowPassSessionTags",
       "Effect": "Allow",
       "Principal": {
           "AWS": "arn:aws:iam::111122223333:role/query-execution-role"
       },
       "Action": "sts:TagSession",
       "Condition": {
       "StringLike": {
           "aws:RequestTag/{{LakeFormationAuthorizedCaller}}": {{"engine1"}}        }
       }
   }
   ```

當 `LakeFormationAuthorizedCaller`呼叫 STS：AssumeRole API 操作來擷取要使用的查詢引擎登入資料時，工作階段標籤必須包含在 [ AssumeRole 請求](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role)中。傳回的臨時登入資料可用於提出Lake Formation應用程式整合 API 請求。

Lake Formation 應用程式整合 API 操作需要呼叫主體做為 IAM 角色。IAM 角色必須包含具有已向 註冊之預定值的工作階段標籤Lake Formation。此標籤允許 Lake Formation 驗證用於呼叫應用程式整合 API 操作的角色是否允許這樣做。