Spring Cloud Vault - 存储 Secret-Id 和 Role-Id 的最佳位置
Spring Cloud Vault - Best place to store the Secret-Id and Role-Id
我正在使用 Spring Cloud Vault Library 从 Vault 服务器访问我的 Secrets。
目前我正在存储所有参数,例如role-id
、secret-id
、host
、port
等...,如环境变量,然后将其注入到我的 Spring-boot App 的 bootstrap.yml
中。下面是我的 YAML
文件
spring:
cloud:
vault:
authentication: APPROLE
app-role:
role-id: ${role-id}
secret-id: ${secret-id}
host: ${host}
port: ${port}
scheme: ${scheme}
我被卡住的地方是管理 Vault 的 Role-Id 和 Secret-Id。显然,如果人们可以轻松获得这 2 条信息,那么 Vault 并不擅长保护我们的秘密 ——它们本身确实是秘密。
保护 Role-Id
和 Secret-Id
的行业最佳实践是什么?我们已经集思广益,例如 storing-in-config-server、storing-in-environment-variable、storing-in- cloudfoundry-UPS ..
尽管如此,我们想了解这方面的最佳实践..
我遇到了同样的问题,这是您可以采取的措施。首先,应用程序应该定义自己的系统用户,并且应该以该用户身份启动。然后在与 jar/war 文件相同的目录中,您可以制作 bootstrap.properties 文件,其中包含:
spring.cloud.vault.app-role.secret-id=*your-secret-for-role-id*
这是 ls 输出示例:
-rw-------. 1 app app bootstrap.properties
-rwxr--r--. 1 app app app.jar
应用程序用户必须是该属性文件的所有者,并且只允许他读取 bootstrap.properties。除非您拥有 root 或应用程序用户权限,否则这会保护您的秘密免受未经授权的访问。
我正在使用 Spring Cloud Vault Library 从 Vault 服务器访问我的 Secrets。
目前我正在存储所有参数,例如role-id
、secret-id
、host
、port
等...,如环境变量,然后将其注入到我的 Spring-boot App 的 bootstrap.yml
中。下面是我的 YAML
文件
spring:
cloud:
vault:
authentication: APPROLE
app-role:
role-id: ${role-id}
secret-id: ${secret-id}
host: ${host}
port: ${port}
scheme: ${scheme}
我被卡住的地方是管理 Vault 的 Role-Id 和 Secret-Id。显然,如果人们可以轻松获得这 2 条信息,那么 Vault 并不擅长保护我们的秘密 ——它们本身确实是秘密。
保护 Role-Id
和 Secret-Id
的行业最佳实践是什么?我们已经集思广益,例如 storing-in-config-server、storing-in-environment-variable、storing-in- cloudfoundry-UPS ..
尽管如此,我们想了解这方面的最佳实践..
我遇到了同样的问题,这是您可以采取的措施。首先,应用程序应该定义自己的系统用户,并且应该以该用户身份启动。然后在与 jar/war 文件相同的目录中,您可以制作 bootstrap.properties 文件,其中包含:
spring.cloud.vault.app-role.secret-id=*your-secret-for-role-id*
这是 ls 输出示例:
-rw-------. 1 app app bootstrap.properties
-rwxr--r--. 1 app app app.jar
应用程序用户必须是该属性文件的所有者,并且只允许他读取 bootstrap.properties。除非您拥有 root 或应用程序用户权限,否则这会保护您的秘密免受未经授权的访问。