即使恶意用户获得了我的 AWS 帐户的访问权限,我也想找到一种方法来保证该用户无法删除至少一个数据库、快照或自动备份。对任何实现这一目标的方法持开放态度。谢谢!
最安全的选择是限制您的 AWS 账户中的哪些用户有权删除快照(甚至删除数据库)。
这样,如果 IAM 用户登录受到威胁,他们将无权进行破坏。
但是,“正确”的答案是使用多重身份验证,以便未经授权的用户无法访问您的 AWS 账户。
但是,如果您对“恶意用户”的定义包括可能变得“坏”的值得信赖的员工,那么这就更困难了。一般规则是“仅向人们提供其工作所需的访问权限”。如果他们的工作包括删除快照的能力,那么很难取消这种访问权限。 一些公司将关键数据复制到另一个 AWS 账户,并且很少有人有权访问
两个账户。这样,就有一个数据或配置的“备份”,一个人无法(意外或故意)破坏。
使用数据库特定工具(例如 pgdump)转储数据库,并将该文件上传到您控制下的 S3 存储桶。然后,将该数据移至 Glacier Vault 并锁定它。使用 Glacier Vault 锁,您可以在您选择的特定时间内“不可能”删除文件。即使是您帐户的超级管理员也无法做到这一点。如果 AWS 本身受到某种程度的损害,这些数据就会丢失。请参阅
https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html#vault-lock-overview作为替代方案,您可以尝试将新的快照转为 S3 功能 https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ExportSnapshot.html 与上述技术相结合。缺点是数据会转换为 Parquet,所以我不知道从这种快照恢复数据库有多容易。
拥有一个单独的 AWS 帐户用于备份,且权限受到严格限制,并将快照复制到那里:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html
“单独账户”模式是冰川穹顶存在之前的做法。但从技术上讲,确保它的安全仍然是您的责任 - 只是以这种方式正确地做到这一点要容易得多。 必须设置适当的跨帐户权限,以便您可以将快照复制到备份帐户或从备份帐户复制快照,但不能删除它们。
自从提出这个问题以来,AWS 添加了一项名为
AWS Backup Vault Lock。 “合规”模式本质上是一种无人可以删除的保管库超级保护模式。 合规模式下的保管库锁不能由任何用户或 AWS 更改或删除。合规模式下的保管库锁在锁定之前有一个您设置的宽限期,并且内容和保管库锁变得不可变。