元数据访问控制 - AWS Lake Formation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

元数据访问控制

对于的访问控制 Data Catalog 资源时,以下讨论会使用 Lake Formation 权限和粗粒度访问控制 IAM 政策。

Lake Formation 权限权限授权包含此表单:

授予 权限主体资源 [附带授予选项]。

使用授予选项,您可以允许受赠人授予其他委托人的权限。

下表总结了可用的 Lake Formation 权限 Data Catalog 资源。列标题指明授予权限的资源。

目录 数据库
CREATE_DATABASE CREATE_TABLE ALTER
ALTER DROP
DROP DESCRIBE
DESCRIBE SELECT*
INSERT*
DELETE*

例如, CREATE_TABLE 对数据库授予权限。这意味着允许主体在该数据库中创建表。

带有星号(*)的权限授予于 Data Catalog 资源,但它们适用于基础数据。例如, DROP 元数据表上的权限使您能够从 Data Catalog. 然而, DELETE 权限允许您在中删除该表的基础数据 Amazon S3,例如,使用SQL DELETE 语句。有了这些权限,您还可以在 Lake Formation consoleandretrieveinformationaboutthetablewiththe AWS Glue API。因此, SELECT, INSERT,和 DELETE 都是 Data Catalog 权限和数据访问权限。

授予 SELECT 在表上,您可以添加包括或排除一个或多个 列。这允许对元数据表列进行细粒度访问控制,从而限制集成服务用户在运行查询时可以看到的列。此功能无法使用 IAM 政策。

此外,还有一个名为的特别许可 Super。的 Super 权限使主体能够执行每个支持的 Lake Formation 对在其上授予的数据库或表执行的操作。此权限可以与其他权限共存 Lake Formation 权限。例如,您可以授予 Super, SELECT,和 INSERT 元数据表上。主体可以在表上执行所有支持的操作,并且当您撤消 Super, SELECTINSERT 权限仍为。

有关每个权限的详细信息,请参阅 Lake Formation 权限参考.

重要

为了能够看到 Data Catalog 表,您必须被授予至少一个 Lake Formation 权限。如果对表授予了至少一个权限,则还可以查看表的包含数据库。

您可以授予或撤销 Data Catalog 权限使用 Lake Formation 控制台、API或 AWS Command Line Interface (人AWS CLI)。以下是 AWS CLI 授予用户的命令 datalake_user1 在中创建表的权限 retail 数据库。

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'

以下是粗粒访问控制的示例 IAM 政策,通过 Lake Formation 权限。它允许任何元数据数据库或表上的所有操作。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:*Database*", "glue:*Table*", "glue:*Partition*" ], "Resource": "*" } ] }

下一个实例也是粗粒的,但有些更严格。它允许对所有元数据数据库和表中的只读操作 Data Catalog 指定的账户和区域。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetTables", "glue:SearchTables", "glue:GetTable", "glue:GetDatabase", "glue:GetDatabases" ], "Resource": "arn:aws:glue:us-east-1:111122223333:*" } ] }

将这些政策与实施 IAM-基于细粒度访问控制。它仅对指定帐户和地区中客户关系管理(CRM)元数据数据库中的表子集授予权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetTables", "glue:SearchTables", "glue:GetTable", "glue:GetDatabase", "glue:GetDatabases" ], "Resource": [ "arn:aws:glue:us-east-1:111122223333:catalog", "arn:aws:glue:us-east-1:111122223333:database/CRM", "arn:aws:glue:us-east-1:111122223333:table/CRM/P*" ] } ] }

有关粗粒度访问控制策略的更多示例,请参阅 Lake Formation 人物和 IAM 权限参考.