IAM 用户可以查看 Athena 表。如何限制一个用户看不到其他数据库和表
IAM user can see Athena tables. How to restrict one user to not see other databases and tables
我正在使用 DMS 将我的数据复制到 S3 存储桶中,并在根据 'USERID' 在 AWS Athena 上过滤和创建单独的数据库后读取该数据。我想让我的客户只能访问他们的 USERID,这样他们就只能查询那里的数据,而不能查看或查看 Athena 上的其他数据库。想知道如何实现这一目标。我尝试创建 IAM permissions/roles,但我仍然能够看到数据目录中的所有数据库并查询它们。请帮助
谢谢
创建策略
{
"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 数据库的 table。如果您不想授予整个数据库访问权限,请删除“*”并提供特定的 table 名称。
此外,请确保没有向用户或其组授予其他权限。最好为该用户创建一个新角色并附加策略。
我正在使用 DMS 将我的数据复制到 S3 存储桶中,并在根据 'USERID' 在 AWS Athena 上过滤和创建单独的数据库后读取该数据。我想让我的客户只能访问他们的 USERID,这样他们就只能查询那里的数据,而不能查看或查看 Athena 上的其他数据库。想知道如何实现这一目标。我尝试创建 IAM permissions/roles,但我仍然能够看到数据目录中的所有数据库并查询它们。请帮助
谢谢
创建策略
{
"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 数据库的 table。如果您不想授予整个数据库访问权限,请删除“*”并提供特定的 table 名称。
此外,请确保没有向用户或其组授予其他权限。最好为该用户创建一个新角色并附加策略。