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