通常出现此问题原因是 S3 存储桶的缺乏或者是 IAM 角色的权限受限。需要检查以下几点是否正确设置:
检查 S3 存储桶是否存在并且名称正确。可以在 Glue 控制台中进行配置。
检查存储桶中的文件对象是否可访问。有可能是因为一些访问限制导致存储桶内文件不能正确访问。
确认 IAM 角色的权限正确。可以在 IAM 控制台中针对该角色进行权限设置和配置。例如:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
]
},
{
"Effect": "Allow",
"Action": [
"glue:GetDatabase",
"glue:GetConnections",
"glue:GetPartitions",
"glue:GetTables",
"glue:GetTableVersions",
"glue:GetTrigger",
"glue:GetWorkflow",
"glue:GetCrawler",
"glue:UpdateTable",
"glue:UpdateConnection"
],
"Resource": "*"
}
]
}
以上代码示例展示了一个具有 S3 和 Glue 的 IAM 角色权限的示例配置。用户必须将 mybucket
更改为实际的存储桶名称并保证所有资源权限正确。