7.2. 迁移安全 Vault 和属性


7.2.1. 将 Vault 迁移到安全凭证存储

用于在 JBoss EAP 7.0 中的传统 安全 子系统中存储纯文本字符串加密的 vault 与 JBoss EAP 7.1 或更高版本中的 Elytron 不兼容,后者使用新设计的凭据存储来存储字符串。凭据将安全加密凭据存储在 JBoss EAP 配置文件外的存储文件中。您可以使用 Elytron 提供的实现,或者您可以使用凭证存储 API 和 SPI 自定义配置。每个 JBoss EAP 服务器都可以包含多个凭据存储。

注意

如果您之前使用 vault 表达式对非敏感数据进行参数化,建议使用 Elytron 安全属性替换数据

如果您继续使用旧 的安全 子系统,则无需修改或更新密码库数据。但是,如果您计划迁移应用以使用 Elytron,您必须将现有的密码库转换为凭据存储,以便 elytron 子系统可以处理它们。 如需有关凭据存储的更多信息,请参阅如何为 JBoss EAP 配置服务器安全性的凭据存储

使用 WildFly Elytron 工具迁移 Vault 数据

JBoss EAP 附带的 WildFly Elytron 工具提供了一个 vault 命令,可帮助您将 vault 内容迁移到凭据存储中。您可以通过运行位于 EAP_HOME/bin 目录中的 elytron-tool 脚本来执行工具。

$ EAP_HOME/bin/elytron-tool.sh vault VAULT_ARGUMENTS

如果您愿意,您可以通过运行 java -jar 命令来执行工具。

$ java -jar EAP_HOME/bin/wildfly-elytron-tool.jar vault VAULT_ARGUMENTS

您可以使用以下命令获取所有可用参数的描述。

$ EAP_HOME/bin/elytron-tool.sh vault --help
注意
  • WildFly Elytron Tool 无法处理安全库数据文件的第一个版本。
  • 您可以使用屏蔽的格式输入 --keystore-password 参数,如下例所示以迁移单个密码库或明文所示。
  • 提供的 --salt--iteration 参数用于提供用于解密屏蔽的密码或在输出中生成屏蔽密码的信息。如果省略 --salt--iteration 参数,则使用默认值。
  • summary 参数 生成格式化的管理 CLI 命令,可用于将转换后的凭据存储添加到 JBoss EAP 配置中。纯文本密码在摘要输出中屏蔽。
重要

请注意,凭据存储只能用于保护密码。它们不支持可在管理模型中的任何位置使用的 vault 表达式功能。

选择以下迁移选项之一:

将单一安全 Vault 迁移到凭证存储

以下是 命令的示例,它用于将单个安全库转换为凭据存储:

$ EAP_HOME/bin/elytron-tool.sh vault --enc-dir vault_data/ --keystore vault-jceks.keystore --keystore-password MASK-2hKo56F1a3jYGnJwhPmiF5 --iteration 34 --salt 12345678 --alias test --location cs-v1.store --summary

此命令将安全密码库转换为凭据存储,并打印用于在输出中转换的管理 CLI 命令摘要。

Vault (enc-dir="vault_data/";keystore="vault-jceks.keystore") converted to credential store "cs-v1.store"
Vault Conversion summary:
--------------------------------------
Vault Conversion Successful
CLI command to add new credential store:
/subsystem=elytron/credential-store=test:add(relative-to=jboss.server.data.dir,create=true,modifiable=true,location="cs-v1.store",implementation-properties={"keyStoreType"=>"JCEKS"},credential-reference={clear-text="MASK-2hKo56F1a3jYGnJwhPmiF5;12345678;34"})
将多个安全 Vault 迁移到 Bulk 中的凭证存储

您可以使用 --bulk-convert 参数将多个 vault 转换为凭证存储,并指向批量转换描述符文件。

本节中的示例使用以下批量转换描述符文件:

示例: quay-vault-conversion-descriptor.txt 文件

keystore:vault-v1/vault-jceks.keystore
keystore-password:MASK-2hKo56F1a3jYGnJwhPmiF5
enc-dir:vault-v1/vault_data/
salt:12345678
iteration:34
location:v1-cs-1.store
alias:test

keystore:vault-v1/vault-jceks.keystore
keystore-password:secretsecret
enc-dir:vault-v1/vault_data/
location:v1-cs-2.store
alias:test

# different vault vault-v1-more
keystore:vault-v1-more/vault-jceks.keystore
keystore-password:MASK-2hKo56F1a3jYGnJwhPmiF5
enc-dir:vault-v1-more/vault_data/
salt:12345678
iteration:34
location:v1-cs-more.store
alias:test

当每次新 密钥存储: 行时,将开始新的转换。除 salt迭代属性外,所有选项均为必填

要执行批量转换并生成格式化管理 CLI 命令的输出,请执行以下命令:

$ EAP_HOME/bin/elytron-tool.sh vault --bulk-convert path/to/bulk-vault-conversion-descriptor.txt --summary

此命令会将文件中指定的所有安全密码库转换为凭据存储,并打印用于管理 CLI 命令的摘要,这些命令用于在输出中转换它们。

Vault (enc-dir="vault-v1/vault_data/";keystore="vault-v1/vault-jceks.keystore") converted to credential store "v1-cs-1.store"
Vault Conversion summary:
--------------------------------------
Vault Conversion Successful
CLI command to add new credential store:
/subsystem=elytron/credential-store=test:add(relative-to=jboss.server.data.dir,create=true,modifiable=true,location="v1-cs-1.store",implementation-properties={"keyStoreType"=>"JCEKS"},credential-reference={clear-text="MASK-2hKo56F1a3jYGnJwhPmiF5;12345678;34"})
--------------------------------------

Vault (enc-dir="vault-v1/vault_data/";keystore="vault-v1/vault-jceks.keystore") converted to credential store "v1-cs-2.store"
Vault Conversion summary:
--------------------------------------
Vault Conversion Successful
CLI command to add new credential store:
/subsystem=elytron/credential-store=test:add(relative-to=jboss.server.data.dir,create=true,modifiable=true,location="v1-cs-2.store",implementation-properties={"keyStoreType"=>"JCEKS"},credential-reference={clear-text="secretsecret"})
--------------------------------------

Vault (enc-dir="vault-v1-more/vault_data/";keystore="vault-v1-more/vault-jceks.keystore") converted to credential store "v1-cs-more.store"
Vault Conversion summary:
--------------------------------------
Vault Conversion Successful
CLI command to add new credential store:
/subsystem=elytron/credential-store=test:add(relative-to=jboss.server.data.dir,create=true,modifiable=true,location="v1-cs-more.store",implementation-properties={"keyStoreType"=>"JCEKS"},credential-reference={clear-text="MASK-2hKo56F1a3jYGnJwhPmiF5;12345678;34"})
--------------------------------------
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部