gpt4 book ai didi

amazon-web-services - AWS Athena 上的 AccessDenied

转载 作者:行者123 更新时间:2023-12-03 23:21:09 24 4
gpt4 key购买 nike

当我在 AWS Athena 上运行简单的 select * 查询时,出现访问被拒绝错误。

查询是:

select * from sensor.sensordata

架构是:
CREATE EXTERNAL TABLE sensor.sensordata (
sig string,
`data` struct<`iat`:timestamp,
`sub`:string,
tMax: float,
tMin: float,
`tAvg`: float,
`hAvg`: float,
hMin: float,
hMax: float
>
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION 's3://mybucket/data/';

我得到的错误(ID 缩短)是无法读取文件:
com.amazonaws.services.s3.model.AmazonS3Exception: 
Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied;
Request ID: B0048904...; S3 Extended Request ID: CKchfW8...), S3 Extended Request ID:
CKchfW8... (Path: s3://mybucket/data/sensor=01235EFD886C7DF1EE/t=1561513414.json)

然而,我什至向所有人公开了存储桶策略:
{
"Version": "2008-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket/*",
"arn:aws:s3:::mybucket"
]
}
]
}

除了存储桶策略之外,我还在 ACL 中拥有对存储桶所有者的标准完全访问权限,这与我运行 Athena 查询的帐户相同。我在 AWS 管理控制台中运行我的查询。

不确定是否相关:AWS Glue Crawler 无法读取文件。但是可以列出它们,我收到每个文件的错误。

我该怎么做才能使查询工作?

最佳答案

您没有向我们展示您的表定义,但我怀疑 Athena 想要列出路径的内容以发现存在哪些文件,以便它可以读取它们。

该策略仅授予 Put 和 Get 对象的权限,不授予 List 存储桶的权限。尝试添加 ListBucket允许。

顺便说一句,使用这样的存储桶策略是一个“非常糟糕的主意”,因为您要公开您的内容。相反,应将权限分配给调用 Athena 的凭证(例如 IAM 用户)。这样,存储桶就不是公开的。

关于amazon-web-services - AWS Athena 上的 AccessDenied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56766270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com