授予对RDS数据库的访问权限

时间:2019-02-28 18:45:11

标签: jenkins rds

我在RDS服务中运行着几个数据库。 我想知道授予这些数据库开发人员访问权限的最佳实践。

我使用jenkins增强了解决方案,但我认为这不是最好的选择。

我正在努力避免向开发人员提供一些密码。

希望你能帮助我。

2 个答案:

答案 0 :(得分:0)

正如@ceejayoz所述,您可以创建一些具有受限特权的用户,例如,一个只能在几个模式上运行选择的用户,另一个可以更新一些表中的寄存器的用户。

答案 1 :(得分:0)

我可以分享我们的工作和所见所闻。我们在容易的地方使用A,然后使用B。

A)标准用户 对于所有数据库,我们有3个标准用户,其后缀为(_dba,_rw,_ro)。这些都使用强大的密码生成器拥有自己的密码。
_dba 用于部署方案并拥有所有权利
_rw 由应用程序使用(在所有表上均使用CRUD,但无法修改方案)
_ro 在所有表上仅具有R,通常分配给开发人员

注意:开发人员可以访问用于端口转发和proxycap的堡垒。他们可以通过袜子代理和堡垒在自己的计算机(数据库工具)中查询RDS端点。

这是一种懒惰的方法-因为用户的创建是通过编程完成的,因此我们很乐意为某些开发人员提供只读访问权限。他们可能会编写一个错误的查询并降低系统速度,但是他们可以针对特定用户执行此操作,因此差异不大,如果需要调查,堡垒日志会告诉我真正的身份。

B)用户界面
具有登录功能的简单Web应用程序(理想情况是MFA)-提供了一种运行查询的方法。如果仅用于报告,则最好针对系统的R / O副本。 Stackoverflow提供了自己(https://data.stackexchange.com/)。

如果RDS自己提供此功能(链接到您的IAM角色),那就更好了。他们在RDS Serverless(https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html)上提供此功能,并且可能是其他RDS版本中的功能。这样就可以进行精细控制甚至是惰性控制(IAM组)。