生成列统计数据的先决条件
要生成或更新列统计数据,统计数据生成任务将代表您代入一个 Amazon Identity and Access Management(IAM)角色。根据向该角色授予的权限,列统计数据生成任务可以读取 Amazon S3 数据存储中的数据。
配置列统计数据生成任务时,Amazon Glue 允许您创建包含 AWSGlueServiceRole
Amazon 托管式策略以及指定数据源所需内联策略的角色。
如果您指定一个现有角色用于生成列统计数据,请确保它包含 AWSGlueServiceRole
策略或等效策略(或此策略的范围缩小版本),以及所需的内联策略。请按照下面的步骤创建新的 IAM 角色:
注意
要为由 Lake Formation 管理的表生成统计数据,用于生成统计数据的 IAM 角色需要具有完全的表访问权限。
配置列统计数据生成任务时,Amazon Glue 允许您创建包含 AWSGlueServiceRole
Amazon 托管式策略以及指定数据源所需内联策略的角色。您也可以创建一个角色并附加以下策略中列出的权限,然后将该角色添加到列统计数据生成任务。
创建 IAM 角色以生成列统计数据
-
要创建 IAM 角色,请参阅 为 Amazon Glue 创建 IAM 角色。
-
要更新现有的角色,进入 IAM 控制台后,请转到生成列统计数据进程正在使用的 IAM 角色。
-
在添加权限选项卡中,选择附加策略。在新打开的浏览器窗口中,选择
AWSGlueServiceRole
Amazon 托管式策略。 -
您还需要包含从 Amazon S3 数据位置读取数据所需的权限。
在添加权限部分中,选择创建策略。在新打开的浏览器窗口中,创建将用于您的角色的新策略。
-
在创建策略页面中,选择 JSON 选项卡。将以下
JSON
代码复制到策略编辑器字段中。注意
请将以下策略中的 account ID 替换为有效的 Amazon Web Services 账户,将
region
替换为表所在的区域,并将bucket-name
替换为 Amazon S3 存储桶的名称。 (可选)如果您使用 Lake Formation 权限来提供对数据的访问权限,则该 IAM 角色需要具有
lakeformation:GetDataAccess
权限。如果该 Amazon S3 数据位置已注册到 Lake Formation,并且列统计数据生成任务所代入的 IAM 角色不具有对表的
IAM_ALLOWED_PRINCIPALS
组权限,则该角色需要具有对该表的 Lake FormationALTER
和DESCRIBE
权限。用于注册 Amazon S3 存储桶的角色需要具有对该表的 Lake FormationINSERT
和DELETE
权限。如果该 Amazon S3 数据位置尚未注册到 Lake Formation,并且该 IAM 角色不具有对表的
IAM_ALLOWED_PRINCIPALS
组权限,则该角色需要具有对该表的 Lake FormationALTER
、DESCRIBE
、INSERT
和DELETE
权限。-
如果您已启用目录级别
Automatic statistics generation
选项,则 IAM 角色必须对默认 Data Catalog 具有glue:UpdateCatalog
权限或 Lake FormationALTER CATALOG
权限。您可以使用GetCatalog
操作来验证目录属性。 -
(可选)对于写入加密 Amazon CloudWatch Logs 的列统计数据生成任务,密钥政策中需要包含以下权限。
-
用于运行列统计信息的角色必须拥有该角色的
iam:PassRole
权限。 -
在您创建 IAM 角色以生成列统计数据时,该角色还必须具有以下的信任策略,以确保服务能够代入该角色。