选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

在亚马逊上启用 Lake Formation EMR

聚焦模式
在亚马逊上启用 Lake Formation EMR - Amazon EMR

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

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

在 Amazon EMR 6.15.0 及更高版本中,当您在访问 G AWS lue 数据目录中数据的EC2集群EMR上在 Amazon 上运行 Spark 作业时,您可以使用 AWS Lake Formation 对基于 Hudi、Iceberg 或 Delta Lake 的表应用表、行、列和单元级别的权限。

在本节中,我们将介绍如何创建安全配置以及如何设置 Lake Formation 以与亚马逊合作EMR。还将介绍如何使用您为 Lake Formation 创建的安全配置启动集群。

步骤 1:为EMR集群设置运行时角色

要为EMR集群使用运行时角色,必须创建安全配置。利用安全配置,您可以在集群中应用一致的安全性、授权和身份验证选项。

  1. 使用以下安全配置创建名为 lf-runtime-roles-sec-cfg.json 的文件。

    { "AuthorizationConfiguration": { "IAMConfiguration": { "EnableApplicationScopedIAMRole": true, "ApplicationScopedIAMRoleConfiguration": { "PropagateSourceIdentity": true } }, "LakeFormationConfiguration": { "AuthorizedSessionTagValue": "Amazon EMR" } }, "EncryptionConfiguration": { "EnableInTransitEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": {<certificate-configuration>} } } }
  2. 接下来,为确保会话标签可以授权 Lake Formation,请将 LakeFormationConfiguration/AuthorizedSessionTagValue 属性设置为 Amazon EMR

  3. 使用以下命令创建 Amazon EMR 安全配置。

    aws emr create-security-configuration \ --name 'iamconfig-with-iam-lf' \ --security-configuration file://lf-runtime-roles-sec-cfg.json

    或者,您可以使用 Amazon EMR 控制台创建带有自定义设置的安全配置。

步骤 2:启动亚马逊集EMR群

现在,您已准备好使用您在上一步中创建的安全配置启动EMR集群。有关安全配置的更多信息,请参阅 使用安全配置来设置 Amazon EMR 集群安全Amazon EMR 步骤的运行时角色

步骤 3a:使用亚马逊运行时角色设置基于 Lake Formation 的表级权限 EMR

如果您不需要在列、行或单元格级别进行精细的访问控制,则可以使用 Glue 数据目录设置表级别的权限。要启用表格级访问权限,请导航到 AWS Lake Formation 控制台,然后从边栏的 “管理” 部分中选择 “应用程序集成设置” 选项。然后,启用以下选项并选择保存

允许外部引擎以完整表访问权限访问 Amazon S3 位置的数据

Lake Formation 外部数据筛选

步骤 3b:使用 Amazon 运行时角色设置基于 Lake Formation 的列、行或单元格级权限 EMR

要使用 Lake Formation 应用表和列级别权限,Lake Formation 的数据湖管理员必须将 Amazon EMR 设置为会话标签配置的值 AuthorizedSessionTagValue。Lake Formation 使用该会话标签来授权调用者并提供对数据湖的访问权限。您可以在 Lake Formation 控制台的 External data filtering(外部数据筛选)部分设置该会话标签。123456789012用你自己的 AWS 账户 身份证替换。

Lake Formation 外部数据筛选

第 4 步:为亚马逊EMR运行时角色 AWS 配置 Glue 和 Lake Formation 授权

要继续使用亚马逊运行时角色设置基于 Lake Formation 的访问控制,您必须为亚马逊EMR运行时角色配置 AWS Glu EMR e 和 Lake Formation 授权。要允许您的IAM运行时角色与 Lake Formation 交互,请向他们授予lakeformation:GetDataAccess和访问权限glue:Get*

Lake For AWS mation 权限控制对 Glue 数据目录资源、Amazon S3 位置以及这些位置的基础数据的访问权限。 IAM权限控制对 Lake Formation 和 AWS Glue APIs 以及资源的访问权限。尽管您可能拥有 Lake Formation 访问数据目录中表的权限 (SELECT),但如果您没有该IAM权限,则操作将失败glue:Get*API。有关 Lake Formation 访问控制的更多信息,请参阅 Lake Formation access control overview(Lake Formation 访问控制概述)。

  1. 创建 emr-runtime-roles-lake-formation-policy.json 文件并输入以下内容。

    { "Version": "2012-10-17", "Statement": { "Sid": "LakeFormationManagedAccess", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:Get*", "glue:Create*", "glue:Update*" ], "Resource": "*" } }
  2. 创建相关IAM策略。

    aws iam create-policy \ --policy-name emr-runtime-roles-lake-formation-policy \ --policy-document file://emr-runtime-roles-lake-formation-policy.json
  3. 要将此策略分配给您的IAM运行时角色,请按照管理 AWS Lake Formation 权限中的步骤操作。

现在您可以使用运行时角色和 Lake Formation 来应用表和列级别权限。您还可以使用源身份来控制操作和监控操作 AWS CloudTrail。有关详细示 end-to-end例,请参阅为 Amazon EMR 步骤介绍运行时角色

有关如何与 Iceberg 和 AWS Glue 数据目录集成以实现多目录层次结构的信息,请参阅在 Glue 数据目录中配置 Spark 以访问多目录层次结构 AWS 。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。