.password-property`设置存储数据库密码的属性名称,确保使用唯一的属性名称,以避免属性跟踪。
另见:[保险库文档:数据库秘密后端](https://www.vaultproject.io/docs/secrets/databases/index.html)
| |Spring Cloud Vault 不支持在达到最大租赁时间时获取新的凭据并用它们配置你的`DataSource`。
即,如果 Vault 中数据库角色的`max_ttl`被设置为`24h`,这意味着在你的应用程序启动 24 小时后,它将不再能够使用数据库进行身份验证。|
|---|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
### [](#vault.config.backends.cassandra)[8.3.Apache Cassandra](#vault.config.backends.cassandra)
| |`cassandra`后端在 Vault0.7.1 中已被弃用,建议使用`database`后端并将其挂载为`cassandra`。|
|---|-------------------------------------------------------------------------------------------------------------------------------------------|
Spring Cloud Vault 可以获得 Apache Cassandra 的凭据。可以通过设置`spring.cloud.vault.cassandra.enabled=true`(默认`false`)并提供带有`spring.cloud.vault.cassandra.role=…`的角色名来启用集成。
用户名和密码可从`spring.data.cassandra.username`和`spring.data.cassandra.password`属性中获得,因此使用 Spring 引导将获取生成的凭据,而无需进一步配置。可以通过设置`spring.cloud.vault.cassandra.username-property`和`spring.cloud.vault.cassandra.password-property`来配置属性名称。
```
spring.cloud.vault:
cassandra:
enabled: true
role: readonly
backend: cassandra
username-property: spring.data.cassandra.username
password-property: spring.data.cassandra.password
```
* `enabled`将该值设置为`true`可启用 Cassandra 后台配置使用
* `role`设置 Cassandra 角色定义的角色名
* `backend`设置要使用的 Cassandra 坐骑的路径
* `username-property`设置存储 Cassandra 用户名的属性名
* `password-property`设置存储 Cassandra 密码的属性名
另见:[Vault 文档:使用 Vault 设置 Apache Cassandra](https://www.vaultproject.io/docs/secrets/cassandra/index.html)
### [](#vault.config.backends.couchbase)[8.4.CouchBase 数据库](#vault.config.backends.couchbase)
Spring Cloud Vault 可以获得 CouchBase 的凭据。可以通过设置`spring.cloud.vault.couchbase.enabled=true`(默认`false`)并提供带有`spring.cloud.vault.couchbase.role=…`的角色名来启用集成。
用户名和密码可从`spring.couchbase.username`和`spring.couchbase.password`属性中获得,因此使用 Spring 引导将获取生成的凭据,而无需进一步配置。可以通过设置`spring.cloud.vault.couchbase.username-property`和`spring.cloud.vault.couchbase.password-property`来配置属性名。
```
spring.cloud.vault:
couchbase:
enabled: true
role: readonly
backend: database
username-property: spring.couchbase.username
password-property: spring.couchbase.password
```
* `enabled`将该值设置为`true`可启用 CouchBase 后台配置使用
* `role`设置 Couchbase 角色定义的角色名
* `backend`设置要使用的 CouchBase 挂载的路径
* `username-property`设置存储 CouchBase 用户名的属性名
* `password-property`设置存储 Couchbase 密码的属性名
另见:[CouchBase 数据库插件文档](https://github.com/hashicorp/vault-plugin-database-couchbase)
### [](#vault.config.backends.elasticsearch)[8.5.Elasticsearch](#vault.config.backends.elasticsearch)
Spring Cloud Vault 可以获得自 3.0 版本以来用于 ElasticSearch 的凭据。可以通过设置`spring.cloud.vault.elasticsearch.enabled=true`(默认`false`)并提供带有`spring.cloud.vault.elasticsearch.role=…`的角色名来启用集成。
用户名和密码可从`spring.elasticsearch.rest.username`和`spring.elasticsearch.rest.password`属性中获得,因此使用 Spring 引导将获取生成的凭据,而无需进一步配置。可以通过设置`spring.cloud.vault.elasticsearch.username-property`和`spring.cloud.vault.elasticsearch.password-property`来配置属性名称。
```
spring.cloud.vault:
elasticsearch:
enabled: true
role: readonly
backend: mongodb
username-property: spring.elasticsearch.rest.username
password-property: spring.elasticsearch.rest.password
```
* `enabled`将该值设置为`true`可启用 ElasticSearch 数据库后台配置使用
* `role`设置 ElasticSearch 角色定义的角色名
* `backend`设置要使用的 ElasticSearch 挂载的路径
* `username-property`设置存储 ElasticSearch 用户名的属性名
* `password-property`设置存储 ElasticSearch 密码的属性名
另见:[Vault 文档:使用 Vault 设置 ElasticSearch](https://www.vaultproject.io/docs/secrets/databases/elasticdb)
### [](#vault.config.backends.mongodb)[8.6.MongoDB](#vault.config.backends.mongodb)
| |`mongodb`后端在 Vault0.7.1 中已被弃用,建议使用`database`后端并将其挂载为`mongodb`。|
|---|---------------------------------------------------------------------------------------------------------------------------------------|
Spring Cloud Vault 可以获得 MongoDB 的凭据。可以通过设置`spring.cloud.vault.mongodb.enabled=true`(默认`false`)并提供带有`spring.cloud.vault.mongodb.role=…`的角色名来启用集成。
用户名和密码存储在`spring.data.mongodb.username`和`spring.data.mongodb.password`中,因此使用 Spring 引导将获取生成的凭据,而无需进一步配置。可以通过设置`spring.cloud.vault.mongodb.username-property`和`spring.cloud.vault.mongodb.password-property`来配置属性名。
```
spring.cloud.vault:
mongodb:
enabled: true
role: readonly
backend: mongodb
username-property: spring.data.mongodb.username
password-property: spring.data.mongodb.password
```
* `enabled`将该值设置为`true`可启用 MongoDB 后台配置使用
* `role`设置 MongoDB 角色定义的角色名
* `backend`设置要使用的 MongoDB mount 的路径
* `username-property`设置存储 MongoDB 用户名的属性名
* `password-property`设置存储 MongoDB 密码的属性名
另见:[Vault 文档:使用 Vault 建立 MongoDB](https://www.vaultproject.io/docs/secrets/mongodb/index.html)
### [](#vault.config.backends.mysql)[8.7. MySQL](#vault.config.backends.mysql)
| |`mysql`后端在 Vault0.7.1 中已被弃用,建议使用`database`后端并将其挂载为`mysql`。
`spring.cloud.vault.mysql`的配置将在未来的版本中删除。|
|---|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
Spring Cloud Vault 可以获得 MySQL 的凭据。可以通过设置`spring.cloud.vault.mysql.enabled=true`(默认`false`)并提供带有`spring.cloud.vault.mysql.role=…`的角色名来启用集成。
用户名和密码可从`spring.datasource.username`和`spring.datasource.password`属性中获得,因此使用 Spring 引导将获取生成的凭据,而无需进一步配置。可以通过设置`spring.cloud.vault.mysql.username-property`和`spring.cloud.vault.mysql.password-property`来配置属性名称。
```
spring.cloud.vault:
mysql:
enabled: true
role: readonly
backend: mysql
username-property: spring.datasource.username
password-property: spring.datasource.password
```
* `enabled`将该值设置为`true`可启用 MySQL 后台配置使用
* `role`设置 MySQL 角色定义的角色名
* `backend`设置要使用的 MySQL 挂载的路径
* `username-property`设置存储 MySQL 用户名的属性名
* `password-property`设置存储 MySQL 密码的属性名
另见:[Vault 文档:使用 Vault 设置 MySQL](https://www.vaultproject.io/docs/secrets/mysql/index.html)
### [](#vault.config.backends.postgresql)[8.8.PostgreSQL](#vault.config.backends.postgresql)
| |`postgresql`后端在 Vault0.7.1 中已被弃用,建议使用`database`后端并将其挂载为`postgresql`。
`spring.cloud.vault.postgresql`的配置将在未来的版本中删除。|
|---|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
Spring Cloud Vault 可以获得 PostgreSQL 的凭据。可以通过设置`spring.cloud.vault.postgresql.enabled=true`(默认`false`)并提供带有`spring.cloud.vault.postgresql.role=…`的角色名来启用集成。
用户名和密码可从`spring.datasource.username`和`spring.datasource.password`属性中获得,因此使用 Spring 引导将获取生成的凭据,而无需进一步配置。可以通过设置`spring.cloud.vault.postgresql.username-property`和`spring.cloud.vault.postgresql.password-property`来配置属性名称。
```
spring.cloud.vault:
postgresql:
enabled: true
role: readonly
backend: postgresql
username-property: spring.datasource.username
password-property: spring.datasource.password
```
* `enabled`将该值设置为`true`可启用 PostgreSQL 后台配置使用
* `role`设置 PostgreSQL 角色定义的角色名
* `backend`设置要使用的 PostgreSQL 挂载的路径
* `username-property`设置存储 PostgreSQL 用户名的属性名
* `password-property`设置存储 PostgreSQL 密码的属性名
另见:[Vault 文档:使用 Vault 设置 PostgreSQL](https://www.vaultproject.io/docs/secrets/postgresql/index.html)
## [](#vault.config.backends.configurer)[9.自定义要作为 PropertySource 公开的秘密后端](#vault.config.backends.configurer)
Spring Cloud Vault 使用基于属性的配置来为键值和已发现的秘密后台创建`PropertySource`s。
已发现的后端提供`VaultSecretBackendDescriptor`bean 来描述使用秘密后端的配置状态为`PropertySource`。需要一个`SecretBackendMetadataFactory`来创建一个`SecretBackendMetadata`对象,该对象包含路径、名称和属性转换配置。
`SecretBackendMetadata`用于支持特定的`PropertySource`。
你可以注册`VaultConfigurer`以进行定制。如果提供`VaultConfigurer`,则禁用默认的键值和已发现的后端注册。但是,你可以启用`SecretBackendConfigurer.registerDefaultKeyValueSecretBackends()`和`SecretBackendConfigurer.registerDefaultDiscoveredSecretBackends()`的默认注册。
```
public class CustomizationBean implements VaultConfigurer {
@Override
public void addSecretBackends(SecretBackendConfigurer configurer) {
configurer.add("secret/my-application");
configurer.registerDefaultKeyValueSecretBackends(false);
configurer.registerDefaultDiscoveredSecretBackends(true);
}
}
```
```
SpringApplication application = new SpringApplication(MyApplication.class);
application.addBootstrapper(VaultBootstrapper.fromConfigurer(new CustomizationBean()));
```
## [](#vault.config.backends.custom)[10.自定义秘密后端实现](#vault.config.backends.custom)
Spring Cloud Vault 为最常见的后端集成提供了秘密的后端支持。你可以通过提供一个实现来与任何类型的后端集成,该实现描述了如何从要使用的后端获取数据,以及如何通过提供`PropertyTransformer`来处理该后端提供的数据。
为后端添加自定义实现需要实现两个接口:
* `org.springframework.cloud.vault.config.VaultSecretBackendDescriptor`
* `org.springframework.cloud.vault.config.SecretBackendMetadataFactory`
`VaultSecretBackendDescriptor`通常是保存配置数据的对象,例如`VaultDatabaseProperties`。 Spring Cloud Vault 要求用`@ConfigurationProperties`对类型进行注释,以便从配置中实现类。
`SecretBackendMetadataFactory`接受`VaultSecretBackendDescriptor`以创建实际的`SecretBackendMetadata`对象,该对象保存 Vault 服务器内的上下文路径、解析参数化上下文路径所需的任何路径变量和`PropertyTransformer`。
`VaultSecretBackendDescriptor`和`SecretBackendMetadataFactory`类型都必须在`spring.factories`中注册,这是 Spring 提供的一种扩展机制,类似于 Java 的 ServiceLoader。
## [](#service-registry-configuration)[11.服务注册中心配置](#service-registry-configuration)
你可以使用`DiscoveryClient`(例如来自 Spring Cloud Consul)通过设置 Spring.cloud.vault.discovery.enabled=true(默认`false`)来定位 Vault 服务器。这样做的最终结果是,你的应用程序需要一个具有适当的发现配置的 application.yml(或环境变量)。好处是,只要发现服务是一个固定点,保险库就可以更改其坐标。默认的服务 ID 是`vault`,但是你可以在客户机上使用`spring.cloud.vault.discovery.serviceId`更改它。
发现客户机实现都支持某种元数据映射(例如,对于 Eureka,我们有 eureka.instance.metadatamap)。服务的一些附加属性可能需要在其服务注册元数据中进行配置,以便客户端能够正确地连接。不提供传输层安全性详细信息的服务注册中心需要提供一个`scheme`元数据条目,将其设置为`https`或`http`。如果没有配置任何方案,并且服务不作为安全服务公开,那么在未设置配置时,配置默认为`spring.cloud.vault.scheme`,即`https`。
```
spring.cloud.vault.discovery:
enabled: true
service-id: my-vault-service
```
## [](#vault.config.fail-fast)[12.Vault 客户端快速失败](#vault.config.fail-fast)
在某些情况下,如果服务无法连接到 Vault 服务器,则可能希望服务启动失败。如果这是所需的行为,那么设置 BootStrap 配置属性`spring.cloud.vault.fail-fast=true`,客户端将异常停止。
```
spring.cloud.vault:
fail-fast: true
```
## [](#vault.config.namespaces)[13.Vault Enterprise 命名空间支持](#vault.config.namespaces)
Vault Enterprise 允许使用名称空间来隔离单个 Vault 服务器上的多个 Vault。在使用 vault`RestTemplate`或`WebClient`时,通过设置`spring.cloud.vault.namespace=…`来配置名称空间,可以在每个传出的 HTTP 请求上启用名称空间标头`X-Vault-Namespace`。
请注意,Vault Community Edition 不支持此功能,并且对 Vault 操作没有影响。
```
spring.cloud.vault:
namespace: my-namespace
```
另见:[Vault Enterprise:名称空间](https://www.vaultproject.io/docs/enterprise/namespaces/index.html)
## [](#vault.config.ssl)[14.Vault 客户端 SSL 配置](#vault.config.ssl)
可以通过设置各种属性来声明性地配置 SSL。你可以设置`javax.net.ssl.trustStore`来配置 JVM 范围内的 SSL 设置,也可以设置`spring.cloud.vault.ssl.trust-store`来仅为 Spring Cloud Vault 配置设置 SSL 设置。
```
spring.cloud.vault:
ssl:
trust-store: classpath:keystore.jks
trust-store-password: changeit
trust-store-type: JKS
enabled-protocols: TLSv1.2,TLSv1.3
enabled-cipher-suites: TLS_AES_128_GCM_SHA256
```
* `trust-store`设置信任存储区的资源。SSL 安全的 Vault 通信将使用指定的信任存储区验证 Vault SSL 证书。
* `trust-store-password`设置信任存储密码
* `trust-store-type`设置信任存储类型。支持的值都支持`KeyStore`类型,包括`PEM`。
* `enabled-protocols`设置启用的 SSL/TLS 协议的列表(自 3.0.2 起)。
* `enabled-cipher-suites`设置启用的 SSL/TLS 密码套件的列表(自 3.0.2 起)。
请注意,配置`spring.cloud.vault.ssl.*`只能在 Apache HTTP 组件或 OKHTTP 客户机位于类路径上时才能应用。
## [](#vault-lease-renewal)[15.租赁生命周期管理(更新和撤销)](#vault-lease-renewal)
对于每个秘密,Vault 都会创建一个租约:元数据,其中包含诸如时间期限、可更新性等信息。
Vault 承诺,这些数据将在给定的持续时间或生存时间内有效。一旦租约到期,Vault 可以撤销该数据,并且该秘密的使用者不能再确定它是否有效。
Spring Cloud Vault 维护的租赁生命周期超出了登录令牌和秘密的创建。也就是说,与租赁相关的登录令牌和秘密将在租赁到期之前进行更新,直到终端到期。应用程序关闭撤销已获得的登录令牌和可更新的租约。
秘密服务和数据库后台(例如 MongoDB 或 MySQL)通常会生成可更新的租约,因此生成的凭据将在应用程序关闭时禁用。
| |静态令牌不会更新或撤销。|
|---|-----------------------------------------|
默认情况下,租赁续订和撤销是启用的,可以通过将`spring.cloud.vault.config.lifecycle.enabled`设置为`false`来禁用。不建议这样做,因为租约可能会到期,并且 Spring Cloud Vault 无法使用生成的凭据访问 Vault 或服务,并且在应用程序关闭后,有效的凭据仍然处于活动状态。
```
spring.cloud.vault:
config.lifecycle:
enabled: true
min-renewal: 10s
expiry-threshold: 1m
lease-endpoints: Legacy
```
* `enabled`控制与秘密相关的租赁是否被认为是续签的,过期的秘密是否被旋转。默认情况下启用。
* `min-renewal`设置续租前至少需要的期限。这种设置可以防止更新太频繁。
* `expiry-threshold`设置到期阈值。租约在到期前会在配置好的期限内续签。
* `lease-endpoints`设置更新和撤销的端点。旧版的 Vault 版本在 0.8 之前,Sysleases 版本在以后。
另见:[保险库文档:租赁、续订和撤销](https://www.vaultproject.io/docs/concepts/lease.html)
## [](#vault-session-lifecycle)[16.会话令牌生命周期管理(更新、重新登录和撤销)](#vault-session-lifecycle)
Vault 会话令牌(也称为`LoginToken`)与租赁非常相似,因为它具有 TTL,最大 TTL,并且可能会过期。一旦一个登录令牌过期,它就不能再用于与 Vault 交互。因此, Spring Vault 使用`SessionManager`API 进行命令和反应使用。
Spring 默认情况下,Cloud Vault 维护会话令牌生命周期。会话令牌是懒洋洋地获得的,因此实际的登录被推迟到 Vault 的第一次会话绑定使用时。一旦 Spring Cloud Vault 获得会话令牌,它将保留该令牌直到到期。下一次使用会话绑定活动时, Spring Cloud Vault 重新登录到 Vault 并获得一个新的会话令牌。在应用程序关闭时, Spring Cloud Vault 撤销令牌,如果它仍然处于活动状态以终止会话。
默认情况下,会话生命周期是启用的,可以通过将`spring.cloud.vault.session.lifecycle.enabled`设置为`false`来禁用。不建议禁用,因为会话令牌可能会过期,并且 Spring Cloud Vault 无法更长时间访问 Vault。
```
spring.cloud.vault:
session.lifecycle:
enabled: true
refresh-before-expiry: 10s
expiry-threshold: 20s
```
* `enabled`控制是否启用会话生命周期管理以更新会话令牌。默认情况下启用。
* `refresh-before-expiry`控制会话令牌更新的时间点。通过从令牌到期时间减去`refresh-before-expiry`来计算刷新时间。默认值为`5 seconds`。
* `expiry-threshold`设置到期阈值。该阈值表示将会话令牌视为有效的最小 TTL 持续时间。具有较短 TTL 的令牌将被视为过期,不再使用。应该大于`refresh-before-expiry`以防止令牌过期。默认值为`7 seconds`。
另见:[保险库文档:令牌更新](https://www.vaultproject.io/api-docs/auth/token#renew-a-token-self)
## [](#common-application-properties)[附录 A:通用应用程序属性](#common-application-properties)
可以在`application.properties`文件内、`application.yml`文件内或作为命令行开关指定各种属性。本附录提供了一个常见的 Spring Cloud Vault 属性的列表,以及对使用它们的基础类的引用。
| |属性贡献可以来自你的 Classpath 上的其他 jar 文件,因此你不应将其视为详尽的列表。
此外,你可以定义自己的属性。|
|---|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Name | Default |说明|
|----------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| spring.cloud.vault.app-id.app-id-path | `app-id` |安装 APPID 身份验证后端的路径。|
| spring.cloud.vault.app-id.network-interface | |网络接口提示为“MAC\_Address”用户 ID 机制。|
| spring.cloud.vault.app-id.user-id | `MAC_ADDRESS` |userid 机制。可以是“mac\_address”、“ip\_address”、字符串或类名。|
| spring.cloud.vault.app-role.app-role-path | `approle` |Approle 身份验证后端的挂载路径。|
| spring.cloud.vault.app-role.role | |角色的名称,可选的,用于拉模式.|
| spring.cloud.vault.app-role.role-id | |罗里德。|
| spring.cloud.vault.app-role.secret-id | |秘密组织。|
| spring.cloud.vault.application-name | `application` |用于 APPID 身份验证的应用程序名称。|
| spring.cloud.vault.authentication | | |
| spring.cloud.vault.aws-ec2.aws-ec2-path | `aws-ec2` |安装 AWS-EC2 身份验证后端的路径。|
| spring.cloud.vault.aws-ec2.identity-document |`[169.254.169.254/latest/dynamic/instance-identity/pkcs7](http://169.254.169.254/latest/dynamic/instance-identity/pkcs7)`|AWS-EC2PKCS7 身份文档的 URL。|
| spring.cloud.vault.aws-ec2.nonce | |once 用于 AWS-EC2 身份验证。空的 nonce 默认为 nonce 生成。|
| spring.cloud.vault.aws-ec2.role | |角色的名称,可选的。|
| spring.cloud.vault.aws-iam.aws-path | `aws` |安装 AWS 身份验证后端的路径。|
| spring.cloud.vault.aws-iam.endpoint-uri | |STS 服务器 URI。@ 自 2.2 起|
| spring.cloud.vault.aws-iam.role | |角色的名称,可选的。如果未设置,则默认为友好的 IAM 名称。|
| spring.cloud.vault.aws-iam.server-name | |用于在登录请求的头中设置{@code x-vault-aws-iam-server-id}头的服务器名称。|
| spring.cloud.vault.aws.access-key-property | `cloud.aws.credentials.accessKey` |获取的访问密钥的目标属性。|
| spring.cloud.vault.aws.backend | `aws` |AWS 后端路径。|
| spring.cloud.vault.aws.credential-type | |AWS 凭据类型|
| spring.cloud.vault.aws.enabled | `false` |启用 AWS 后端使用。|
| spring.cloud.vault.aws.role | |凭证的角色名。|
| spring.cloud.vault.aws.role-arn | |假定的 \_role 的 Role ARN 如果我们有多个与 vault 角色相关的角色。@since3.0.2|
| spring.cloud.vault.aws.secret-key-property | `cloud.aws.credentials.secretKey` |获取的密钥的目标属性。|
| spring.cloud.vault.aws.session-token-key-property | `cloud.aws.credentials.sessionToken` |获取的密钥的目标属性。|
| spring.cloud.vault.aws.ttl | `0` |STS 代币的 TTL。默认情况下,无论保险库角色可能对 MAX 有什么影响。也仅限于 AWS 支持的 STS 的最大值。@since3.0.2|
| spring.cloud.vault.azure-msi.azure-path | `azure` |安装 Azure MSI 认证后端的路径。|
| spring.cloud.vault.azure-msi.identity-token-service | |身份令牌服务 URI。@since3.0|
| spring.cloud.vault.azure-msi.metadata-service | |实例元数据服务 URI。@since3.0|
| spring.cloud.vault.azure-msi.role | |角色的名称。|
| spring.cloud.vault.cassandra.backend | `cassandra` |Cassandra 后端路径。|
| spring.cloud.vault.cassandra.enabled | `false` |启用 Cassandra 后端使用。|
| spring.cloud.vault.cassandra.password-property | `spring.data.cassandra.password` |获取的密码的目标属性。|
| spring.cloud.vault.cassandra.role | |凭证的角色名。|
| spring.cloud.vault.cassandra.static-role | `false` |启用静态角色用法。@ 自 2.2 起|
| spring.cloud.vault.cassandra.username-property | `spring.data.cassandra.username` |获取的用户名的目标属性。|
| spring.cloud.vault.config.lifecycle.enabled | `true` |启用生命周期管理。|
| spring.cloud.vault.config.lifecycle.expiry-threshold | |到期日门槛。{@link lease}在给定的{@link duration}到期前更新。@ 自 2.2 起|
| spring.cloud.vault.config.lifecycle.lease-endpoints | |将{@Link LeaseEndpoints}设置为将续订/撤销调用委托给。{@link leaseendpoints}封装了影响更新/撤销端点位置的 Vault 版本之间的差异。对于 Vault 的 0.8 或更高版本,可以使用{@Link LeaseEndpoints#sysleases},对于较旧的版本,可以使用{@Link LeaseEndpoints#Legacy}(默认)。@ 自 2.2 起|
| spring.cloud.vault.config.lifecycle.min-renewal | |在续租前至少需要的时间。@ 自 2.2 起|
| spring.cloud.vault.config.order | `0` |用于设置{@link org.springframework.core.ENV.PropertySource}的优先级。这对于使用 Vault 作为对其他属性源的覆盖是有用的。@see org.springframework.core.priorityordered|
| spring.cloud.vault.connection-timeout | `5000` |连接超时。|
| spring.cloud.vault.consul.backend | `consul` |领事后台路径。|
| spring.cloud.vault.consul.enabled | `false` |启用 Consul 后端使用。|
| spring.cloud.vault.consul.role | |凭证的角色名。|
| spring.cloud.vault.consul.token-property | `spring.cloud.consul.token` |获取的令牌的目标属性。|
| spring.cloud.vault.couchbase.backend | `database` |Couchbase 后端路径。|
| spring.cloud.vault.couchbase.enabled | `false` |启用 CouchBase 后端使用。|
| spring.cloud.vault.couchbase.password-property | `spring.couchbase.password` |获取的密码的目标属性。|
| spring.cloud.vault.couchbase.role | |凭证的角色名。|
| spring.cloud.vault.couchbase.static-role | `false` |启用静态角色用法。|
| spring.cloud.vault.couchbase.username-property | `spring.couchbase.username` |获取的用户名的目标属性。|
| spring.cloud.vault.database.backend | `database` |数据库后端路径。|
| spring.cloud.vault.database.enabled | `false` |启用数据库后端使用。|
| spring.cloud.vault.database.password-property | `spring.datasource.password` |获取的密码的目标属性。|
| spring.cloud.vault.database.role | |凭证的角色名。|
| spring.cloud.vault.database.static-role | `false` |启用静态角色用法。|
| spring.cloud.vault.database.username-property | `spring.datasource.username` |获取的用户名的目标属性。|
| spring.cloud.vault.databases | | |
| spring.cloud.vault.discovery.enabled | `false` |标志,指示已启用 Vault Server Discovery(将通过 Discovery 查找 Vault Server URL)。|
| spring.cloud.vault.discovery.service-id | `vault` |定位保险库的服务 ID。|
| spring.cloud.vault.elasticsearch.backend | `database` |数据库后端路径。|
| spring.cloud.vault.elasticsearch.enabled | `false` |启用 ElasticSearch 后端使用。|
| spring.cloud.vault.elasticsearch.password-property | `spring.elasticsearch.rest.password` |获取的密码的目标属性。|
| spring.cloud.vault.elasticsearch.role | |凭证的角色名。|
| spring.cloud.vault.elasticsearch.static-role | `false` |启用静态角色用法。|
| spring.cloud.vault.elasticsearch.username-property | `spring.elasticsearch.rest.username` |获取的用户名的目标属性。|
| spring.cloud.vault.enabled | `true` |启用 Vault Config 服务器。|
| spring.cloud.vault.fail-fast | `false` |如果不能从保险库获取数据,则会迅速失效。|
| spring.cloud.vault.gcp-gce.gcp-path | `gcp` |Kubernetes 身份验证后端的挂载路径。|
| spring.cloud.vault.gcp-gce.role | |尝试登录所针对的角色的名称。|
| spring.cloud.vault.gcp-gce.service-account | |可选服务帐户 ID。如果未配置,则使用默认 ID。|
| spring.cloud.vault.gcp-iam.credentials.encoded-key | |base64 以 JSON 格式对 OAuth2 帐户私钥的内容进行了编码。|
| spring.cloud.vault.gcp-iam.credentials.location | |OAuth2 凭证私钥的位置。\由于这是一个资源,私钥可以位于多种位置,例如本地文件系统、 Classpath、URL 等。|
| spring.cloud.vault.gcp-iam.gcp-path | `gcp` |Kubernetes 身份验证后端的挂载路径。|
| spring.cloud.vault.gcp-iam.jwt-validity | `15m` |JWT 令牌的有效性。|
| spring.cloud.vault.gcp-iam.project-id | |重写 GCP 项目 ID。|
| spring.cloud.vault.gcp-iam.role | |尝试登录所针对的角色的名称。|
| spring.cloud.vault.gcp-iam.service-account-id | |覆盖 GCP 服务帐户 ID。|
| spring.cloud.vault.host | `localhost` |Vault 服务器主机。|
| spring.cloud.vault.kubernetes.kubernetes-path | `kubernetes` |Kubernetes 身份验证后端的挂载路径。|
| spring.cloud.vault.kubernetes.role | |尝试登录所针对的角色的名称。|
| spring.cloud.vault.kubernetes.service-account-token-file | `/var/run/secrets/kubernetes.io/serviceaccount/token` |服务帐户令牌文件的路径。|
| spring.cloud.vault.kv.application-name | `application` |用于上下文的应用程序名。|
| spring.cloud.vault.kv.backend | `secret` |默认后端名称。|
| spring.cloud.vault.kv.backend-version | `2` |键值后端版本。当前支持的版本有:\
\- 版本 1(未版本化键-值后端)。\
\- 版本 2(版本化键-值后端)。\
\
|
| spring.cloud.vault.kv.default-context | `application` |默认上下文的名称。|
| spring.cloud.vault.kv.enabled | `true` |启用 kev-value 后端。|
| spring.cloud.vault.kv.profile-separator | `/` |profile-separator 组合应用程序名和 profile。|
| spring.cloud.vault.kv.profiles | |活动配置文件列表。@since3.0|
| spring.cloud.vault.mongodb.backend | `mongodb` |MongoDB 后端路径。|
| spring.cloud.vault.mongodb.enabled | `false` |启用 MongoDB 后端使用。|
| spring.cloud.vault.mongodb.password-property | `spring.data.mongodb.password` |获取的密码的目标属性。|
| spring.cloud.vault.mongodb.role | |凭证的角色名。|
| spring.cloud.vault.mongodb.static-role | `false` |启用静态角色用法。@ 自 2.2 起|
| spring.cloud.vault.mongodb.username-property | `spring.data.mongodb.username` |获取的用户名的目标属性。|
| spring.cloud.vault.mysql.backend | `mysql` |MySQL 后端路径。|
| spring.cloud.vault.mysql.enabled | `false` |启用 MySQL 后端使用。|
| spring.cloud.vault.mysql.password-property | `spring.datasource.password` |获取的用户名的目标属性。|
| spring.cloud.vault.mysql.role | |凭证的角色名。|
| spring.cloud.vault.mysql.username-property | `spring.datasource.username` |获取的用户名的目标属性。|
| spring.cloud.vault.namespace | |Vault 名称空间(需要 Vault Enterprise)。|
| spring.cloud.vault.pcf.instance-certificate | |到实例证书的路径。默认为{@code cf\_instance\_CERT}ENV 变量。|
| spring.cloud.vault.pcf.instance-key | |实例键的路径。默认为{@code cf\_instance\_key}ENV 变量。|
| spring.cloud.vault.pcf.pcf-path | `pcf` |Kubernetes 身份验证后端的挂载路径。|
| spring.cloud.vault.pcf.role | |尝试登录所针对的角色的名称。|
| spring.cloud.vault.port | `8200` |Vault 服务器端口。|
| spring.cloud.vault.postgresql.backend | `postgresql` |PostgreSQL 后端路径。|
| spring.cloud.vault.postgresql.enabled | `false` |启用 PostgreSQL 后端使用。|
| spring.cloud.vault.postgresql.password-property | `spring.datasource.password` |获取的用户名的目标属性。|
| spring.cloud.vault.postgresql.role | |凭证的角色名。|
| spring.cloud.vault.postgresql.username-property | `spring.datasource.username` |获取的用户名的目标属性。|
| spring.cloud.vault.rabbitmq.backend | `rabbitmq` |RabbitMQ 后端路径。|
| spring.cloud.vault.rabbitmq.enabled | `false` |启用 RabbitMQ 后端使用。|
| spring.cloud.vault.rabbitmq.password-property | `spring.rabbitmq.password` |获取的密码的目标属性。|
| spring.cloud.vault.rabbitmq.role | |凭证的角色名。|
| spring.cloud.vault.rabbitmq.username-property | `spring.rabbitmq.username` |获取的用户名的目标属性。|
| spring.cloud.vault.reactive.enabled | `true` |指示激活了反应性发现的标志|
| spring.cloud.vault.read-timeout | `15000` |读超时。|
| spring.cloud.vault.scheme | `https` |协议方案。可以是“HTTP”或“HTTPS”。|
| spring.cloud.vault.session.lifecycle.enabled | `true` |启用会话生命周期管理。|
| spring.cloud.vault.session.lifecycle.expiry-threshold | `7s` |{@link logintoken}的过期阈值。该阈值表示将登录令牌视为有效的最小 TTL 持续时间。具有较短 TTL 的令牌将被视为过期,不再使用。应该大于{@code refreshbeForexilless}以防止令牌过期。|
|spring.cloud.vault.session.lifecycle.refresh-before-expiry| `5s` |更新{@link logintoken}之前至少需要的时间段。|
| spring.cloud.vault.ssl.cert-auth-path | `cert` |安装路径的 TLS CERT 身份验证后端。|
| spring.cloud.vault.ssl.enabled-cipher-suites | |启用的 SSL/TLS 密码套件的列表。@since3.0.2|
| spring.cloud.vault.ssl.enabled-protocols | |启用的 SSL/TLS 协议的列表。@since3.0.2|
| spring.cloud.vault.ssl.key-store | |保存证书和私钥的信任存储区。|
| spring.cloud.vault.ssl.key-store-password | |用于访问密钥存储区的密码。|
| spring.cloud.vault.ssl.key-store-type | |类型的密钥存储。@since3.0|
| spring.cloud.vault.ssl.trust-store | |持有 SSL 证书的信任存储区。|
| spring.cloud.vault.ssl.trust-store-password | |用于访问信任存储区的密码。|
| spring.cloud.vault.ssl.trust-store-type | |信任存储的类型。@since3.0|
| spring.cloud.vault.token | |静态保险库令牌。如果{@link#authentication}是{@code token},则需要。|
| spring.cloud.vault.uri | |Vault Uri。可以用方案、主机和端口进行设置.|
如果{{{i[’GoogleAnalyticsObject’]=r;i[r]=i[r]|function(){q=i[r].push(参数)},i[r].l=1\*new date();a=s.createElement(o),m=s.getelementsbyName(0);a.parentsName(1);a.A.SRC=g;m.M.analytnode(gua,m.com.com);(google=document=’,’,’’’’’’’’),’documents’,’’.’’’’’’’’’’’,’’’’’’