首页 > 解决方案 > 识别并提醒人工访问 AWS 中的数据库实例

问题描述

当人类用户尝试使用服务帐户访问 AWS 中的数据库实例时,我必须创建警报。编程访问应该没问题,不需要提醒。

任何人都可以提出一个最佳解决方案来实现这一目标吗?

标签: amazon-web-servicesamazon-iamamazon-aurora

解决方案


你不能,至少不能直接。

有两种方法可以访问 Aurora 数据库:

  • 通过 TCP 连接,使用 Postgres 或 MySQL 连接协议。
  • 通过RDS 数据 API

在这两种情况下,连接的另一端都有一个程序,数据库无法确定该程序是否是业务应用程序,用户编写的程序使用连接库进行连接,用户从Jupyter notebook,或者用户直接在psql.

您能得到的最好结果是间接指示。

例如,如果您使用用户名和密码访问数据库,并将该信息存储在 Secrets Manager 密钥中,则可以使用CloudTrail查找所有调用GetSecretValue并根据用户身份发出警报。ExecuteStatement如果使用 Data API,您可以做同样的事情,但如果您使用IAM 生成的令牌进行授权,我相信会有 CloudTrail 事件。

然而,即使这样也有局限性。首先,因为您必须等待 15 分钟才能让事件出现在 CloudTrail 中(这使其成为取证工具,而不是好的警报工具)。其次,因为有一些方法可以隐藏您的真实身份(尽管使用 Data API 并不那么容易)。

您的问题(您尚未描述)的真正解决方案将是一种使创建临时数据库连接变得困难的体系结构,以及一种不鼓励这种行为的文化。


推荐阅读