SpringCloud Vault后端

2023-06-17 12:57 更新

Spring Cloud Config服務(wù)器還支持Vault作為后端。

Vault是用于安全訪問機(jī)密的工具。秘密是您要嚴(yán)格控制訪問權(quán)限的所有內(nèi)容,例如API密鑰,密碼,證書和其他敏感信息。Vault為所有機(jī)密提供了統(tǒng)一的界面,同時(shí)提供了嚴(yán)格的訪問控制并記錄了詳細(xì)的審核日志。

有關(guān)Vault的更多信息,請參見Vault快速入門指南。

要使配置服務(wù)器能夠使用Vault后端,您可以使用?vault?配置文件運(yùn)行配置服務(wù)器。例如,在配置服務(wù)器的?application.properties?中,您可以添加?spring.profiles.active=vault?。

默認(rèn)情況下,配置服務(wù)器假定您的Vault服務(wù)器在?http://127.0.0.1:8200?下運(yùn)行。它還假定后端的名稱為?secret?,密鑰為?application?。所有這些默認(rèn)值都可以在配置服務(wù)器的?application.properties?中進(jìn)行配置。下表描述了可配置的Vault屬性:

名稱 默認(rèn)值

host

127.0.0.1

port

8200

scheme

http

backend

secret

defaultKey

application

profileSeparator

,

kvVersion

1

skipSslValidation

false

timeout

5

namespace

null

重要

上表中的所有屬性必須以spring.cloud.config.server.vault為前綴,或放置在復(fù)合配置的正確Vault部分中。

所有可配置的屬性都可以在?org.springframework.cloud.config.server.environment.VaultEnvironmentProperties?中找到。

Vault 0.10.0引入了版本化的鍵值后端(k / v后端版本2),該后端公開了與早期版本不同的API,現(xiàn)在它需要在安裝路徑和實(shí)際上下文路徑之間使用?data/?并包裝?data?對象中的秘密。設(shè)置?kvVersion=2?將考慮到這一點(diǎn)。

(可選)支持Vault企業(yè)版X-Vault-Namespace標(biāo)頭。要將其發(fā)送到Vault,請?jiān)O(shè)置namespace屬性。

在配置服務(wù)器運(yùn)行時(shí),您可以向服務(wù)器發(fā)出HTTP請求以從Vault后端檢索值。為此,您需要Vault服務(wù)器的令牌。

首先,將一些數(shù)據(jù)放入您的Vault中,如以下示例所示:

$ vault kv put secret/application foo=bar baz=bam
$ vault kv put secret/myapp foo=myappsbar

其次,向配置服務(wù)器發(fā)出HTTP請求以檢索值,如以下示例所示:

$ curl -X "GET" "http://localhost:8888/myapp/default" -H "X-Config-Token: yourtoken"

您應(yīng)該看到類似于以下內(nèi)容的響應(yīng):

{
   "name":"myapp",
   "profiles":[
      "default"
   ],
   "label":null,
   "version":null,
   "state":null,
   "propertySources":[
      {
         "name":"vault:myapp",
         "source":{
            "foo":"myappsbar"
         }
      },
      {
         "name":"vault:application",
         "source":{
            "baz":"bam",
            "foo":"bar"
         }
      }
   ]
}

多個(gè)Properties來源

使用Vault時(shí),可以為您的應(yīng)用程序提供多個(gè)屬性源。例如,假設(shè)您已將數(shù)據(jù)寫入Vault中的以下路徑:

secret/myApp,dev
secret/myApp
secret/application,dev
secret/application

寫入?secret/application?的Properties對使用Config Server的所有應(yīng)用程序均可用。名稱為myApp的應(yīng)用程序?qū)⒕哂袑懭?secret/myApp?和?secret/application?的所有屬性。當(dāng)?myApp?啟用了?dev?配置文件時(shí),寫入上述所有路徑的屬性將可用,列表中第一個(gè)路徑中的屬性優(yōu)先于其他屬性。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)