

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

# 中繼資料存取控制
<a name="access-control-metadata"></a>

針對 Data Catalog 資源的存取控制，下列討論會採用具有 Lake Formation 許可的精細存取控制，以及具有 IAM 政策的粗略精細存取控制。

有兩種不同的方法來授予 Data Catalog 資源的 Lake Formation 許可：
+ **具名資源存取控制** – 使用此方法，您可以透過指定資料庫或資料表名稱來授予特定資料庫或資料表的許可。授予具有此表單：

  將*許可*授予*資源* 【使用授予選項】 上的*主體*。

  使用授予選項，您可以允許承授者將許可授予其他委託人。
+ **標籤型存取控制** – 使用此方法，您可以將一或多個 LF 標籤指派給 Data Catalog 資料庫、資料表和資料欄，並將一或多個 LF 標籤的許可授予委託人。每個 LF-Tag 都是鍵/值對，例如 `department=sales`。擁有符合 Data Catalog 資源上 LF 標籤的 LF 標籤的委託人可以存取該資源。對於具有大量資料庫和資料表的資料湖，建議使用此方法。詳細解釋於 [Lake Formation 標籤型存取控制](tag-based-access-control.md)。

委託人在資源上擁有的許可是這兩種方法所授予許可的聯集。

下表摘要說明 Data Catalog 資源上可用的 Lake Formation 許可。欄標題表示授予許可的資源。


| 目錄 | 資料庫 | 資料表 | 
| --- | --- | --- | 
| CREATE\$1DATABASE | CREATE\$1TABLE | ALTER | 
|  | ALTER | DROP | 
|  | DROP | DESCRIBE | 
|  | DESCRIBE | SELECT\$1 | 
|  |  | INSERT\$1 | 
|  |  | DELETE\$1 | 

例如，在資料庫上授予 `CREATE_TABLE`許可。這表示允許主體在該資料庫中建立資料表。

Data Catalog 資源上會授予具有星號 (\$1) 的許可，但它們適用於基礎資料。例如，中繼資料資料表的 `DROP`許可可讓您從資料目錄中捨棄資料表。不過，相同資料表上授予的`DELETE`許可可讓您使用 SQL `DELETE`陳述式等方式刪除 Amazon S3 中資料表的基礎資料。使用這些許可，您也可以在 Lake Formation 主控台上檢視資料表，並使用 AWS Glue API 擷取資料表的相關資訊。因此，`SELECT`、 `INSERT`和 `DELETE`都是 Data Catalog 許可和資料存取許可。

在資料表`SELECT`上授予 時，您可以新增包含或排除一或多個資料欄的篩選條件。這允許對中繼資料表資料欄進行精細存取控制，限制整合服務的使用者在執行查詢時可以看到的資料欄。此功能不能僅使用 IAM 政策。

還有一個名為 的特殊許可`Super`。`Super` 許可可讓委託人在授予其資料庫或資料表上執行每個支援的 Lake Formation 操作。此許可可以與其他 Lake Formation 許可共存。例如，您可以在中繼資料資料表`INSERT`上授予 `SELECT`、 `Super`和 。委託人可以在資料表上執行所有支援的動作，當您撤銷 時`Super`， `SELECT`和 `INSERT`許可仍會保留。

如需每個許可的詳細資訊，請參閱 [Lake Formation 許可參考](lf-permissions-reference.md)。

**重要**  
若要能夠查看另一個使用者建立的資料目錄資料表，您必須在資料表上授予至少一個 Lake Formation 許可。如果資料表上授予您至少一個許可，您也可以查看資料表的包含資料庫。

您可以使用 Lake Formation 主控台、 API 或 AWS Command Line Interface () 授予或撤銷 Data Catalog 許可AWS CLI。以下是 AWS CLI 命令的範例，可授予使用者在`retail`資料庫中建立資料表的`datalake_user1`許可。

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 
 --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'
```

以下是粗粒存取控制 IAM 政策的範例，該政策使用 Lake Formation 許可來補充精細存取控制。它允許對任何中繼資料資料庫或資料表進行所有操作。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:*Database*",
                "glue:*Table*",
                "glue:*Partition*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

下一個範例也是粗略粒度，但略有限制。它允許對指定帳戶和區域中 Data Catalog 中的所有中繼資料資料庫和資料表進行唯讀操作。

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

****  

```
{  
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:GetTables",
                "glue:SearchTables",
                "glue:GetTable",
                "glue:GetDatabase", 
                "glue:GetDatabases"
            ],
            "Resource": "arn:aws:glue:us-east-1:111122223333:*"
        } 
    ]   
}
```

------

將這些政策與下列政策進行比較，該政策實作以 IAM 為基礎的精細存取控制。它僅在指定帳戶和區域中的客戶關係管理 (CRM) 中繼資料資料庫中的資料表子集上授予許可。

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

****  

```
{  
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:GetTables",
                "glue:SearchTables",
                "glue:GetTable",
                "glue:GetDatabase", 
                "glue:GetDatabases"
            ],
            "Resource": [
                "arn:aws:glue:us-east-1:111122223333:catalog",
                "arn:aws:glue:us-east-1:111122223333:database/CRM",
                "arn:aws:glue:us-east-1:111122223333:table/CRM/P*"
            ]
        } 
    ]   
}
```

------

如需粗略存取控制政策的更多範例，請參閱 [Lake Formation 角色和 IAM 許可參考](permissions-reference.md)。