Powershell ve PowerCLI İçerisinde Şifre Saklamak

Eğer orchestrator(system center veya vmware) kullanıyorsanız mutlaka bir çok işinizi otomatikleştirmek için script yazmanız gerekmiştir. Doğal olarak bir çok scriptin çalışması için uzakta ki bir sunucuya giriş yapması gerekmektedir ve bunun için gerekli bilgileri script içerisinde kullanmamız gerekiyor. Powershell ve PowerCLI şifrelerin saklanması ve tekrar tekrar kullanılması için yöntemler sunmaktadırlar.

Uyarı: Her iki yöntemde gerçek anlamda bir koruma sağlamamakta, şifrelerin saklandığı dosyaya erişebilirse şifrelerinizi .

Powershell:

Öncelikle şifremizi saklayacağımız bir dosya oluşturmamız gerekmektedir

$cred = Get-Credential #Popup çıkartır ve kullanıcı adı ve şifremizi yazabiliriz
$cred.password |ConvertFrom-SecureString |Set-Content c:\secretfile.txt #Şifrenizi kriptolar ve secretfile.txt’e yazar

Artık istediğimiz zaman şifremizi tekrar tekrar kullanabiliriz. Mesela uzaktaki bir sunucuya bağlanmak istediğimizi varsayalım.

#şifremizi dosyadan okuyoruz

$p = Get-Content c:\secretfile.txt | ConvertTo-SecureString

#Kullanıcı adı ve şifreyi kullanarak bir adet obje oluşturuyoruz

$c = new-object -typename System.Management.Automation.PSCredential -argumentlist “Domain\User”,$password

#yarattığımız objeyi kullanarak giriş uzaktaki sunucuya giriş yapıyoruz

$s = new-pssession -computername <uzaksunucuadı> -credential $cred

Alternatif olarak obje yaratmak için

$c = New-Object  System.Management.Automation.PSCredential(“Domain\user”,$password)

Parantezleri kapatmayı hep unuttuğum için bunu pek kullanmıyorum 🙂

Peki aynı şekilde vCenter’ınıza bağlanıp belli aralıklarla bazı scriptleri çalıştırmak istiyorsunuz? Bunun için öncelikle PowerCLI kurmanız gerekmektedir.

 

#Powercli modülünü powershell’e tanımlıyoruz. PowerCLI’ı Vmware’in sitesinden indirebilirsiniz.

Add-PSSnapin “VMware.VimAutomation.Core”

#Kullanıcı ve şifremizi kullarak vmSecretfile.xml isimli

New-VICredentialStoreItem -Host <vcenterhostname> -User <admin kullanıcısı> -Password “Şifreniz” -File C:\vmSecretfile.xml

 

Oluşturduğumuz dosyayı bir script içerisinde kullanmak içinse

$Cred = Get-VICredentialStoreItem -Host <vcenterhostname> -File C:\vmSecretfile.xml

Connect-VIServer <vcenterhostname> -User $Cred.User -Password $Cred.Password

Powercli’ın bir artısı tek bir dosya içerisinde farklı hostname ve kullanıcıları tutabilmesidir. Böylelikle farklı scriptler veya host’lar için tek bir dosyadan gereken bilgileri alabilirsiniz. Eğer file parametresi vermezseniz kullanıcı profili içerisine bir adet dosya yaratır. Bunun pratikliğine gelirsek

“Connect-VIServer <vcenterhostname>”  yazdığınız zaman otomatik olarak profil içerisinde ki dosyadan direk okur ve giriş yapmanıza olanak verir.

Bu blog yazısı Emre Bozlak tarafından paylaşılmıştır. Referans vererek istediğiniz gibi kullanabilirsiniz. Eğer bir sorunuz olursa eposta veya sosyal medya hesaplarım üzerinden bana ulaşabilirsiniz. Yazılarımı Twitter'dan @emrebozlak veya RSS üzerinden takip edebilirsiniz.

Leave a comment