【问题标题】:How to fix 'An error occurred (403) when calling the HeadObject operation: Forbidden' in AWS Glue ETL Job如何在 AWS Glue ETL 作业中修复“调用 HeadObject 操作时发生错误 (403):禁止访问”
【发布时间】:2019-05-23 17:40:39
【问题描述】:

我正在我的 AWS 仪表板中设置一个简单的 AWS Glue ETL 作业,该作业将位于 AWS S3 存储桶中的 parquet 文件中的数据映射到 Redshift 数据库。如果我将 Redshift JDBC 连接设置为我的 ETL 作业的要求,它将立即失败并显示以下消息:“调用 HeadObject 操作时发生错误 (403):禁止”,如果我将其从作业要求中删除,它会在一段时间后面临连接超时。当我使用相同的 IAM 角色测试我的连接时,它可以毫无问题地连接。我在这里有什么遗漏吗?

我已经尝试将 ALL Ports 入站规则添加到 VPC 的相关安全组。 我已经尝试检查 S3 区域与 Redshift 区域是否相同。 (虽然 S3 存储桶属于全局) 我什至有其他 ETL 作业在具有相同 IAM 角色的同一区域将数据从 CSV 转换为镶木地板,但它们工作得非常好。

我只是希望这项工作能够将我的 parquet 文件数据传输到一个新的 Redshift 表中。

【问题讨论】:

    标签: amazon-web-services jdbc amazon-redshift etl aws-glue


    【解决方案1】:

    联系 AWS 支持后,发现我的 VPC 终端节点策略存在问题。所以,我正在回答我自己的问题,以防其他人忘记确保 VPC 端点有足够的权限来访问 S3 作业存储桶,包括脚本存储桶和临时存储桶。

    【讨论】:

    • 你在哪里改变它?我有一个手动创建的胶水作业,没有这样的设置。
    • @hey_you 您可以在为粘合作业选择的 IAM 角色中更改它。转到 AWS 控制台 > IAM > 角色,选择您需要的角色,单击“附加策略”并附加 AmazonS3FullAccess 策略(或任何合适的策略)
    【解决方案2】:

    看起来 S3 存储桶与部署胶水作业的区域不同

    【讨论】:

    • 您好 Sandeep,感谢您的回答。但是,正如我在描述中提到的,它们都在同一个区域,us-east-2
    • 哎呀,我后来看到了你的回复。是的,VPC 端点可能有问题。
    猜你喜欢
    • 1970-01-01
    • 2019-03-01
    • 2022-01-08
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 2021-02-13
    • 2020-06-07
    相关资源
    最近更新 更多