MySQL 存储后端
MySQL 存储后端可以用来将 Vault 的数据保存到 MySQL 服务器或是集群中。
- 支持高可用集群 —— MySQL 存储后端支持高可用集群。请注意由于 MySQL 锁函数的工作原理,如果连接中断则锁也会丢失。如果不希望选举的领导者频繁发生变更,我们可以大幅增加 MySQL 配置文件中的
interactive_timeout
和wait_timeout
的值,远大于默认的 8 小时。 - 仅有社区支持 —— MySQL 存储后端由社区提供支持。虽然它已经过 HashiCorp 员工的审查,但他们可能对该技术并不了解。如果遇到问题,该问题可能会被转交给原作者。
storage "mysql" {
username = "user1234"
password = "secret123!"
database = "vault"
}
mysql
参数
address
(string: "127.0.0.1:3306")
– 设置 MySQL 主机的地址。database
(string: "vault")
– 设置使用的数据库名称。如果该数据库尚不存在,Vault 会尝试创建一个。table
(string: "vault")
– 设置使用的表名。如果该表尚不存在,Vault 会尝试创建一个。tls_ca_file
(string: "")
– 设置使用 TLS 连接所需的 CA 证书路径plaintext_credentials_transmission
(string: "")
- 设置通过明文发送凭据的授权。如果没有设置该参数并且没有设置 TLS CA 证书会触发关于通过纯文本发送凭据的警告。在将来的版本中,未能确认或使用 TLS 将导致 Vault 服务无法启动。这样做是为了确保凭据不会意外泄露。max_parallel
(string: "128")
– 设置发往 MySQL 的最大并行请求数。max_idle_connections
(string: "0")
– 设置与服务器之间最大的闲置连接数。设置为 0 将配置成默认的 2 个闲置连接,设置为负数则将禁用闲置连接。该参数的值如果大于max_parallel
将被减少到与其相同。max_connection_lifetime
(string: "0")
– 设置一个连接可被重用的最大秒数。如果设置为 <= 0 则连接将永远不会被重用。
另外,Vault 要求必须设置以下身份验证相关信息:
username
(string: <required>)
– 设置连接数据库使用的 MySQL 用户名。password
(string: <required>)
– 设置连接数据库使用的 MySQL 密码。
高可用参数
ha_enabled
(string: "true")
- 设置是否启用高可用。该参数使用 boolean 值,但必须以字符串形式设置,比如"true"
或是"false"
。lock_table
(string: "vault_lock")
– 设置用来存储高可用信息的表名。默认情况下值为table
参数的值搭配_lock
的后缀。如果该表尚不存在,Vault 会尝试创建一个。
mysql
例子
自定义数据库以及表
该例子演示了使用自定义数据库及表名配置 MySQL 后端:
storage "mysql" {
database = "my-vault"
table = "vault-data"
username = "user1234"
password = "pass5678"
}