transit 封印
Transit 封印配置了 Vault 如何使用 Transit 机密引擎封装封印密钥。Transit 封印可以由以下任一方式激活:
- Vault 配置文件中设置了
seal "transit"块 - 环境变量
VAULT_SEAL_TYPE的值被设置为transit
transit 例子
下面的例子显示了通过 Vault 配置文件提供所有必要的值来配置 Transit 封印:
seal "transit" {
address = "https://vault:8200"
token = "s.Qf1s5zigZ4OX6akYjQXJC1jY"
disable_renewal = "false"
// Key configuration
key_name = "transit_key_name"
mount_path = "transit/"
namespace = "ns1/"
// TLS Configuration
tls_ca_cert = "/etc/vault/ca_cert.pem"
tls_client_cert = "/etc/vault/client_cert.pem"
tls_client_key = "/etc/vault/ca_cert.pem"
tls_server_name = "vault"
tls_skip_verify = "false"
}
transit 参数
以下参数可以在 Vault 配置文件的 seal 配置节当中使用:
address(string: <required>): 用以解封的 Vault 集群的完整地址。可以通过设置环境变量VAULT_ADDR来配置。token(string: <required>): 使用的 Vault 令牌。可以通过设置环境变量VAULT_TOKEN来配置。key_name(string: <required>): 用以加解密的 transit 引擎 key。可以通过设置环境变量VAULT_TRANSIT_SEAL_KEY_NAME来配置。mount_path(string: <required>): transit 机密引擎的挂载路径。可以通过设置环境变量VAULT_TRANSIT_SEAL_MOUNT_PATH来配置。namespace(string: ""): transit 机密引擎的名字空间。可以通过设置环境变量VAULT_NAMESPACE来配置。disable_renewal(string: "false"): 禁用自动续约令牌,以应对令牌是由 Vault 之外管理生命周期的场景。可以通过设置环境变量VAULT_TRANSIT_SEAL_DISABLE_RENEWAL来配置。tls_ca_cert(string: ""): 设置用以与 Vault 服务通信的 CA 证书文件的地址。可以通过设置环境变量VAULT_CACERT来配置。tls_client_cert(string: ""): 设置用以与 Vault 服务通信的客户端证书文件的地址。可以通过设置环境变量VAULT_CLIENT_CERT来配置。tls_client_key(string: ""): 设置用以与 Vault 服务通信的私钥文件的地址。可以通过设置环境变量VAULT_CLIENT_KEY来配置。tls_server_name(string: ""): 通过 TLS 连接 Vault 服务时使用的 SNI 主机名。可以通过设置环境变量VAULT_TLS_SERVER_NAME来配置。tls_skip_verify(bool: "false"): 关闭验证 TLS 证书。极不推荐使用该选项,它将削弱和 Vault 服务之间数据传输的安全性。可以通过设置环境变量VAULT_SKIP_VERIFY来配置。
身份验证
必须设置身份验证参数,可以通过环境变量或是配置文件中的参数。
注意:虽然我们可以在配置文件中配置 VAULT_TOKEN,但我们强烈推荐使用环境变量配置该参数。
配置的 Vault 令牌需要拥有以下 transit key 的权限:
path "<mount path>/encrypt/<key name>" {
capabilities = ["update"]
}
path "<mount path>/decrypt/<key name>" {
capabilities = ["update"]
}
密钥轮换
Transit 封印支持轮换 Transit 机密引擎中的密钥。旧密钥不得禁用或删除,并用于解密旧数据。