Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Spring Cloud Azure PropertySource, amely az Azure Key Vault titkos kulcsaiban tárolt titkos kulcsokat tartalmazza.
Függőség beállítása
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId>
</dependency>
Borravaló
Emellett spring-cloud-azure-starter-keyvault biztosítunk a Key Vault összes funkciójának támogatásához. Ha úgy dönt, hogy használja, spring.cloud.azure.keyvault.enable a konfigurálni kívánt tulajdonság, és az alapértelmezett érték true. Ezután a spring.cloud.azure.keyvault.<keyvault-service>.enable használatával letilthatja a szükségtelen szolgáltatásokat.
Alapszintű használat
Ha client-id és client-secretszeretne hitelesíteni, a következő tulajdonságokra van szükség:
Konfigurációs tulajdonságok
spring:
cloud:
azure:
keyvault:
secret:
property-sources:
- name: key-vault-property-source-1
endpoint: ${ENDPOINT_1}
- name: key-vault-property-source-2
endpoint: ${ENDPOINT_2}
Java-kód
@SpringBootApplication
public class SampleApplication implements CommandLineRunner {
@Value("${sampleProperty1}")
private String sampleProperty1;
@Value("${sampleProperty2}")
private String sampleProperty2;
@Value("${samplePropertyInMultipleKeyVault}")
private String samplePropertyInMultipleKeyVault;
public static void main(String[] args) {
SpringApplication.run(SampleApplication.class, args);
}
public void run(String[] args) {
System.out.println("sampleProperty1: " + sampleProperty1);
System.out.println("sampleProperty2: " + sampleProperty2);
System.out.println("samplePropertyInMultipleKeyVault: " + samplePropertyInMultipleKeyVault);
}
}
Speciális használat
Speciális karakterek a tulajdonságnévben
A Key Vault titkos kulcsnevei csak a [0-9a-zA-Z-]karaktereit támogatják. További információ:
Titkos nevekben - helyett . használata
. titkos nevek nem támogatják. Ha az alkalmazás olyan tulajdonságnévvel rendelkezik, amely .tartalmaz (például spring.datasource.url), cserélje le .- a titkos kód Azure Key Vaultban való mentésekor. Mentse például spring-datasource-url az Azure Key Vaultban. Az alkalmazásban továbbra is használhatja a spring.datasource.url a tulajdonságérték lekéréséhez.
Jegyzet
Ez a módszer nem felel meg a spring.datasource-url. Ha spring-datasource-url ment a Key Vaultban, csak spring.datasource.url és spring-datasource-url támogatott a tulajdonságérték lekérése, de spring.datasource-url nem támogatott. Az eset kezeléséhez tekintse meg a Tulajdonsághelyőrzők használata szakaszt.
Tulajdonsághelyőrzők használata
Tegyük fel például, hogy ezt a tulajdonságot az application.properties fájlban állítja be:
property.with.special.character__=${propertyWithoutSpecialCharacter}
Az alkalmazás egy propertyWithoutSpecialCharacter kulcsnevet kap, és hozzárendeli az értékét property.with.special.character__.
Kis- és nagybetűk megkülönböztetése
A kis- és nagybetűk megkülönböztetése mód engedélyezéséhez a következő tulajdonságot állíthatja be:
spring.cloud.azure.keyvault.secret.property-sources[].case-sensitive=true
Nem kéri le az összes titkos kulcsot a Key Vaultban
Ha 1000 titkos kulcsot tárolt a Key Vaultban, és csak 3 titkos kulcsot szeretne használni. A 3 titkos nevet spring.cloud.azure.keyvault.secret.property-sources[].secret-keyslistázhatja.
Frissítési időköz beállítása
Alapértelmezés szerint a KeyVaultPropertySource titkos kulcsai 30 percenként frissülnek. Az időt spring.cloud.azure.keyvault.secret.property-sources[].refresh-intervalkonfigurálhatja. Például: spring.cloud.azure.keyvault.secret.property-sources[].refresh-interval=60m 60 percenkénti frissítést jelent. Állítsa 0 az automatikus frissítés letiltásához.
PropertySource-prioritás
Ha a kulcs több PropertySource-ban is létezik, amely érvénybe lép, a prioritás dönti el.
- Ha nincs
SystemEnvironmentPropertySourceaPropertySourcelistában, akkorKeyVaultPropertySourcelesz a legmagasabb prioritás. - Ha
SystemEnvironmentPropertySourceszerepel aPropertySourcelistában, akkorSystemEnvironmentPropertySourcemagasabb prioritással rendelkezik, mintKeyVaultPropertySource, ami azt jelenti, hogy egy környezeti változóval felülbírálhatja a Key Vault titkos kulcsértékét az alkalmazásban. - Ha a
PropertySourcelistában több key vault tulajdonságforrás is szerepel, akkor a definíció sorrendje a prioritási sorrend. A fenti mintát példaként vévekey-vault-property-source-1nagyobb prioritással rendelkezik, mintkey-vault-property-source-2.
Token hitelesítő adatainak konfigurálása a Key Vault tulajdonságforrásához
Ha a Key Vault PropertySourcemegadott token hitelesítő adatait kell használnia, regisztrálhatja a TokenCredential babot a ConfigurableBootstrapContextKeyVaultEnvironmentPostProcessor, ezt a funkciót a Spring Cloud Azure 5.16.0 támogatja. Íme egy példa a AzureCliCredentialhasználatára:
public static void main(String[] args) {
SpringApplication application = new SpringApplication(PropertySourceApplication.class);
application.addBootstrapRegistryInitializer(registry ->
registry.register(TokenCredential.class, context -> new AzureCliCredentialBuilder().build()));
application.run(args);
}
Minden konfigurálható tulajdonság
| Ingatlan | Alapértelmezett érték | Leírás |
|---|---|---|
| spring.cloud.azure.keyvault.secret.property-source-enabled | igaz | A Key Vault tulajdonságforrásának engedélyezése. |
| spring.cloud.azure.keyvault.secret.property-sources[].name | A tulajdonságforrás neve. | |
| spring.cloud.azure.keyvault.secret.property-sources[].endpoint | Azure Key Vault-végpont. | |
| spring.cloud.azure.keyvault.secret.property-sources[].case-sensitive | téves | A titkos kulcsok megkülönböztetik-e a kis- és nagybetűket. |
| spring.cloud.azure.keyvault.secret.property-sources[].secret-keys | A tulajdonságforráshoz támogatott titkos kulcsok. Ha ez a tulajdonság hiányzik, minden kulcs lekérhető. | |
| spring.cloud.azure.keyvault.secret.property-sources[].refresh-interval | 30m | Az összes Key Vault-titkos kulcs frissítéséhez szükséges időintervallum. |
| spring.cloud.azure.keyvault.secret.property-sources[].service-version | Az API-kérések során használt titkosszolgáltatás-verzió. | |
| spring.cloud.azure.keyvault.secret.property-sources[].client | Ügyfélhez kapcsolódó tulajdonságok. | |
| spring.cloud.azure.keyvault.secret.property-sources[].credential | Hitelesítő adatokkal kapcsolatos tulajdonságok. | |
| spring.cloud.azure.keyvault.secret.property-sources[].profile | Profilhoz kapcsolódó tulajdonságok. | |
| spring.cloud.azure.keyvault.secret.property-sources[].proxy | Proxyval kapcsolatos tulajdonságok. | |
| spring.cloud.azure.keyvault.secret.property-sources[].retry | Próbálkozzon újra a kapcsolódó tulajdonságokkal. |
- Lásd: Hozzáférés engedélyezése a Microsoft Entra-azonosítóval annak biztosításához, hogy a biztonsági tag megkapta-e a megfelelő engedélyt az Azure Key Vault titkos kulcsainak eléréséhez.
- Ha a
client,credential,profile,proxy,retrynemspring.cloud.azure.keyvault.secret.property-sources[].xxxkonfigurálva,spring.cloud.azure.xxxfog használni. A gyakori tulajdonságokról további információt Spring Cloud Azure-konfigurációs című cikkben talál. - A beágyazott tulajdonságokról további információt Spring Cloud Azure konfigurációs tulajdonságai.
Minták
Tekintse meg a spring-cloud-azure-starter-keyvault-secrets mintákat, a GitHubon.