本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
考量與限制
將 Lake Formation 與 Amazon EMR on EKS 搭配使用時,請注意下列考量和限制:
Amazon EMR on EKS 僅支援透過 Lake Formation 的精細存取控制,適用於 Apache Hive、Apache Iceberg、Apache Hudi 和 Delta 資料表格式。Apache Hive 格式包括 Parquet、ORC 和 xSV。
DynamicResourceAllocation
預設為啟用,您無法關閉 Lake FormationDynamicResourceAllocation
任務。由於 DRAspark.dynamicAllocation.maxExecutors
組態的預設值為無限,請根據您的工作負載設定適當的值。啟用 Lake Formation 的任務不支援在系統驅動程式和系統執行器中使用自訂的 EMR on EKS 映像。
您只能將 Lake Formation 與 Spark 任務搭配使用。
使用 Lake Formation 的 EMR on EKS 僅支援整個任務的單一 Spark 工作階段。
使用 Lake Formation 的 EMR on EKS 僅支援透過資源連結共用的跨帳戶資料表查詢。
不支援下列項目:
彈性分散式資料集 (RDD)
Spark 串流
使用 Lake Formation 授予的許可寫入
巢狀資料欄的存取控制
EMR on EKS 會封鎖可能會破壞系統驅動程式完整隔離的功能,包括下列項目:
UDTs、HiveUDFs和任何涉及自訂類別的使用者定義函數
自訂資料來源
為 Spark 延伸模組、連接器或中繼存放區
ANALYZE TABLE
命令提供額外的 jar
為了強制執行存取控制,
EXPLAIN PLAN
以及 DDL 操作,例如DESCRIBE TABLE
不會公開限制資訊。Amazon EMR on EKS 限制對已啟用 Lake Formation 任務之系統驅動程式 Spark 日誌的存取。由於系統驅動程式執行時具有更多存取權,因此系統驅動程式產生的事件和日誌可能包含敏感資訊。為了防止未經授權的使用者或程式碼存取此敏感資料,EMR on EKS 已停用對系統驅動程式日誌的存取。如需故障診斷,請聯絡 AWS 支援。
如果您已向 Lake Formation 註冊資料表位置,無論 EMR on EKS 任務執行角色的 IAM 許可為何,資料存取路徑都會經過 Lake Formation 儲存的登入資料。如果您錯誤設定已向資料表位置註冊的角色,提交的任務若使用具有資料表位置的 S3 IAM 許可的角色,將會失敗。
寫入 Lake Formation 資料表會使用 IAM 許可,而不是 Lake Formation 授予的許可。如果您的任務執行角色具有必要的 S3 許可,您可以使用它來執行寫入操作。
以下是使用 Apache Iceberg 時的考量和限制:
您只能搭配工作階段目錄使用 Apache Iceberg,不能任意命名目錄。
在 Lake Formation 中註冊的 Iceberg 資料表僅支援中繼資料表
history
、metadata_log_entries
、snapshots
、files
、manifests
和refs
。Amazon EMR 會隱藏可能具有敏感資料的資料欄,例如partitions
、path
和summaries
。此限制不適用於未在 Lake Formation 中註冊的 Iceberg 資料表。未在 Lake Formation 中註冊的資料表支援所有 Iceberg 預存程序。任何資料表都不支援
register_table
和migrate
程序。我們建議您使用 Iceberg DataFrameWriterV2 而非 V1。
如需詳細資訊,請參閱了解 Amazon EMR on EKS 概念和術語,以及啟用 Amazon EMR on EKS 的叢集存取。
資料管理員的免責聲明
注意
當您將 Lake Formation 資源的存取權授予 EMR on EKS 的 IAM 角色時,您必須確保 EMR 叢集管理員或運算子是信任的管理員。這與跨多個組織和 AWS 帳戶共用的 Lake Formation 資源特別相關。
EKS 管理員的責任
System
命名空間應受到保護。不允許使用者、資源或實體或工具對System
命名空間中的 Kubernetes 資源擁有任何 Kubernetes RBAC 許可。除了 EMR on EKS 服務之外,任何使用者、資源或實體都無權
CREATE
存取User
命名空間中的 POD、CONFIG_MAP 和 SECRET。System
驅動程式和System
執行程式包含敏感資料。因此,命名System
空間中的 Spark 事件、Spark 驅動程式日誌和 Spark 執行器日誌不應轉送至外部日誌儲存系統。