Когда я выполняю простой запрос * выбора в AWS Athena, я получаю ошибку об отказе в доступе.
Запрос:
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/';
Ошибка, которую я получаю (сокращенные идентификаторы), заключается в том, что файл не может быть прочитан:
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 Query.Я выполняю запрос в Консоли управления AWS.
Не уверен, что связан: AWS Glue Crawler не может прочитать файлы.Но могу перечислить их, я получаю сообщение об ошибке для каждого файла.
Что я могу сделать, чтобы запрос работал?