由于 IAM 权限而无法运行 AWS Glue Crawler

vla*_*man 7 etl amazon-web-services amazon-iam aws-glue

我无法运行新创建的 AWS Glue Crawler。我遵循https://docs.aws.amazon.com/glue/latest/dg/create-an-iam-role.html?icmpid=docs_glue_console上的 IAM 角色指南

  1. AWSGlueServiceRoleDefault使用AWSGlueServiceRoleAmazonS3FullAccess管理策略创建新的爬网程序角色
  2. 信任关系包含:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "glue.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)
  1. 用户通过SSO执行爬虫签名并继承arn:aws:iam::aws:policy/AdministratorAccess
  2. 我什至尝试创建具有所有权限的新 AWS 用户 AWS 权限

执行 Crawler 后,它会在 8 秒内失败,并出现以下错误:

爬虫无法启动。验证附加到爬网程序中定义的 IAM 角色的策略中的权限

还需要哪些其他 IAM 权限?

小智 5

如果您通过 JDBC 连接对外部数据存储进行爬网表和架构,请确保已为 Glue 连接指定网络选项。如果未指定选项,我会得到完全相同的错误。我认为这里的错误消息有些误导。

这是我对爬虫的定义:

  1. 角色,例如附加了 AWSGlueServiceRole 托管策略的 AWSGlueServiceRoleDefault。 在此输入图像描述

  2. 指定连接的网络选项。 在此输入图像描述

  3. 将创建一个 NAT 网关并将其附加到您在步骤 2 中定义的子网,以便您的爬网程序有一个公共 IP 可以连接到外部数据存储。 在此输入图像描述

如果您尝试连接 RDS,由于爬网程序和数据库都位于 AWS 网络中,因此不需要 NAT。只需定义安全组规则即可允许连接。请查看此处的文档。

如果 S3 是目标数据源,建议使用 S3 的 VPC 终端节点。请查看此处的文档。