安全

保护 S3 密钥

师成师成· 更新于 2026-09-28· 阅读 9 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

默认情况下,S3 密钥存储在 Ozone Manager 的 RocksDB 中。为了增强安全性,可以将 Ozone 配置为使用 HashiCorp Vault 作为外部密钥存储后端。

配置

要启用 Vault 集成,需要在 ozone-site.xml 中配置以下属性:

属性说明
ozone.secret.s3.store.provider要使用的 S3 密钥存储提供程序。将其设置为 org.apache.hadoop.ozone.s3.remote.vault.VaultS3SecretStorageProvider 以启用 Vault。
ozone.secret.s3.store.remote.vault.addressVault 服务器的地址(例如 http://vault:8200)。
ozone.secret.s3.store.remote.vault.namespace要使用的 Vault 命名空间。
ozone.secret.s3.store.remote.vault.engineverVault 密钥引擎的版本(例如 2)。
ozone.secret.s3.store.remote.vault.secretpath密钥在 Vault 中的存储路径。
ozone.secret.s3.store.remote.vault.auth与 Vault 通信时使用的认证方式。支持的取值为 TOKEN 和 APPROLE。
ozone.secret.s3.store.remote.vault.auth.tokenVault 认证令牌。当 ozone.secret.s3.store.remote.vault.auth 设置为 TOKEN 时必须配置。
ozone.secret.s3.store.remote.vault.auth.approle.idAppRole 的 RoleID。当 ozone.secret.s3.store.remote.vault.auth 设置为 APPROLE 时必须配置。
ozone.secret.s3.store.remote.vault.auth.approle.secretAppRole 的 SecretID。当 ozone.secret.s3.store.remote.vault.auth 设置为 APPROLE 时必须配置。
ozone.secret.s3.store.remote.vault.auth.approle.pathAppRole 的路径。当 ozone.secret.s3.store.remote.vault.auth 设置为 APPROLE 时必须配置。
ozone.secret.s3.store.remote.vault.trust.store.type信任库(trust store)的类型(例如 JKS)。
ozone.secret.s3.store.remote.vault.trust.store.path信任库文件的路径。
ozone.secret.s3.store.remote.vault.trust.store.password信任库的密码。
ozone.secret.s3.store.remote.vault.key.store.type密钥库(key store)的类型(例如 JKS)。
ozone.secret.s3.store.remote.vault.key.store.path密钥库文件的路径。
ozone.secret.s3.store.remote.vault.key.store.password密钥库的密码。

示例

以下示例展示了如何配置 Ozone 使用 Vault 作为 S3 密钥存储,并通过令牌认证进行身份验证:

<property>
  <name>ozone.secret.s3.store.provider</name>
  <value>org.apache.hadoop.ozone.s3.remote.vault.VaultS3SecretStorageProvider</value>
</property>
<property>
  <name>ozone.secret.s3.store.remote.vault.address</name>
  <value>http://localhost:8200</value>
</property>
<property>
  <name>ozone.secret.s3.store.remote.vault.enginever</name>
  <value>2</value>
</property>
<property>
  <name>ozone.secret.s3.store.remote.vault.secretpath</name>
  <value>secret</value>
</property>
<property>
  <name>ozone.secret.s3.store.remote.vault.auth</name>
  <value>TOKEN</value>
</property>
<property>
  <name>ozone.secret.s3.store.remote.vault.auth.token</name>
  <value>your-vault-token</value>
</property>

使用 SSL 的示例

以下示例展示了如何配置 Ozone 使用 Vault 作为 S3 密钥存储,并启用 SSL:

<property>
  <name>ozone.secret.s3.store.provider</name>
  <value>org.apache.hadoop.ozone.s3.remote.vault.VaultS3SecretStorageProvider</value>
</property>
<property>
  <name>ozone.secret.s3.store.remote.vault.address</name>
  <value>https://localhost:8200</value>
</property>
<property>
  <name>ozone.secret.s3.store.remote.vault.enginever</name>
  <value>2</value>
</property>
<property>
  <name>ozone.secret.s3.store.remote.vault.secretpath</name>
  <value>secret</value>
</property>
<property>
  <name>ozone.secret.s3.store.remote.vault.auth</name>
  <value>TOKEN</value>
</property>
<property>
  <name>ozone.secret.s3.store.remote.vault.auth.token</name>
  <value>your-vault-token</value>
</property>
<property>
  <name>ozone.secret.s3.store.remote.vault.trust.store.path</name>
  <value>/path/to/truststore.jks</value>
</property>
<property>
  <name>ozone.secret.s3.store.remote.vault.trust.store.password</name>
  <value>truststore-password</value>
</property>
<property>
  <name>ozone.secret.s3.store.remote.vault.key.store.path</name>
  <value>/path/to/keystore.jks</value>
</property>
<property>
  <name>ozone.secret.s3.store.remote.vault.key.store.password</name>
  <value>keystore-password</value>
</property>

参考资料

评论

登录后参与评论

正在加载评论…