amazon-web-services - 识别并提醒人工访问 AWS 中的数据库实例
问题描述
当人类用户尝试使用服务帐户访问 AWS 中的数据库实例时,我必须创建警报。编程访问应该没问题,不需要提醒。
任何人都可以提出一个最佳解决方案来实现这一目标吗?
解决方案
你不能,至少不能直接。
有两种方法可以访问 Aurora 数据库:
- 通过 TCP 连接,使用 Postgres 或 MySQL 连接协议。
- 通过RDS 数据 API。
在这两种情况下,连接的另一端都有一个程序,数据库无法确定该程序是否是业务应用程序,用户编写的程序使用连接库进行连接,用户从Jupyter notebook,或者用户直接在psql
.
您能得到的最好结果是间接指示。
例如,如果您使用用户名和密码访问数据库,并将该信息存储在 Secrets Manager 密钥中,则可以使用CloudTrail查找所有调用GetSecretValue
并根据用户身份发出警报。ExecuteStatement
如果使用 Data API,您可以做同样的事情,但如果您使用IAM 生成的令牌进行授权,我不相信会有 CloudTrail 事件。
然而,即使这样也有局限性。首先,因为您必须等待 15 分钟才能让事件出现在 CloudTrail 中(这使其成为取证工具,而不是好的警报工具)。其次,因为有一些方法可以隐藏您的真实身份(尽管使用 Data API 并不那么容易)。
您的问题(您尚未描述)的真正解决方案将是一种使创建临时数据库连接变得困难的体系结构,以及一种不鼓励这种行为的文化。
推荐阅读
- google-bigquery - 使用 BigQuery 提取 DAU、MAU
- r - 使用不同数据帧的迭代分配
- vba - 如果共享邮箱已满 90%,则从共享邮箱中删除电子邮件
- html - 如何修复 CSS 输入类型 = 提交未显示在我的表单中?
- python - 通过本地网络在 2 台计算机上的 2 个 Python 脚本共享数据的最简单、最简单的方法
- ios - 我的滚动图像按钮在 swift 上不起作用
- conda - 是否可以在不允许符号链接(硬链接或软链接)的文件系统上创建 conda 环境?
- java - 如何正确读取字节java文件
- yarnpkg - 使用 Yarn 时“主要更新向后不兼容更新”是什么意思?
- javascript - 避免变量中的新行并在单行中打印值