如何修复 AWS Glue ETL 作业中的 'An error occurred (403) when calling the HeadObject operation: Forbidden'
How to fix 'An error occurred (403) when calling the HeadObject operation: Forbidden' in AWS Glue ETL Job
我正在我的 AWS 仪表板中设置一个简单的 AWS Glue ETL 作业,它将数据从位于 AWS S3 存储桶中的镶木地板文件映射到 Redshift 数据库。如果我将 Redshift JDBC 连接设置为我的 ETL 作业的要求,它将立即失败并显示以下消息:"An error occurred (403) when calling the HeadObject operation: Forbidden" 如果我将其从作业要求中删除,它将在之后面临连接超时一会儿。当我使用相同的 IAM 角色测试连接时,连接没有任何问题。我在这里遗漏了什么吗?
我什至已经尝试将 ALL Ports 入站规则添加到 VPC 的相关安全组。
我已经尝试检查 S3 区域与 Redshift 区域是否相同。 (虽然S3 buckets是属于global的)
我什至还有其他 ETL 作业将数据从 CSV 转换为具有相同 IAM 角色的同一区域的镶木地板,但它们工作得非常好。
我只是希望这项工作能够将我的镶木地板文件数据传输到新的 Redshift table。
看起来 S3 存储桶与部署粘合作业的区域不同
联系AWS支持后,发现是我的VPC Endpoint Policy有问题。因此,我正在回答我自己的问题,以防其他人忘记确保 VPC 端点具有足够的权限来访问 S3 作业存储桶,包括脚本存储桶和临时存储桶。
我正在我的 AWS 仪表板中设置一个简单的 AWS Glue ETL 作业,它将数据从位于 AWS S3 存储桶中的镶木地板文件映射到 Redshift 数据库。如果我将 Redshift JDBC 连接设置为我的 ETL 作业的要求,它将立即失败并显示以下消息:"An error occurred (403) when calling the HeadObject operation: Forbidden" 如果我将其从作业要求中删除,它将在之后面临连接超时一会儿。当我使用相同的 IAM 角色测试连接时,连接没有任何问题。我在这里遗漏了什么吗?
我什至已经尝试将 ALL Ports 入站规则添加到 VPC 的相关安全组。 我已经尝试检查 S3 区域与 Redshift 区域是否相同。 (虽然S3 buckets是属于global的) 我什至还有其他 ETL 作业将数据从 CSV 转换为具有相同 IAM 角色的同一区域的镶木地板,但它们工作得非常好。
我只是希望这项工作能够将我的镶木地板文件数据传输到新的 Redshift table。
看起来 S3 存储桶与部署粘合作业的区域不同
联系AWS支持后,发现是我的VPC Endpoint Policy有问题。因此,我正在回答我自己的问题,以防其他人忘记确保 VPC 端点具有足够的权限来访问 S3 作业存储桶,包括脚本存储桶和临时存储桶。