如何使用athena工作组来限制用户对特定数据库的访问?
例如我有一个“只读”用户,该用户不应该能够在默认数据库上运行选择查询。这可能吗?
答案 0 :(得分:1)
限制用户查询表的方法是使用IAM权限。不幸的是,由于Athena是更大的生态系统(其中还包括S3和Glue)的一部分,因此Athena中的权限模型比隔离的数据仓库或RDBMS中的复杂得多。
运行SELECT
没有特定的权限。您可以通过控制是否允许他们执行athena:StartQueryExecution
操作来限制用户运行查询,但不能控制用户运行哪种查询。
相反,您需要考虑对数据的访问和对目录的访问。
要限制读取,您可以限制用户对S3上数据的访问。即使允许用户运行SELECT
查询,如果他们无权对表前缀中的对象运行s3:ListObject
和s3:GetObject
,他们也会收到错误消息。>
您还可以限制用户对目录对象(即数据库和表)的访问-但这并不限制用户对数据本身的访问,可以将其更多地视为对创建,更新和删除数据库和表的限制。 。即使有一种方法可以限制用户可以在目录中看到的数据库和表,但是如果他们有权读取数据,则可以直接从S3并跳过Athena读取数据。
您可以在以下位置找到有关如何控制对目录对象的访问的文档:https://docs.aws.amazon.com/athena/latest/ug/fine-grained-access-to-glue-resources.html
雅典娜的工作组不能用于控制对数据或目录的访问。