问题描述
我正在使用 DMS 将我的数据复制到 S3 存储桶中,并在 AWS Athena 上按“用户 ID”过滤和创建单独的数据库后读取该数据。我想让我的客户只访问他们的 USERID,以便他们只能查询那里的数据,而不能查看或查看 Athena 上的其他数据库。想知道如何实现这一目标。我尝试创建 IAM 权限/角色,但我仍然能够查看数据目录中的所有数据库并查询它们。请帮忙
谢谢
解决方法
创建策略
{
"Effect": "Allow","Action": [
"glue:GetDatabase","glue:GetTables"
],"Resource": [
"arn:aws:glue:XXX:XXX:catalog","arn:aws:glue:XXX:XXX:database/example_db","arn:aws:glue:XXX:XXX:table/example_db/*"
]
}
并将此策略附加到用户角色(用户所属)。将此策略附加到用户角色后,他将只能看到 example_db 数据库的表。如果您不想授予整个数据库访问权限,请删除“*”并提供特定的表名。
此外,请确保没有向用户或其组授予其他权限。最好为该用户创建一个新角色并附加策略。