本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
元數據訪問控制
對於資料目錄資源的存取控制,以下討論假設使用 Lake Formation 許可進行精細的存取控制,以及使用 IAM 政策進行粗略的存取控制。
有兩種不同的方法可授與資料目錄資源的 Lake Formation 權限:
-
具名資源存取控制 — 使用此方法,您可以透過指定資料庫或表格名稱來授與特定資料庫或表格的權限。補助金有這種形式:
將權限授與資源上的主參與者 [使用授與選項]。
使用授與選項,您可以允許受權者將權限授與其他主參與者。
-
以標籤為基礎的存取控制 — 使用此方法,您可以將一或多個 LF 標籤指派給資料目錄資料庫、資料表和欄,並將一或多個 LF 標籤的權限授與主體。每個 LF 標籤是一個鍵值對,例如。
department=sales
具有 LF 標籤且符合資料目錄資源上 LF 標籤的主參與者可以存取該資源。對於具有大量資料庫和表格的資料湖,建議使用此方法。它在中詳細說明Lake Formation 標籤型存取控制。
主參與者對資源所擁有的權限是這兩種方法所授與之權限的聯集。
下表摘要說明「資料目錄」資源的可用「Lake Formation」權限。欄標題指出授與權限的資源。
目錄 | 資料庫 | 資料表 |
---|---|---|
CREATE_DATABASE |
CREATE_TABLE |
ALTER |
ALTER |
DROP |
|
DROP |
DESCRIBE |
|
DESCRIBE |
SELECT * |
|
INSERT * |
||
DELETE * |
例如,授與資料庫的CREATE_TABLE
權限。這表示主體可以在該資料庫中建立資料表。
帶有星號 (*) 的權限已授與資料目錄資源,但它們適用於基礎資料。例如,中繼資料表的DROP
權限可讓您從「資料目錄」刪除表格。不過,在相同資料表上授與的DELETE
權限可讓您使用 SQL DELETE
陳述式,在 Amazon S3 中刪除資料表的基礎資料。透過這些權限,您也可以在 Lake Formation 主控台上檢視資料表,並使用 AWS Glue API 擷取有關資料表的資訊。因此、SELECT
INSERT
、和都DELETE
是資料目錄權限和資料存取權限。
授與SELECT
資料表時,您可以新增包含或排除一或多個資料行的篩選器。這允許對中繼資料表資料行進行精細的存取控制,從而限制整合式服務的使用者在執行查詢時可以看到的資料行。僅使用 IAM 政策時,無法使用此功能。
還有一個名為的特殊權限Super
。此Super
權限可讓主體在授與該作業的資料庫或表格上執行每個受支援的 Lake Formation 作業。此權限可與其他 Lake Formation 權限共存。例如,您可以在中繼資料表INSERT
上授Super
與SELECT
、和。主參與者可以在表格上執行所有支援的動作,而當您撤銷時Super
,SELECT
和INSERT
權限仍會保留。
如需每個權限的詳細資訊,請參閱Lake Formation 權限參考。
重要
若要查看由其他使用者建立的「資料目錄」表格,您必須至少獲得一個表格的 Lake Formation 權限。如果您在資料表上獲得至少一個權限,您也可以看到資料表包含的資料庫。
您可以使用 Lake Formation 主控台、API 或 AWS Command Line Interface (AWS CLI) 授與或撤銷資料目錄權限。以下是授與使用者在retail
資料庫中建立資料表之datalake_user1
權限的 AWS CLI 命令範例。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'
以下是粗粒度存取控制 IAM 政策的範例,該政策可透過 Lake Formation 權限補充精細的存取控制。它允許在任何元數據庫或表上的所有操作。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:*Database*", "glue:*Table*", "glue:*Partition*" ], "Resource": "*" } ] }
下一個例子也是粗粒度,但更嚴格。它允許對指定帳戶和區域中「資料目錄」中的所有中繼資料資料庫和表格執行唯讀作業。
{ "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) 中繼資料資料庫中資料表子集的權限。
{ "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許可參考