

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

# 設定混合存取模式的先決條件
<a name="hybrid-access-prerequisites"></a>

以下是設定混合存取模式的先決條件：

**注意**  
 我們建議 Lake Formation 管理員以混合存取模式註冊 Amazon S3 位置，並選擇加入主體和資源。

1. 授予資料位置許可 (`DATA_LOCATION_ACCESS`)，以建立指向 Amazon S3 位置的 Data Catalog 資源。資料位置許可控制建立指向特定 Amazon S3 位置之 Data Catalog 目錄、資料庫和資料表的能力。

1. 若要在混合存取模式中與其他帳戶共用 Data Catalog 資源 （而不從資源中移除`IAMAllowedPrincipals`群組許可），您需要將**跨帳戶版本設定**更新為第 4 版或更高版本。若要使用 Lake Formation 主控台更新版本，請在**資料目錄設定**頁面的跨帳戶版本設定下選擇**第 4** 版或**第 5** 版。 ****

   您也可以使用 `put-data-lake-settings` AWS CLI 命令將 `CROSS_ACCOUNT_VERSION` 參數設定為第 4 版或第 5 版：

   ```
   aws lakeformation put-data-lake-settings --region us-east-1 --data-lake-settings file://settings
   {
   "DataLakeAdmins": [
           {
   "DataLakePrincipalIdentifier": "arn:aws:iam::{{<111122223333>}}:user/{{<user-name>}}"
           }
       ],
       "CreateDatabaseDefaultPermissions": [],
       "CreateTableDefaultPermissions": [],
       "Parameters": {
   "CROSS_ACCOUNT_VERSION": "5"
       }
   }
   ```

1.  若要在混合存取模式中授予跨帳戶許可，授予者必須擁有 AWS Glue 和 AWS RAM 服務所需的 IAM 許可。 AWS 受管政策會`AWSLakeFormationCrossAccountManager`授予必要的許可。  為了在混合存取模式中啟用跨帳戶資料共用，我們新增了兩個新的 IAM 許可來更新 `AWSLakeFormationCrossAccountManager`受管政策：
   + ram:ListResourceSharePermissions
   + ram:AssociateResourceSharePermission
**注意**  
如果您不是使用授予者角色的 AWS 受管政策，請將上述政策新增至您的自訂政策。

## Amazon S3 儲存貯體位置和使用者存取
<a name="w2aac11c34c21c15b9"></a>

當您在 中建立目錄、資料庫或資料表時 AWS Glue Data Catalog，您可以指定基礎資料的 Amazon S3 儲存貯體位置，並將其註冊至 Lake Formation。下表說明根據資料表或資料庫的 Amazon S3 資料位置，許可如何適用於 AWS Glue 和 Lake Formation 使用者 （委託人）。


**向 Lake Formation 註冊的 Amazon S3 位置**  

| 資料庫的 Amazon S3 位置 | AWS Glue 使用者 | Lake Formation 使用者 | 
| --- | --- | --- | 
| 向 Lake Formation 註冊 （混合存取模式或 Lake Formation 模式） | 透過繼承 IAMAllowedPrincipals 群組 （超級存取） 許可，擁有 Amazon S3 資料位置的讀取/寫入存取權。 | 繼承從其授予的 CREATE TABLE 許可建立資料表的許可。 | 
| 沒有相關聯的 Amazon S3 位置 | 需要明確的 DATA LOCATION 許可才能執行 CREATE TABLE 和 INSERT TABLE 陳述式。 | 需要明確的 DATA LOCATION 許可才能執行 CREATE TABLE 和 INSERT TABLE 陳述式。 | 

****IsRegisteredWithLakeFormation** 資料表屬性**  
資料表的 `IsRegisteredWithLakeFormation` 屬性指出資料表的資料位置是否已向請求者的 Lake Formation 註冊。如果位置的許可模式已註冊為 Lake Formation，則 `IsRegisteredWithLakeFormation` 屬性`true`適用於存取資料位置的所有使用者，因為所有使用者都被視為已選擇加入該資料表。如果位置是在混合存取模式中註冊，則 值`true`只會針對已選擇加入該資料表的使用者設為 。


**`IsRegisteredWithLakeFormation` 的運作方式**  

| 許可模式 | 使用者/角色 |  `IsRegisteredWithLakeFormation`  | 說明 | 
| --- | --- | --- | --- | 
| Lake Formation | 全部 | True | 向 Lake Formation 註冊位置時，所有使用者的 `IsRegisteredWithLakeFormation` 屬性都會設為 true。這表示 Lake Formation 中定義的許可適用於註冊的位置。登入資料販賣將由 Lake Formation 完成。 | 
| 混合存取模式 | 選擇加入 | True | 對於選擇使用 Lake Formation 進行資料表資料存取和管理的使用者，該資料表`true`的 `IsRegisteredWithLakeFormation` 屬性將設定為 。它們受註冊位置 Lake Formation 中定義的許可政策約束。 | 
| 混合存取模式 | 未選擇加入 | False | 對於尚未選擇使用 Lake Formation 許可的使用者， `IsRegisteredWithLakeFormation` 屬性會設定為 `false`。它們不受 Lake Formation 中為註冊位置定義的許可政策約束。反之，使用者將遵循 Amazon S3 許可政策。 | 