如何禁用主数据库实例用户重置密码的功能?

如何禁用主数据库实例用户重置密码的功能?

我最近遇到了这样一种情况,开发是在客户提供的帐户上进行的,并且没有设置 IAM 用户,因此每个人都通过根帐户登录(这里显然存在问题)。

运行与 MySQL 5.6 兼容的 Aurora“Writer”实例的 RDS 实例的主数据库实例用户密码意外重置,导致许多问题。有没有办法禁用此功能,即确认如果访问凭据丢失,数据将无法恢复?

答案1

我认为没有办法明确阻止更改主密码。您可以使用 IAM 锁定修改 RDS 实例属性(我认为是 RDS IAM 权限修改实例) - 但这不仅会阻止更改密码,还会阻止对实例的任何修改。

我能想到的最佳选择是创建多个master level帐户。 本质上:

mysql> CREATE USER 'new_master_user'@'%' IDENTIFIED BY 'password';
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'new_master_user'@'%' WITH GRANT OPTION;

要么使用该帐户作为后门,以防再次遇到此问题,要么提供具有这些权限的帐户而不是实际的主帐户?(显然,您应该真正执行最小特权/不共享密码/[在此处插入您的最佳实践] - 但我猜您已经知道这一点:)。

相关内容