

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

# 使用 LF-TBAC 方法授予資料湖許可
<a name="granting-catalog-perms-TBAC"></a>

您可以授予委託人 LF 標籤的 `DESCRIBE`和 `ASSOCIATE` Lake Formation 許可，讓他們可以檢視 LF 標籤，並將其指派給 Data Catalog 資源 （資料庫、資料表、檢視和資料欄）。當 LF-Tags 指派給 Data Catalog 資源時，您可以使用 Lake Formation 標籤型存取控制 (LF-TBAC) 方法來保護這些資源。如需詳細資訊，請參閱[Lake Formation 標籤型存取控制](tag-based-access-control.md)。

一開始，只有資料湖管理員可以授予這些許可。如果資料湖管理員使用授予選項授予這些許可，則其他主體可以授予這些許可。`DESCRIBE` 和 `ASSOCIATE`許可會在 中說明[Lake Formation 標籤型存取控制最佳實務和考量事項](lf-tag-considerations.md)。

您可以將 LF 標籤的 `DESCRIBE`和 `ASSOCIATE`許可授予外部 AWS 帳戶。然後，該帳戶中的資料湖管理員可以將這些許可授予帳戶中的其他主體。外部帳戶中資料湖管理員授予`ASSOCIATE`許可的主體接著可以將 LF 標籤指派給您與其帳戶共用的 Data Catalog 資源。

授予外部帳戶時，您必須包含授予選項。

您可以使用 AWS Lake Formation 主控台、 API 或 AWS Command Line Interface () 授予 LF 標籤的許可AWS CLI。

**注意**  
S3 Tables 目錄不需要下列步驟。您可以使用 LF-Tags 授予現有 S3 Tables 目錄的許可，而無需刪除並重新建立它們。

**啟用對使用 Lake Formation 許可的現有聯合目錄的 LF 標籤支援**

如果您現有的聯合目錄使用 Lake Formation 許可，例如 Amazon Redshift 或 LF-Tags 支援之前建立的 Amazon DynamoDB 目錄可用於聯合目錄，請遵循以下步驟。

1. 刪除現有目錄 – 呼叫 `deleteCatalog` API 操作，以移除使用 Lake Formation 許可的現有聯合目錄。

1.  建立新的聯合目錄 – 建立新的目錄，並將新目錄指向現有的命名空間/資料共用。

   使用目錄的新名稱 – 此程序會更新您預先存在的聯合目錄，以支援 LF-Tag 功能。如果您想要使用相同的目錄名稱，請聯絡 AWS 支援團隊尋求協助。

**Topics**
+ [授予 Data Catalog 許可](#granting-cat-perms-TBAC-console)

**另請參閱**  
[管理 LF-Tag 值許可](TBAC-granting-tags.md)
[管理中繼資料存取控制的 LF 標籤](managing-tags.md)
[Lake Formation 標籤型存取控制](tag-based-access-control.md)

## 授予 Data Catalog 許可
<a name="granting-cat-perms-TBAC-console"></a>

使用 Lake Formation 主控台或使用 Lake Formation 標籤型存取控制 AWS CLI (LF-TBAC) 方法來授予資料目錄資料庫、資料表、檢視和資料欄的 Lake Formation 許可。

------
#### [ Console ]

下列步驟說明如何使用 Lake Formation 標籤型存取控制 (LF-TBAC) 方法和 Lake Formation 主控台上的授予**資料湖許可頁面來授予**許可。頁面分為以下部分：
+  **委託人** – AWS 帳戶 要授予許可的使用者、角色和 。
+  **LF 標籤或目錄資源** – 要授予許可的資料庫、資料表或資源連結。
+  **許可** – 要授予的 Lake Formation 許可。

1. 

**開啟授予資料湖許可頁面。**

   開啟位於 https：//[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) 的 AWS Lake Formation 主控台，並以資料湖管理員或已透過 LF-TBAC 授予資料目錄資源 Lake Formation 許可的使用者身分登入。

   在導覽窗格中的**許可**下，選擇**資料湖許可**。然後選擇**授予**。

1. 

**指定委託人。**

    在**委託人**區段中，選擇委託人類型，然後指定要授予許可的委託人。  
![主體區段包含以下文字中命名的四個圖磚。每個圖磚都包含選項按鈕和文字。已選取 IAM Identity Center 圖磚，且使用者和群組下拉式清單位於圖磚下方。](http://docs.aws.amazon.com/zh_tw/lake-formation/latest/dg/images/identity-center-grant-perm.png)  
**IAM 使用者和角色**  
從 **IAM 使用者和角色清單中選擇一或多個使用者或角色**。  
**IAM Identity Center **  
從使用者**和群組清單中選擇一或多個使用者**或 。  
**SAML 使用者和群組**  
對於 **SAML 和快速使用者和群組**，輸入透過 SAML 聯合的使用者或群組的一或多個 Amazon Resource Name (ARNs)，或輸入快速使用者或群組ARNs。在每個 ARN 後按下 Enter 鍵。  
如需如何建構 ARNs 的資訊，請參閱 [Lake Formation 授予和撤銷 AWS CLI 命令](lf-permissions-reference.md#perm-command-format)。  
僅 Quick Enterprise Edition 支援 Lake Formation 與 Quick 整合。  
**外部帳戶**  
對於 **AWS 帳戶、 AWS organization** 或 **IAM 主體**，輸入 IAM 使用者或角色的一或多個有效 AWS 帳戶 IDs、組織 IDs、組織單位 IDs 或 ARN。在每個 ID 之後按 **Enter**。  
組織 ID 包含「o-」，後面接著 10 到 32 個小寫字母或數字。  
組織單位 ID 以「ou-」開頭，後面接著 4 到 32 個小寫字母或數字 （包含 OU 的根 ID)。此字串後面接著第二個「-」破折號和 8 到 32 個額外的小寫字母或數字。

1. 

**指定 LF 標籤。**

   確定已選擇**符合 LF-Tags 的資源**選項。選擇 **LF-Tag 鍵值對**或**已儲存的 LF-Tag 表達**式。

   1. 如果您選擇 **LF-Tag 鍵/值對**選項，請選擇鍵和值。

      如果您選擇多個值，則會使用 `OR`運算子建立 LF-Tag 表達式。這表示如果任何 LF-Tag 值符合指派給 Data Catalog 資源的 LF-Tag，則會授予您對資源的許可。  
![LF 標籤或目錄資源區段包含兩個水平排列的圖磚，其中每個圖磚都包含選項按鈕和描述性文字。這些選項是符合 LF-Tags （建議） 的資源，以及具名資料目錄資源。已選取符合 LF-Tags 的資源。圖磚下方是索引鍵欄位和水平排列的值欄位。金鑰欄位包含「模組」，而值欄位是下拉式清單，其中包含三個項目：訂單、銷售和客戶。每個項目都有相關聯的核取方塊。已選取客戶的核取方塊。這兩個欄位右側的是移除按鈕。在底部是新增 LF 標籤按鈕，表示您可以新增另一列，其中包含索引鍵和值欄位以及移除按鈕。](http://docs.aws.amazon.com/zh_tw/lake-formation/latest/dg/images/grant-data-permissions-tags-2.png)

   1. （選用） 再次選擇**新增 LF 標籤鍵/值對**，以指定另一個 LF 標籤。

      如果您指定多個 LF-Tag，則會使用 `AND`運算子建立 LF-Tag 表達式。只有在為 LF-Tag 表達式中的每個 LF-Tag 指派相符的 LF-Tag 時，才會對 Data Catalog 資源授予主體許可。

   1. 選擇**儲存為新的表達**式選項以重複使用表達式。

      您需要`Create LF-Tag expression`儲存表達式。

      如需 LF-Tag 表達式的詳細資訊，請參閱 [管理中繼資料存取控制的 LF-Tag 表達式](managing-tag-expressions.md)。

1. 

**指定許可。**

   指定您希望授予主體相符 Data Catalog 資源的許可。相符資源是指派的 LF 標籤資源，這些資源符合授予委託人的其中一個 LF 標籤表達式。

   您可以指定在相符資料庫、相符資料表和相符檢視上授予 的許可。  
![顯示頁面的兩個區段。資料庫許可區段包含資料庫許可和可授予許可的核取方塊。在資料庫區段下方，資料表許可區段會顯示資料表許可和可授予許可的核取方塊。](http://docs.aws.amazon.com/zh_tw/lake-formation/latest/dg/images/grant-TBAC-DB-table-permissions.png)

   在**資料庫許可**下，選取要授予相符資料庫上主體的資料庫許可。

   在**資料表許可**下，選取資料表或檢視許可，以授予相符資料表和檢視的委託人。

   您也可以從資料表`Drop`許可中選擇 `Describe`、 `Select`和 許可，以套用至檢視。 ****

1. 選擇 **Grant** (授予)。

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

您可以使用 AWS Command Line Interface (AWS CLI) 和 Lake Formation 標籤型存取控制 (LF-TBAC) 方法來授予資料目錄資料庫、資料表和資料欄的 Lake Formation 許可。

**使用 AWS CLI 和 LF-TBAC 方法授予資料湖許可**
+ 使用 `grant-permissions` 命令。  
**Example**  

  下列範例會將 LF-Tag 表達式 "`module=*`" (LF-Tag 金鑰 的所有值`module`) 授予使用者 `datalake_user1`。該使用者將擁有所有相符資料庫的 `CREATE_TABLE` 許可，這些資料庫已使用索引鍵 指派 LF-Tag`module`，且具有任何值。

  ```
  aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "CREATE_TABLE" --resource '{ "LFTagPolicy": {"CatalogId":"111122223333","ResourceType":"DATABASE","Expression":[{"TagKey":"module","TagValues":["*"]}]}}' 
  ```  
**Example**  

  下一個範例會將 LF-Tag 表達式 "`(level=director) AND (region=west OR region=south)`" 授予使用者 `datalake_user1`。該使用者將擁有 `SELECT`、 和 `DROP`許可`ALTER`，並在相符資料表上具有授予選項 - 已同時指派 `level=director`和 (`region=west` 或 ) 的資料表`region=south`。

  ```
  aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" "ALTER" "DROP" --permissions-with-grant-option "SELECT" "ALTER" "DROP" --resource '{ "LFTagPolicy": {"CatalogId":"111122223333","ResourceType":"TABLE","Expression": [{"TagKey": "level","TagValues": ["director"]},{"TagKey": "region","TagValues": ["west", "south"]}]}}'
  ```  
**Example**  

  下一個範例會將 LF-Tag 表達式 "`module=orders`" 授予 AWS 帳戶 1234-5678-9012。然後，該帳戶中的資料湖管理員可以將「`module=orders`」表達式授予其帳戶中的主體。然後，這些委託人將有權使用具名資源方法或 LF-TBAC 方法，`CREATE_TABLE`比對帳戶 1111-2222-3333 擁有並與帳戶 1234-5678-9012 共用的資料庫。

  ```
  aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=123456789012 --permissions "CREATE_TABLE" --permissions-with-grant-option "CREATE_TABLE" --resource '{ "LFTagPolicy": {"CatalogId":"111122223333","ResourceType":"DATABASE","Expression":[{"TagKey":"module","TagValues":["orders"]}]}}'
  ```

------