

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# EKS 上的亚马逊 EMR 如何与 Lake Formation 配合使用 AWS
<a name="security_iam_fgac-lf-works"></a>

将 Amazon EMR on EKS 与 Lake Formation 结合使用，您可以对每个 Spark 作业强制执行一层权限，以便在 Amazon EMR on EKS 执行作业时应用 Lake Formation 权限控制。Amazon EMR on EKS 使用 [Spark 资源配置文件](https://spark.apache.org/docs/latest/api/java/org/apache/spark/resource/ResourceProfile.html)创建两个配置文件来有效执行作业。用户配置文件执行用户提供的代码，而系统配置文件强制执行 Lake Formation 策略。每个启用 Lake Formation 的作业都使用两个 Spark 驱动程序，一个用于用户配置文件，一个用于系统配置文件。有关更多信息，请参阅[什么是AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html)。

以下是 Amazon EMR on EKS 如何访问受 Lake Formation 安全策略保护的数据的高级概览。

![\[通过 Lake Formation 设置作业安全性\]](http://docs.aws.amazon.com/zh_cn/emr/latest/EMR-on-EKS-DevelopmentGuide/images/fgac_diagram_eks_spark.png)


以下步骤介绍了此过程：

1. 用户在 EKS 虚拟集群上向支持 AWS Lake Formation 的 Amazon EMR 提交 Spark Job。

1. Amazon EMR on EKS 服务设置用户驱动程序并在用户配置文件中运行作业。用户驱动程序运行精简版 Spark，该版本无法启动任务、请求执行程序或者访问 Amazon S3 或 Glue Data Catalog。它仅构建作业计划。

1. Amazon EMR on EKS 服务设置第二个驱动程序（称为系统驱动程序），并在系统配置文件中运行它（使用特权身份）。Amazon EKS 在两个驱动程序之间设置加密的 TLS 通道来进行通信。用户驱动程序使用该通道将作业计划发送到系统驱动程序。系统驱动程序不会运行用户提交的代码。它运行完整的 Spark，并与 Amazon S3 和 Data Catalog 进行通信以访问数据。它请求执行程序并将作业计划编译成一系列执行阶段。

1. 然后，Amazon EMR on EKS 服务在执行程序上运行这些阶段。任何阶段的用户代码都只能在用户配置文件执行程序上运行。

1. 从受 Lake Formation 保护的 Data Catalog 表读取数据的阶段或者应用安全筛选条件的阶段委派给系统执行程序。