AWS Batch-访问被拒绝403

时间:2019-11-20 12:20:43

标签: amazon-web-services amazon-s3 boto3 amazon-ecs amazon-athena

我正在将 AWS Batch ECS 一起使用,以执行需要向雅典娜发送请求的工作。我使用 python boto3 发送查询并获取请求状态:

  • start_query_execution:工作正常
  • get_query_execution:出错!

当我尝试执行查询时,出现以下错误:

{'QueryExecution': {'QueryExecutionId': 'XXXX', 'Query': "SELECT * FROM my_table LIMIT 10 ", 'StatementType': 'DML', 'ResultConfiguration': {'OutputLocation': 's3://my_bucket_name/athena-results/query_id.csv'}, 'QueryExecutionContext': {'Database': 'my_database'}, 'Status': {'State': 'FAILED', 'StateChangeReason': '**Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 4.**. ; S3 Extended Request ID: ....=)'

我对容器角色拥有所有权限(仅用于测试):

  • s3:*
  • 雅典娜:*
  • 胶水:*

我仅在AWS批处理中的容器中遇到此问题:在lambda中具有相同的策略和代码,它可以正常工作!

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

在Athena输出位置,我一直在使用Athena存储桶名称而不是文件名。 结果将生成,它将具有自己的ID

'ResultConfiguration': {'OutputLocation': 's3://my_bucket_name/athena-results/'}

如果ypu不确定要查询的存储桶,则可以在查询控制台中检入->设置 enter image description here