MySQL 存储后端

MySQL 存储后端可以用来将 Vault 的数据保存到 MySQL 服务器或是集群中。

  • 支持高可用集群 —— MySQL 存储后端支持高可用集群。请注意由于 MySQL 锁函数的工作原理,如果连接中断则锁也会丢失。如果不希望选举的领导者频繁发生变更,我们可以大幅增加 MySQL 配置文件中的 interactive_timeoutwait_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"
}

results matching ""

    No results matching ""