Hoe te Gebruiken Ansible Kluis op te Slaan Geheime Sleutels

0
176

Met de meeste automatisering, referenties nodig zijn om te verifiëren en maken gebruik van veilige middelen. Wat altijd al een uitdaging is hoe we het beste voor het opslaan van deze referenties veilig. Ansible is een automatiseringssysteem dat biedt provisioning software, configuratie management en applicatie-implementaties.

Zoals met elk automatiseringssysteem, Ansible moet een veilige manier op te slaan geheimen. In het geval van Ansible, dat systeem heet Ansible Kluis. Ansible Vault biedt een cross-platform oplossing voor het veilig opslaan van referenties.

De Invoering Van Ansible Kluis

Ansible Kluis kan worden gebruikt voor het versleutelen van een bestand, of de variabelen zelf, van binnen een playbook. Standaard AES gebruikt die een gedeelde geheim gebaseerde encryptie. Zowel op bestands-en variabele codering methoden hebben hun voordelen en nadelen.

Bestandscodering

Voor het maken van een nieuw versleutelde bestand met de naam geheimen.yml, gewoon gebruik maken van de volgende ansible-kluis opdracht.

ansible-vault maken geheimen.yml

Na het vragen om een wachtwoord, de ansible-kluis opdracht zal de lancering van de systeem standaard file editor, die zal resulteren in een versleuteld bestand op te slaan.

Ook voor het coderen van een voorheen niet-versleutelde bestand, gebruik je het volgende ansible-kluis opdracht. Merk op dat deze gebruik maakt van het coderen parameter in plaats van de parameter maken.

ansible-kluis coderen geheimen.yml

Het nadeel aan het gebruik van bestandscodering is de leesbaarheid. Als u het bestand opent dan zul je merken dat zonder decodering, het is onmogelijk om het ontcijferen van de inhoud.

Variabele Codering

Binnen een playbook, is het mogelijk om een versleutelde variabele door voorafgaand aan de gecodeerde gegevens met het !kluis tag. Het uitvoeren van de encrypt_string argument van de ansible_vault opdracht zal resulteren in een gecodeerde tekenreeks die u kunt gebruiken binnen uw playbooks.

ansible-kluis encrypt_string ‘secret_data’ –naam ‘my_secret’

Na dat u wordt gevraagd om een wachtwoord, krijgt u de volgende gecodeerde string.

my_secret: !kluis |
$ANSIBLE_VAULT;1.1;AES256
37636561366636643464376336303466613062633537323632306566653533383833366462366662
6565353063303065303831323539656138653863353230620a653638643639333133306331336365
62373737623337616130386137373461306535383538373162316263386165376131623631323434
3866363862363335620a376466656164383032633338306162326639643635663936623939666238
3161

Variabele codering is geweldig voor de leesbaarheid, maar de mogelijkheid om het gebruik van opdracht regel het opnieuw invoeren is opgeofferd bij het gebruik van deze methode.

Met behulp van Ansible Kluis in de Praktijk

Je kan beseffen dat het gebruik van Ansible Kluis in de productie is een uitdaging. Effectief gebruik te maken van Ansible Vault, de volgende technieken om dit proces te vereenvoudigen.

  • Unprompted Decodering
  • Meerdere Kluizen
  • Het opnieuw invoeren

Unprompted Decodering

Een optie om op een transparante wijze het decoderen van een bestand of variabel, terwijl het gebruik van Ansible is voor het opslaan van het wachtwoord binnen een beschermde en niet-geversioneerde wachtwoord bestand. Een verwijzing naar dit opgeslagen wachtwoord, simpelweg passeren in de locatie van het bestand met behulp van de vault-wachtwoord-bestand-parameter.

ansible-playbook –vault-wachtwoord-bestand /pad/kluis-wachtwoord-bestand geheimen.yml

Dit zal het decoderen van alle versleutelde bestanden of variabelen met behulp van de meegeleverde wachtwoord.

Het is erg belangrijk om niet te begaan uw leesbare tekst wachtwoord bestand in uw versie controle systeem. Ook het beschermen van dit bestand aan de gebruiker of groep die toegang nodig heeft tot de opgeslagen wachtwoord op het bestandssysteem met behulp van access control lists (ACL ‘ s).

Meerdere Kluizen

Hoewel het handig te beschikken over een kluis met alle gecodeerde geheimen, een betere beveiliging in de praktijk is het veilig referenties in aparte relevante gewelven. Een voorbeeld hiervan is het scheiden van een productie-en ontwikkelomgeving. Gelukkig, Ansible Kluis stelt ons in staat om meerdere kluizen en verwijzingen die kluis van de gecodeerde data is afkomstig van het gebruik van een label.

ansible-vault maken –vault-id prod@prompt-prod-geheimen.yml

De bovenstaande code zal maken van een prod kluis en vraag uw wachtwoord op runtime (zoals opgemerkt door de @prompt string). Als u al een wachtwoord bestand dat u wilt gebruiken, gewoon langs het pad naar het bestand.

ansible-vault maken –vault-id prod@/pad/prod-kluis-wachtwoord-bestand prod-geheimen.yml

Laten we zeggen dat we willen coderen dezelfde my_secret variabele, maar deze keer slaan die in onze prod kluis. Net als voorheen, met behulp van encrypt_string maar met de relevante vault-id kunt het bewaren van het geheim in de opgegeven locatie.

ansible-kluis encrypt_string –vault-id prod@/pad/prod-kluis-wachtwoord-bestand ‘secret_data’ –naam ‘my_secret’

U zult merken dat na het AES256 string, een nieuw stuk van de tekst, prod wordt weergegeven. Dit geeft de kluis die de gecodeerde tekst in.

my_secret: !kluis |
$ANSIBLE_VAULT;1.1;AES256;prod
37636561366636643464376336303466613062633537323632306566653533383833366462366662
6565353063303065303831323539656138653863353230620a653638643639333133306331336365
62373737623337616130386137373461306535383538373162316263386165376131623631323434
3866363862363335620a376466656164383032633338306162326639643635663936623939666238
3161

Wat als u wilt opnemen van meerdere kluizen in één playbook? U kunt dan makkelijk in meerdere safe-id verklaringen op een ansible-playbook-opdrachtregel.

ansible-playbook –vault-id dev@/pad/dev-kluis-wachtwoord-bestand –vault-id prod@/pad/prod-kluis-wachtwoord-bestand site.yml

Het opnieuw invoeren

Ten slotte is het belangrijk om regelmatig de cyclus van uw wachtwoorden. Voor bestanden die zijn gecodeerd, kunt u gebruik maken van de commando-regel hieronder. Passeren in de nieuwe-kluis-id parameter maakt het gemakkelijk om het wachtwoord te wijzigen dat de geheimen zijn gecodeerd met.

ansible-kluis voeren –vault-id prod@/pad/prod-kluis-wachtwoord-bestand-oude-nieuwe-kluis-id prod@/pad/prod-kluis-wachtwoord-bestand-nieuwe site.yml

Zoals hierboven opgemerkt, is het opnieuw invoeren van commando-regel werkt niet voor gecodeerde variabelen. In dit geval moet u individueel re-coderen van de snaren en vervang ze in een bepaalde playbook.

De Beste Praktijken

Veiligheid is moeilijk, vooral als het gaat om het gebruik van geheimen in automatisering systemen. Met dat in gedachten, hier zijn enkele best practices te gebruiken bij het gebruik van Ansible Kluis. Maar wij hebben een aantal van deze eerder zijn, is het verstandig om te herhalen die praktijken.

  • ACL beschermd en zonder versiebeheer wachtwoord bestandenWachtwoord bestanden moeten niet worden opgeslagen in versie controle systemen, zoals GIT. Bovendien, zorg ervoor dat alleen de betreffende gebruikers toegang tot het wachtwoord bestand.
  • Aparte kluizenNormaal, veel verschillende omgevingen worden gebruikt. Daarom is het het beste om te scheiden van de vereiste referenties in de juiste gewelven.
  • Regelmatig bestand en variabele wachtwoord opnieuw invoerenIn het geval van een wachtwoord is het hergebruik of lekken, is het het beste om regelmatig voeren de wachtwoorden gebruikt om de blootstelling te beperken.

Conclusie

Zoals met elk automatiseringssysteem, het is uitermate belangrijk dat de geheimen worden beschermd en gecontroleerd. Met Ansible Gewelf, dat proces is eenvoudig en flexibel. Met behulp van de beste praktijken die hierboven zijn geschetst, opslaan en gebruiken van geheimen binnen Ansible is veilig en beveiligd.

Uit te breiden Ansible Vault nog verder en neem dit proces om het volgende niveau, kunt u gebruik maken van scripts die integreren in de password management oplossingen. Zoals u kunt zien, Ansible Vault is een uitstekende manier om afscheidt binnen Ansible playbooks.