linux – 在Puppet中,我如何保护密码变量(在这种情况下是MySQL密码)?

我正在使用Puppet为 MySQL配置参数化类:
class MysqL::server( $password ) {

        package { 'MysqL-server': ensure => installed }
        package { 'MysqL': ensure => installed }

        service { 'MysqLd':
                enable => true,ensure => running,require => Package['MysqL-server'],}

        exec { 'set-MysqL-password':
                unless => "MysqLadmin -uroot -p$password status",path => ['/bin','/usr/bin'],command => "MysqLadmin -uroot password $password",require => Service['MysqLd'],}
}

我该如何保护$密码?目前,我从节点定义文件删除认的世界可读权限,并通过ACL显式提供了puppet读取权限.

我假设其他人遇到了类似的情况,所以也许有更好的做法.

解决方法

在使用Puppet和MysqL时,我倾向于将root密码放在/root/.my.cnf中,将此文件锁定,然后将SSH访问限制在数据库服务器上.

是的,以明文形式将root密码存储数据库服务器上并不是最安全的解决方案.但是,如果您在此文件中编写MysqL root密码,则保护MysqL root帐户以允许从localhost登录只会将密码保留在puppet之外,并且还会保留在进程列表ps表之外.

此外,如果某人有root权限来读取/root/.my.cnf上的文件,那么他们可能还可以访问停止本地MysqL守护程序并重新启动守护程序而不使用users表来获得对数据库的直接root访问权限.

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...