[TR] PowerCLI ile Active Directory Grubunun Yetkili Olduğu VMware Datastore’ları Listelemek

[TR] PowerCLI ile Active Directory Grubunun Yetkili Olduğu VMware Datastore’ları Listelemek

VMware ortamları büyüdükçe yetki yönetimi de karmaşıklaşır. Özellikle Active Directory (AD) grupları üzerinden yapılan rol atamaları zamanla kimin nerede yetkili olduğunu takip etmeyi zorlaştırabilir.

Sık karşılaşılan sorulardan biri şudur;

“Belirli bir AD grubunun vCenter üzerindeki hangi datastore’larda yetkisi var? Bunu PowerCLI ile toplu şekilde nasıl görebilirim?”

Bu makalemde bu ihtiyaca pratik bir çözüm sunan bir PowerCLI yaklaşımını adım adım inceleyeceğiz.

Neden Böyle Bir Rapor Gerekir?

Büyük yapılarda genellikle kullanıcıya doğrudan yetki verilmez bunun yerine AD grupları üzerinden rol ataması yapılır. Ancak zamanla:

  • Hangi grubun hangi datastore’da yetkili olduğu unutulabilir,
  • Gereksiz veya fazla yetkiler oluşabilir,
  • Denetim (audit) süreçlerinde detaylı rapor talep edilebilir.

vSphere Client üzerinden datastore datastore gezerek kontrol etmek hem zaman alıcı hem de hata yapmaya açıktır. Bu noktada PowerCLI, merkezi ve otomatik bir çözüm sunar.

Senaryo

Elimizde şu şekilde bir AD grubu olduğunu varsayalım:

domain\mygroup

Bu grubun birden fazla datastore üzerinde farklı rollerle yetkisi olabilir. Amacımız:

  • Tüm datastore’ları taramak
  • İlgili grubun permission kayıtlarını bulmak
  • Sonucu CSV olarak dışa aktarmak

Kullanılacak PowerCLI Script’i

Aşağıdaki script, belirtilen AD grubunun datastore bazlı yetkilerini tespit ederek rapor oluşturur;

$cred = Get-Credential
Connect-ViServer <vcenter-FQDN> -Credential $cred

$datastores = Get-Datastore | Select-Object Name
$groupAD = "domain\group"

$report = @()

foreach ($datastore in $datastores) {
  $report += Get-VIPermission |
    Where-Object {
      ($_.Entity.Name -eq $datastore.Name) -and
      ($_.Principal -eq $groupAD)
    } |
    Select-Object Principal, Role,
      @{n='Datastore';E={$datastore.Name}},
      @{n='Entity';E={$_.Entity.Name}},
      @{n='Entity Type';E={$_.EntityId.Split('-')[0]}},
      @{n='vCenter';E={$_.Uid.Split('@:')[1]}}
}

$report | Export-Csv "C:\DatastorePermissions.csv" -NoTypeInformation

Bu yöntem sayesinde:

  • Belirli bir AD grubunun hangi datastore’larda yetkili olduğunu
  • Hangi rol ile yetkilendirildiğini
  • Hangi vCenter üzerinden atandığını

tek bir raporla görebilirsiniz.

Bu yaklaşım özellikle:

  • Yetki denetimleri
  • Güvenlik kontrolleri
  • Migration öncesi analizler
  • Gereksiz yetki temizliği çalışmaları

için oldukça faydalıdır.