识别并警告人类对 AWS 中数据库实例的访问

Identify and alert for human access to DB instance in AWS

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

谁能提出实现此目标的最佳解决方案?

你不能,至少不能直接。

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

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

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

你能得到的最好的是间接指示。

例如,如果您使用用户名和密码访问数据库,并将该信息存储在 Secrets Manager 机密中,那么您可以使用 CloudTrail to find all calls to GetSecretValue and alert based on user identity. You can do the same thing for ExecuteStatement if using the Data API, but I don't believe that there's a CloudTrail event if you're using IAM-generated tokens 进行授权。

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

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