想要达到
我想在 AWS Athena 中执行 SELECT 语句,但出现以下错误。
胶水目录准备好了,元信息准备好了,DDL就可以展示了。
如果您能告诉我如何使查询正常工作,我将不胜感激。
SELECT * FROM "table_name" limit 10;
↓</p>
Permission denied on S3 path: s3://backet_name/falder_name/db_name/table_name/parquet_name
错误信息
"errorCode":"AccessDenied",
"errorMessage":"User: arn:aws:sts::<Account_ID>:assumed-role/AWSServiceRoleForLakeFormationDataAccess/AWSLF-00-AT-<Account_ID>-OSSm3ywcAP is not authorized to perform: kms:Decrypt on resource: arn:aws:kms:ap-northeast-1:<Account_ID>:key/○○ because no resource-based policy allows the kms:Decrypt action"
环境
在 AWS RDS 上,快照被导出到 S3 并由 Glue 抓取以创建数据目录。此外,我们正在使用 AWS LakeFormation 来管理数据。
设置
AWServiceRoleForLakeFormationDataAccess
“AWServiceRoleForLakeFormationDataAccess”设置为爬虫的服务角色。
此角色允许的策略包括。
・AWSGlueServiceRole
・AmazonS3ReadOnlyAccess
・kms-decrypt-policy
・LakeFormationGetPolicy
kms-解密-策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "kms:Decrypt",
"Resource": "*"
}
]
}
LakeFormationGetPolicy
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"lakeformation:GetResourceLFTags",
"lakeformation:GetDataAccess",
"lakeformation:ListLFTags",
"lakeformation:GetLFTag"
],
"Resource": "*"
}
]
}
雅典娜执行用户(datalake_user)
附加政策
・AmazonAthenaFullAccess
・AmazonS3FullAccess
・KMSFullAccessPolicy