本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
的已知問題 AWS Lake Formation
檢閱 的這些已知問題 AWS Lake Formation。
主題
篩選資料表中繼資料的限制
AWS Lake Formation 資料欄層級許可可用來限制對資料表中特定資料欄的存取。當使用者使用 主控台或 等 API 擷取資料表的中繼資料時glue:GetTable,資料表物件中的資料欄清單只會包含他們有權存取的欄位。請務必了解此中繼資料篩選的限制。
雖然 Lake Formation 為整合服務提供資料欄許可的中繼資料,但查詢回應中的資料欄實際篩選是整合服務的責任。支援資料欄層級篩選的 Lake Formation 用戶端,包括 Amazon Athena、Amazon Redshift Spectrum 和 Amazon EMR,根據向 Lake Formation 註冊的資料欄許可來篩選資料。使用者將無法讀取他們不應存取的任何資料。目前,AWS GlueETL 不支援資料欄篩選。
注意
EMR 叢集未完全由 管理 AWS。因此,EMR 管理員有責任正確保護叢集,以避免未經授權存取資料。
某些應用程式或格式可能會在Parameters映射中將其他中繼資料存放為資料表屬性,包括資料欄名稱和類型。這些屬性會以未修改的方式傳回,並可由任何具有任何資料欄SELECT許可的任何使用者存取。
例如,Avro SerDe 會將資料表結構描述的 JSON 表示法存放在名為 的資料表屬性中avro.schema.literal,可供有權存取資料表的所有使用者使用。我們建議您避免將敏感資訊存放在資料表屬性中,並請注意,使用者可以了解 Avro 格式資料表的完整結構描述。此限制專屬於資料表的中繼資料。
AWS Lake Formation 如果發起人沒有資料表中所有資料欄的SELECT許可,則在回應 glue:GetTable或類似請求spark.sql.sources.schema時, 會移除以 開頭的任何資料表屬性。這可防止使用者存取使用 Apache Spark 建立之資料表的其他中繼資料。在 Amazon EMR 上執行時,Apache Spark 應用程式仍然可以讀取這些資料表,但可能不會套用某些最佳化,並且不支援區分大小寫的資料欄名稱。如果使用者可存取資料表中的所有資料欄,Lake Formation 會傳回未修改且具有所有資料表屬性的資料表。
重新命名排除資料欄時的問題
如果您使用資料欄層級許可來排除資料欄,然後重新命名資料欄,則資料欄不會再從查詢中排除,例如 SELECT *。
刪除 CSV 資料表中資料欄的問題
如果您使用 CSV 格式建立 Data Catalog 資料表,然後從結構描述中刪除資料欄,則查詢可能會傳回錯誤的資料,而且可能未遵守資料欄層級許可。
解決方法:改為建立新的資料表。
資料表分割區必須新增至通用路徑下
Lake Formation 預期資料表的所有分割區都位於資料表位置欄位中設定的常見路徑下。當您使用爬蟲程式將分割區新增至目錄時,這會順暢運作。但是,如果您手動新增分割區,且這些分割區不在父資料表中設定的位置之下,則資料存取無法運作。
在工作流程建立期間建立資料庫的問題
使用 Lake Formation 主控台從藍圖建立工作流程時,如果目標資料庫不存在,您可以建立目標資料庫。當您這麼做時,登入的使用者會取得所建立資料庫的 CREATE_TABLE 許可。不過,工作流程產生的爬蟲程式會在嘗試建立資料表時擔任工作流程的角色。這會失敗,因為角色沒有資料庫的 CREATE_TABLE許可。
解決方法:如果您在工作流程設定期間透過主控台建立資料庫,則在執行工作流程之前,您必須為與工作流程相關聯的角色提供您剛建立之資料庫的CREATE_TABLE許可。
刪除並重新建立使用者的問題
以下案例導致 傳回錯誤的 Lake Formation 許可lakeformation:ListPermissions:
-
建立使用者並授予 Lake Formation 許可。
-
刪除使用者。
-
使用相同名稱重新建立使用者。
ListPermissions 會傳回兩個項目,一個用於舊使用者,另一個用於新使用者。如果您嘗試撤銷授予舊使用者的許可,則會撤銷新使用者的許可。
Data Catalog API 操作不會更新 IsRegisteredWithLakeFormation 參數的值
Data Catalog API 操作有已知的限制,例如 GetTables和 SearchTables 不會更新 IsRegisteredWithLakeFormation 參數的值,並傳回預設值,這是 false。建議使用 GetTable API 來檢視 IsRegisteredWithLakeFormation 參數的正確值。
Lake Formation 操作不支援 AWS Glue 結構描述登錄檔
Lake Formation 操作不支援在 SchemaReference中包含StorageDescriptor要在結構描述註冊中使用的 的 AWS Glue 資料表。