出现"访问被拒绝"的问题通常是由于AWS Glue作业所在的执行角色没有足够的权限来向S3写入数据。要解决这个问题,您可以按照以下步骤进行操作:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GlueS3WriteAccess",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": "arn:aws:s3:::your-bucket-name/*"
}
]
}
请将"your-bucket-name"替换为您要写入的S3存储桶的名称。
登录到AWS管理控制台并找到AWS Glue作业的执行角色。您可以在AWS Glue作业的"作业概览"页面中找到执行角色的名称。
转到AWS IAM控制台并找到执行角色。点击执行角色名称。
在执行角色的"权限"选项卡中,点击"添加权限"按钮。
在"添加权限"页面中,选择"策略生成器"选项。
在策略生成器中,选择"Amazon S3"服务,并选择"特定的操作(specific actions)"。
在"Amazon S3"操作中,选择"PutObject"和"PutObjectAcl"操作。
在"Amazon S3"资源中,选择"指定的ARN(specific ARNs)"并输入您要写入的S3存储桶的ARN。
点击"添加权限"按钮,然后再次点击"添加权限"按钮。
选择"策略生成器"选项,然后选择"AWS Glue"服务。
在"AWS Glue"操作中,选择"CreateJob"操作。
在"资源"中,选择"所有资源(all resources)"。
点击"添加权限"按钮,然后再次点击"添加权限"按钮。
点击"下一步"按钮,并为策略生成器创建一个名称,然后点击"创建策略"按钮。
返回到执行角色的"权限"选项卡,并刷新页面,确保新创建的策略在列表中显示。
现在,您的执行角色应该具有足够的权限来向S3写入数据。您可以重新运行AWS Glue作业,看看是否还会出现"访问被拒绝"的问题。