Redshift Spectrum 和 AWS Lake Formation
本主题介绍如何将 Redshift Spectrum 与 Lake Formation 结合使用。Lake Formation 是一项用于共享分析数据的服务。
您可以使用 AWS Lake Formation 对存储在 Amazon S3 中的数据集中定义和实施数据库级、表级和列级访问策略。当您的数据在使用 Lake Formation 启用的 AWS Glue Data Catalog 中注册时,可以使用多个服务对其查询,包括 Redshift Spectrum。
Lake Formation 提供 Data Catalog 的安全性和治理。在 Lake Formation 内,您可以授予和撤消对于 Data Catalog 对象的权限,如数据库、表、列和底层 Amazon S3 存储。
重要
您只能在提供 Lake Formation 的 AWS 区域中将 Redshift Spectrum 与启用了 Lake Formation 的 Data Catalog 结合使用。有关可用区域的列表,请参阅《AWS 一般参考》中的 AWS Lake Formation 端点和限额。
通过将 Redshift Spectrum 与 Lake Formation 结合使用,您可以执行以下操作:
将 Lake Formation 用作集中的位置,您可以在其中授予和撤消对数据湖中所有数据的权限和访问控制策略。Lake Formation 提供权限层次结构来控制对 Data Catalog 中的数据库和表的访问权限。有关更多信息,请参阅《AWS Lake Formation 开发人员指南》中的 Lake Formation 权限概览。
创建外部表并对数据湖中的数据运行查询。在您账户中的用户可以运行查询之前,数据湖账户管理员会向 Lake Formation 注册包含源数据的现有 Amazon S3 路径。管理员还可以创建表并向您的用户授予权限。可以授予针对数据库、表或列的访问权限。管理员可以使用 Lake Formation 中的数据筛选条件,对存储在 Amazon S3 中的敏感数据进行精细的访问控制。有关更多信息,请参阅 使用数据筛选条件实现行级和单元格级安全性。
在 Data Catalog 中注册数据后,每当用户尝试运行查询时,Lake Formation 都会验证该特定委托人对于表的访问权限。Lake Formation 成会将临时凭据发送给 Redshift Spectrum,此时查询运行。
-
使用通过
GetCredentials
或GetClusterCredentials
获得的 IAM 凭证对自动挂载的 AWS Glue Data Catalog 运行 Redshift Spectrum 查询,并按数据库用户(IAMR:username 或 IAM:username)管理 Lake Formation 权限。
当您将 Redshift Spectrum 与为 Lake Formation 启用的 Data Catalog 结合使用时,必须满足以下条件之一:
与集群关联且有权访问 Data Catalog 的 IAM 角色。
为管理对外部资源的访问而配置的联合 IAM 身份。有关更多信息,请参阅使用联合身份管理 Amazon Redshift 对本地资源和 Amazon Redshift 外部表的访问权限。
重要
将 Redshift Spectrum 与为 Lake Formation 启用的 Data Catalog 结合使用时,不能链接 IAM 角色。
要了解有关设置 AWS Lake Formation 与 Redshift Spectrum 结合使用所需步骤的更多信息,请参阅《AWS Lake Formation 开发人员指南》中的教程:从 Lake Formation 中的 JDBC 源创建数据湖。具体而言,请参阅使用 Amazon Redshift Spectrum 查询数据湖中的数据,了解有关与 Redshift Spectrum 集成的详细信息。本主题中使用的数据和 AWS 资源取决于本教程中的先前步骤。
使用数据筛选条件实现行级和单元格级安全性
您可以在 AWS Lake Formation 中定义数据筛选条件,以控制您的 Redshift Spectrum 查询对在数据目录中定义的数据的行级和单元格级访问权限。要设置此行为,请执行以下任务:
使用以下信息在 Lake Formation 中创建数据筛选条件:
一种列规范,其中包含要在查询结果中包括或排除的列的列表。
行筛选表达式,用于指定要包含在查询结果中的行。
有关如何创建数据筛选条件的更多信息,请参阅《AWS Lake Formation 开发人员指南》中的 Lake Formation 中的数据筛选条件。
在 Amazon Redshift 中创建一个外部表,该表引用启用了 Lake Formation 的数据目录中的表。有关如何使用 Redshift Spectrum 查询 Lake Formation 表的详细信息,请参阅《AWS Lake Formation 开发人员指南》中的使用 Amazon Redshift Spectrum 查询数据湖中的数据。
在 Amazon Redshift 中定义表后,您可以查询 Lake Formation 表,并仅访问数据筛选条件允许的行和列。
有关如何在 Lake Formation 中设置行级和单元格级安全性,然后使用 Redshift Spectrum 进行查询的详细指南,请参阅将 Amazon Redshift Spectrum 与在 AWS Lake Formation 中定义的行级和单元格级安全策略结合使用