本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Lake Formation 標籤型存取控制最佳實務和考量事項
您可以建立、維護和指派 LF 標籤,以控制對 Data Catalog 資料庫、資料表和資料欄的存取。
使用 Lake Formation 標籤型存取控制時,請考慮下列最佳實務:
-
所有 LF 標籤都必須預先定義,才能指派給 Data Catalog 資源或授予主體。
資料湖管理員可以透過建立具有所需IAM許可的 LF-Tag 建立器來委派標籤管理任務。資料工程師和分析師決定 LF 標籤的特性和關係。然後,LF-Tag 建立器會在 Lake Formation 中建立和維護 LF-Tag。
-
您可以將多個 LF 標籤指派給 Data Catalog 資源。只有一個特定金鑰的值可以指派給特定資源。
例如,您可以將
module=Orders
、division=Consumer
、region=West
等指派給資料庫、資料表或資料欄。您無法指派module=Orders,Customers
。 -
您無法在建立資源時將 LF 標籤指派給資源。您只能將 LF 標籤新增至現有資源。
-
您可以將 LF-Tag 表達式授予委託人,而不只是單一 LF-Tag。
LF-Tag 表達式看起來類似以下內容 (以虛擬程式碼表示)。
module=sales AND division=(consumer OR commercial)
授予此 LF-Tag 表達式的主體只能存取指派
module=sales
和division=consumer
或 的資料目錄資源 (資料庫、資料表和資料欄)division=commercial
。如果您希望委託人能夠存取具有module=sales
或 的資源division=commercial
,請勿同時將兩者包含在相同的授予中。進行兩次授予,一次用於module=sales
,一次用於division=commercial
。最簡單的 LF-Tag 表達式僅包含一個 LF-Tag,例如
module=sales
。 -
在具有多個值的 LF-Tag 上授予許可的主體可以使用其中一個值存取 Data Catalog 資源。例如,如果授予使用者 LF-Tag,且 key=
module
和 value=orders,customers
,則使用者可以存取指派給module=orders
或 的資源module=customers
。 -
您需要具有
Grant with LF-Tag expressions
許可,才能使用 LF-TBAC 方法授予 Data Catalog 資源的資料許可。資料湖管理員和 LF-Tag 建立器會隱含地接收此許可。具有Grant with LFTag expressions
許可的主體可以使用下列方式授予資源的資料許可:-
具名資源方法
-
LF-TBAC 方法,但只使用相同的 LF-Tag 表達式
例如,假設資料湖管理員進行下列授予 (以虛擬程式碼表示)。
GRANT (SELECT ON TABLES) ON TAGS module=customers, region=west,south TO user1 WITH GRANT OPTION
在此情況下,
user1
可以使用 LF-TBAC 方法將資料表SELECT
上的 授予其他主體,但只能使用完整的 LF-Tag 表達式module=customers, region=west,south
。
-
-
如果授予主體同時具有 LF-TBAC 方法和具名資源方法的資源許可,主體在資源上擁有的許可是兩種方法授予許可的聯合。
-
Lake Formation 支援跨帳戶授予
DESCRIBE
和ASSOCIATE
LF 標籤,以及使用 LF-TBAC 方法跨帳戶授予 Data Catalog 資源的許可。在這兩種情況下,主體都是 AWS 帳戶 ID。注意
Lake Formation 支援使用 LF TBAC方法對組織和組織單位進行跨帳戶授予。若要使用此功能,您需要將跨帳戶版本設定更新為第 3 版。
如需詳細資訊,請參閱Lake Formation 中的跨帳戶資料共用。
-
在一個帳戶中建立的資料型錄資源只能使用相同帳戶中建立的 LF 標籤進行標記。在一個帳戶中建立的 LF 標籤無法與來自另一個帳戶的共用資源建立關聯。
-
使用 Lake Formation 標籤型存取控制 (LF-TBAC) 來授予 Data Catalog 資源的跨帳戶存取權,需要為 AWS 您的帳戶新增 Data Catalog 資源政策。如需詳細資訊,請參閱必要條件。
-
LF-Tag 金鑰和 LF-Tag 值的長度不能超過 50 個字元。
-
可指派給 Data Catalog 資源的 LF 標籤數目上限為 50。
-
下列限制為軟限制:
-
可以建立的 LF 標籤數目上限為 1000。
-
可以為 LF-Tag 定義的值數目上限為 1000。
-
-
標籤索引鍵和值會在儲存時轉換為所有小寫。
-
只有一個 LF-Tag 的值可以指派給特定資源。
-
如果將多個 LF-Tag 授予單一授予的主體,主體只能存取具有所有 LF-Tag 的資料目錄資源。
-
AWS Glue ETL 任務需要完整資料表存取。如果 AWS Glue ETL角色無法存取資料表中的所有資料欄,則任務會失敗。可以在資料欄層級套用 LF 標籤,但可能會導致 AWS Glue ETL角色失去完整資料表存取權,並使任務失敗。
-
如果 LF-Tag 表達式評估僅導致存取資料表資料欄的子集,但當相符時授予的 Lake Formation 許可是需要完整資料欄存取的許可之一,即
Alter
、Insert
、Drop
或Delete
,則不會授予任何這些許可。相反地,只授予Describe
。如果授予的許可為All
(Super
),則僅授予Describe
Select
和 。 -
萬用字元不會與 LF 標籤搭配使用。若要將 LF-Tag 指派給資料表的所有資料欄,您可以將 LF-Tag 指派給資料表,而資料表中的所有資料欄都會繼承 LF-Tag。若要將 LF-Tag 指派給資料庫中的所有資料表,您可以將 LF-Tag 指派給資料庫,並將資料庫中的所有資料表繼承該 LF-Tag。