限制 redshift Db 访问仅限有限用户

限制 redshift Db 访问仅限有限用户

请帮助我满足如下所述的用例要求

我们已经部署了 AWS Redshift 集群,其中的安全组目前可供所有人使用,但我希望在从个人设备(即笔记本电脑)建立连接时将该安全组的访问权限限制给某些人,而这些人分布在全球不同地方我可以应用什么现有解决方案来限制我对使用该特定设备(即笔记本电脑)的人的访问

*注:- 解决方案应该只允许那些人从他们的个人设备访问集群

设置 Windows EC2 实例以访问 Redshift 的建议已被拒绝

用户位于不同的地理位置,并使用不同的 ISP 服务提供商连接到 redshift。由于某些不可避免的原因,在源端(即用户端)配置更改是不可行的

答案1

正如你所说

用户位于不同的地理位置,并使用不同的 ISP 服务提供商连接到 redshift。

我假设我们讨论的是动态 IP 地址,因此您无法限制安全组内的 IP,因为它们总是在变化。我现在能想到的唯一方法是阻止 Redshift 集群安全组中的每个外部 IP 地址,并在同一 VPC 内设置“SSH 跳转主机”。如果您现在启用此主机连接到 Redshift 集群,用户可以通过 SSH 隧道访问 Redshift。由于您可以将不同的 SSH 私钥部署到每台机器,因此您可以限制并允许彼此独立的人员访问 Redshift 集群。有几种 SQL 工具可用于通过 SSH 隧道进行数据库连接,所以这可能是您的用户已经在使用的东西,您可以限制对某些用户的访问。

答案2

在 Redshift 数据库中,用户可以根据授予其用户帐户的权限访问数据库对象、视图和表。用户只能访问他们被授予访问权限的部分。根据您希望如何限制用户对 Redshift DB 的访问,您可以使用 CREATE USER、GRANT、CREATE GROUP 和 REVOKE SQL 语句等语句。我建议使用组级安全性,以便于维护。

以下是一些 Redshift 安全指南:

  • 默认情况下,仅向对象所有者授予访问权限。

  • 用户帐户将用户连接到数据库。权限是通过将权限直接分配给用户帐户来明确授予的。也可以通过成为具有授予权限的组的成员来隐式地完成此操作。

  • 群组包括多个用户,他们被集体分配访问权限。这样可以轻松保持最高级别的安全性。

  • 数据库表和其他数据库对象统称为模式。用户可以访问一个或多个模式。

有关 Redshift 架构和功能的更多信息,请参阅文章。

答案3

您可以通过创建用户/组帐户来限制对 Redshift db 的访问。

从您的“超级用户”帐户执行撤销语句以撤销特定用户组的访问权限。

例如:撤销 test2_group2 中 test1_db 中所有表的所有

默认情况下,创建数据库对象的人是其所有者。因此,如果 test2_group2 创建了一个新的数据库,则您必须返回并使用超级用户帐户在红移架构

您可以在此页面找到有关 Redshift 架构和组件的更多信息。

相关内容