Amazon web services 写入S3时,AWS胶水作业访问被拒绝
我有一份由CloudFormation创建的胶水ETL工作。此作业从RDS Aurora提取数据并写入S3 当我运行此作业时,我得到以下错误 该作业具有IAM服务角色 此服务角色允许Amazon web services 写入S3时,AWS胶水作业访问被拒绝,amazon-web-services,amazon-s3,aws-glue,Amazon Web Services,Amazon S3,Aws Glue,我有一份由CloudFormation创建的胶水ETL工作。此作业从RDS Aurora提取数据并写入S3 当我运行此作业时,我得到以下错误 该作业具有IAM服务角色 此服务角色允许 胶水和RDS服务 假设arn:aws:iam::aws:policy/AmazonS3FullAccess和arn:aws:iam::aws:policy/service role/AWSGlueServiceRole,以及 具有全系列的rds:*、kms:*和s3:*操作,允许使用相应的rds、kms和s3资源
不幸的是,这个错误没有告诉我们太多,只是在编写DynamicFrame的过程中失败了 403的原因只有少数几个,您可以检查是否已全部满足:
如果以上这些都不起作用,您可以进一步了解您的设置。可能是写操作的代码。除了Lydon的回答之外,如果您的数据源位置与数据目标位置相同(在Glue中创建作业时定义),也会收到错误403。如果这两个位置相同且问题相同,请更改其中任何一个我会解决的。您如何为
PassRole
提供粘合角色的权限
{
"Sid": "AllowAccessToRoleOnly",
"Effect": "Allow",
"Action": [
"iam:PassRole",
"iam:GetRole",
"iam:GetRolePolicy",
"iam:ListRolePolicies",
"iam:ListAttachedRolePolicies"
],
"Resource": "arn:aws:iam::*:role/<role>"
}
{
“Sid”:“AllowAccessToRoleOnly”,
“效果”:“允许”,
“行动”:[
“iam:PassRole”,
“iam:GetRole”,
“iam:GetRolePolicy”,
“iam:ListrolePolicys”,
“iam:ListAttachedRolePolicies”
],
“资源”:“arn:aws:iam::*:角色/”
}
通常我们使用
--
创建角色,例如xyz glue dev,其中项目名为xyz,环境名为dev。在这种情况下,我们使用“资源”:“arn:aws:iam::*:role/xyz-*-dev”
对我来说,这是两件事
在这两个设置之后,我的粘合作业成功运行。希望这有帮助。确保您提供了正确的策略。 我也面临同样的问题,认为我的角色配置得很好。
但是,在我删除角色并执行步骤后,它起了作用;]您可以配置s3访问日志,也可以是s3 bucket的对象级日志,并使用Athena分析日志(或只是打开写入的日志),以查看403的确切原因。对于s3。*您是否将资源指定为[“bucket arn”,“bucket arn/*”?