venerdì 22 aprile 2016

Credenziali nascoste in PowerCli


In questi giorni mi stavo occupando di sistemare degli script in PowerCLI che avevo preparato anni fa e mi è subito balzata agli occhi una cosa ORRIBILE... tutte le credenziali erano in chiaro all'interno dello script :-O

Sorvolando sulle considerazioni che a quei file l'accesso è ovviamente limitato ad una ristretta cerchia di persone (amministratori di sistema) mi sono comunque posto il dubbio se non esistesse un metodo migliore per fare quanto mi serviva... la necessità era di poter lanciare gli script in modalità unattended ma di non essere costretto a scrivere le credenziali direttamente in chiaro nel testo del comando.

Frugando sulla rete mi sono imbattuto in una serie di articoli che presentavano una funzionalità specifica di PowerCLI fatta apposta per accedere al vCenter da script senza essere costretti al salvataggio in chiaro della password che verrà recuperata da un xml esterno allo script dove sarà salvata in modo crittografato.

Nel file xml in realtà rimarranno in chiaro lo username e l'indirizzo dello stesso vCenter ma mi permetto di ritenere il fatto decisamente meno grave :-)

Passando a descrivere la parte operativa per prima cosa sarà necessario creare il suddetto file xml grazie al comando seguente:

New-VICredentialStoreItem -Host VCServerName -Password PASSWORD -User domain\username -file c:\cred.xml

Ora che abbiamo il nostro "repository" delle credenziali di accesso vediamo come richiamarle per poter effettuare il login dallo script al nostro vCenter.

Il tutto si risolve in un paio di righe di codice:

- la dichiarazione di una variabile che identifica l'oggetto dove sono archiviate le credenziali;
- richiamare le credenziali attraverso delle variabili che dipendono da quella precedentemente definita.

Ossia:

$creds = Get-VICredentialStoreItem -file C:\cred.xml

Connect-VIServer -Server $creds.Host -user $creds.User -password $creds.Password


Ovviamente nulla vieta, nel caso sia necessario effettuare diversi login o login con utenti diversi di moltiplicare alla bisogna i file xml ricordandosi di specificare la variabile "principale" con un nome differente e di conseguenza le variabili "figlio".

Ora i vostri script non riporteranno più le password per l'accesso ai vCenter e non ci sarà nemmeno bisogno che voi siate davanti al terminale per inserirla al momento giusto :-D

Nessun commento:

Posta un commento