Amazon Athena
快速导航
您首先需要创建一个 IAM 用户,该用户将具有使用 Amazon Athena 运行查询和访问包含您的数据的 S3 存储桶的权限。
创建 IAM 策略
该策略应允许访问您的 S3 存储桶
- 登录到 IAM 控制台:https://console.aws.amazon.com/iam/。
- 在导航窗格中,选择“策略”,然后选择“创建策略”。
在策略正文中,您可以使用类似于以下的策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::my-bucket/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::my-bucket"
]
}
]
}
不要忘记将 my-bucket
更改为您的存储桶名称。您可以列出多个存储桶,但请注意,我们对存储桶(arn:aws:s3:::my-bucket
)和对象(arn:aws:s3:::my-bucket/*
)有单独的权限。
创建 IAM 用户
- 登录到 IAM 控制台:https://console.aws.amazon.com/iam/。
- 在导航窗格中,选择“用户”,然后选择“添加用户”。
- 输入所需的用户名。
- 选中“程序访问”旁边的复选框,然后单击“下一步”。
- 在“权限”步骤中,选择“直接附加现有策略”,并附加 AWSQuicksightAthenaAccess 策略以及您先前创建的用于访问 S3 存储桶的策略。
- 单击“下一步”,然后查看所有详细信息并“创建用户”。
- 记下访问密钥 ID 和秘密访问密钥。
创建 Athena 数据源
在 Redash 中,在“新建数据源”页面中,选择“Athena”作为数据源类型,并使用上一步中的信息填写详细信息
- AWS 访问密钥和 AWS 秘密密钥是上一步中的密钥。
- AWS 区域是您使用 Amazon Athena 的区域。
- S3 暂存路径是 Amazon Athena 用于暂存/查询结果的存储桶,如果您从 AWS 控制台使用过 Amazon Athena,则可能已经创建了它 - 只需复制相同的路径即可。
如果您在刷新 Athena 数据源架构时遇到问题,请检查您是否正在使用 AWS Glue。如果是这样,您应该在“附加设置”菜单下切换 使用 Glue 数据目录。
故障排除
如果您收到错误消息,提示:“执行查询的权限不足。”,请确保您已授予 IAM 用户访问存储数据所在的 S3 存储桶的权限。
AWSQuicksightAthenaAccess
使用 Athena 时,您需要以下 S3 权限
- 从您查询的存储桶读取权限。
- 查询结果存储桶的写入权限。
后者应该由 AWSQuicksightAthenaAccess 策略覆盖,但它仅为以下存储桶定义此权限:arn:aws:s3:::aws-athena-query-results-*
。
如果您使用不同的存储桶位置,则需要在您的自定义策略中指定它。查询结果存储桶所需的权限是
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload",
"s3:CreateBucket",
"s3:PutObject"