Tavaszi boltozat

Biztonsági top

Most jelentettem be az új Learn Spring Security tanfolyamot, beleértve a Spring Security 5 új OAuth2 veremére összpontosító teljes anyagot:

>> ELLENŐRIZZE A FOLYAMATOT

1. Áttekintés

HashiCorp páncélszekrénye egy eszköz a titkok tárolására és védelmére. A Vault általában megoldja a titkosítás kezelésével kapcsolatos szoftverfejlesztési biztonsági problémát. Ha többet szeretne megtudni róla, nézze meg itt a cikkünket.

Tavaszi boltozat tavaszi absztrakciókat biztosít a HashiCorp Vault tárházához.

Ebben az oktatóanyagban bemutatunk egy példát arra, hogyan lehet a Vault titkait tárolni és visszakeresni.

2. Maven-függőségek

Először vessünk egy pillantást azokra a függőségekre, amelyekre szükségünk van a Spring Vault használatához:

  org.springframework.vault spring-boltozat-mag 2.1.1.FELHASZNÁLÁS 

A legfrissebb verziója rugós boltozat-mag megtalálható a Maven Central oldalon.

3. A Vault beállítása

Nézzük át most a Vault konfigurálásához szükséges lépéseket.

3.1. A. Létrehozása VaultTemplate

Titkaink megőrzéséhez azonnal be kell mutatnunk a VaultTemplate amire szükségünk van VaultEndpoint és TokenAuthentication példányok:

VaultTemplate vaultTemplate = new VaultTemplate (új VaultEndpoint (), új TokenAuthentication ("00000000-0000-0000-0000-000000000000"));

3.2. A. Létrehozása VaultEndpoint

Van néhány módszer a példányosításra VaultEndpoint. Vessünk egy pillantást néhányukra.

Az első az, hogy egyszerűen példányosítsuk egy alapértelmezett konstruktor segítségével, amely létrehoz egy alapértelmezett végpontot, amelyre mutat // localhost: 8200:

VaultEndpoint végpont = new VaultEndpoint ();

Egy másik módszer a VaultEndpoint a Vault hosztjának és portjának megadásával:

VaultEndpoint végpont = VaultEndpoint.create ("gazdagép", port);

És végül létrehozhatjuk a Vault URL-ből is:

VaultEndpoint végpont = VaultEndpoint.from (új URI ("vault uri"));

Itt néhány dolgot észre kell venni - a Vault a következő gyökér tokennel lesz konfigurálva 00000000-0000-0000-0000-000000000000 az alkalmazás futtatásához.

Példánkban a TokenAuthentication, de vannak más támogatott hitelesítési módszerek is.

4. A Vault bab konfigurálása a Spring segítségével

Tavasszal többféleképpen konfigurálhatjuk a Széfet. Az egyik a AbstractVaultConfiguration, a másik pedig a használatával EnvironmentVaultConfiguration amely kihasználja a Spring környezeti tulajdonságait.

Most átmegyünk mindkét úton.

4.1. Használata AbstractVaultConfiguration

Hozzunk létre egy osztályt, amely kiterjed AbstractVaultConfiguration, a Spring Vault konfigurálásához:

A @Configuration public class VaultConfig kiterjeszti az AbstractVaultConfiguration {@Override public ClientAuthentication clientAuthentication () {return new TokenAuthentication ("00000000-0000-0000-0000-00000000000000"); } @Orride public VaultEndpoint vaultEndpoint () {return VaultEndpoint.create ("host", 8020); }}

Ez a megközelítés hasonló ahhoz, amit az előző szakaszban láthattunk. Ami más, hogy a Spring Vault segítségével az absztrakt osztály kibővítésével konfiguráltuk a Vault babot AbstractVaultConfiguration.

A konfiguráláshoz csak meg kell adnunk a megvalósítást VaultEndpoint és ClientAuthentication.

4.2. Használata EnvironmentVaultConfiguration

A Spring Vault konfigurálható a EnviromentVaultConfiguration:

@Configuration @PropertySource (value = {"vault-config.properties"}) @Import (value = EnvironmentVaultConfiguration.class) public class VaultEnvironmentConfig {}

EnvironmentVaultConfiguration használja a tavaszit PropertySource a Vault bab konfigurálásához. Csak be kell nyújtanunk a tulajdonságok fájljába néhány elfogadható bejegyzést.

Az összes előre meghatározott tulajdonságról további információk találhatók a hivatalos dokumentációban.

A Széf konfigurálásához legalább néhány tulajdonságra van szükségünk:

vault.uri = // localhost: 8200 vault.token = 00000000-0000-0000-0000-00000000000000

5. Titkok biztosítása

Készítünk egy egyszerűt Hitelesítő adatok osztály, amely felhasználónévvel és jelszóval társul:

public class Hitelesítő adatok {private String felhasználónév; privát karakterlánc jelszó; // szabványos kivitelezők, szerelők, beállítók}

Most nézzük meg, hogyan tudjuk biztosítani a biztonságunkat Hitelesítő adatok objektum a VaultTemplate:

Hitelesítő adatok hitelesítő adatai = új hitelesítő adatok ("felhasználónév", "jelszó"); vaultTemplate.write ("titkos / myapp", hitelesítő adatok);

Ezekkel a sorokkal elkészülve a titkaink most már tárolódnak.

Ezután meglátjuk, hogyan lehet hozzájuk hozzáférni.

6. Titkok elérése

A biztonságos titkokhoz a olvas() módszer ben VaultTemplate, amely visszaadja a VaultResponseSupport válaszként:

VaultResponseSupport response = vaultTemplate .read ("titkos / myapp", Credentials.class); Karakterlánc felhasználónév = response.getData (). GetUsername (); Karakterlánc jelszó = response.getData (). GetPassword ();

Titkos értékeink már készen állnak.

7. Következtetés

Ebben a cikkben megismerhettük a Spring Vault alapjait egy példával, amely bemutatja, hogyan működik a Vault tipikus esetekben.

Szokás szerint az itt bemutatott forráskód megtalálható a GitHubon.

Biztonsági alsó

Most jelentettem be az új Learn Spring Security tanfolyamot, beleértve a Spring Security 5 új OAuth2 veremére összpontosító teljes anyagot:

>> ELLENŐRIZZE A FOLYAMATOT