注意事项和限制
将 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 Formation 作业关闭DynamicResourceAllocation。由于 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 阻止可能破坏系统驱动程序完全隔离的功能,包括:
UDT、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 的集群访问。
数据管理员免责声明
注意
当您向 EMR on EKS 的 IAM 角色授予对 Lake Formation 资源的访问权限时,必须确保 EMR 集群管理员或操作员是受信任的管理员。这对于在多个组织和 AWS 账户之间共享的 Lake Formation 资源尤其重要。
EKS 管理员的职责
System命名空间应受到保护。不允许任何用户、资源、实体或工具对System命名空间中的 Kubernetes 资源拥有任何 Kubernetes RBAC 权限。除了 EMR on EKS 服务之外,任何用户、资源或实体都不应该对
User命名空间中的 POD、CONFIG_MAP 和 SECRET 具有CREATE权限。System驱动程序和System执行程序包含敏感数据。因此,不应将System命名空间中的 Spark 事件、Spark 驱动程序日志和 Spark 执行程序日志转发到外部日志存储系统。