Yönetilen Kimlikler Microsoft Graph PowerShell ile nasıl kullanılır?


Yönetilen kimlikler, yöneticilerin ek parolaları veya gizli dizileri yönetmesine gerek kalmadan uygulamaların Azure'daki kaynaklara erişebilmesini sağlayan güvenli bir yol sağlar. Bu, kimlik doğrulamanın bir insanın nihai müdahalesine gerek kalmadan sorunsuz bir şekilde gerçekleşebileceği anlamına gelir.

Neyse ki kiracılarının yönetimi veya kiracılarının raporlanması için PowerShell'de kod yazanlar için Microsoft Graph PowerShell v2, Azure Otomasyonu ile Yönetilen Kimliklerin kullanımını destekler.

Bu eğitimde size Azure'da Yönetilen Kimlik için nasıl izin oluşturup atayabileceğinizi ve ardından bu Yönetilen Kimliği Microsoft Graph PowerShell komut dosyalarınızda nasıl kullanabileceğinizi göstereceğim.

Yönetilen Kimlikler nedir?

Yönetilen Kimlikler, kaynakların kimliğini doğrulamak için Azure AD erişim belirteçlerini otomatik olarak isteyip alabilen, Azure'daki kaynaklardır. Programatik/otomatik senaryolar için bu, kimlik doğrulamanın tamamen Azure tarafından ve yalnızca Azure içinde yönetilmesi nedeniyle kiracı yöneticilerinin parolaları, anahtarları veya gizli dizileri yönetme ihtiyacını ortadan kaldırır ve bu da işlemi basit ve daha güvenli hale getirir.

Pratik anlamda, Yönetilen Kimlikler, Azure AD'de, gerçekleştirmek üzere oluşturuldukları görevleri tamamlamak için belirli izinler veya roller atayabileceğiniz Hizmet Sorumlularıdır (veya uygulamalardır).

Yönetilen Kimlikleri Azure Active Directory'de aşağıdakileri seçerek görüntüleyebilirsiniz:

Uygulamalar > Tüm uygulamalar'ı seçin, ardından uygulama türü filtresini Yönetilen Kimlikler olarak değiştirin.

Sistem Tarafından Atanan ve Kullanıcı Tarafından Atanan Yönetilen Kimlikler

Azure'da, kaynaklara erişim için bir Azure AD belirteci almanızı sağlayan iki tür Yönetilen Kimlik vardır. Bunlar Sistem Tarafından Atanan ve Kullanıcı Tarafından Atanan Yönetilen Kimliklerdir.

Her ikisi de aynı amaca hizmet etse de, biraz farklı çalışırlar. Sistem Tarafından Atanan Yönetilen Kimlikler belirli bir kaynağa bağlıdır ve yalnızca o kaynağa belirli bir erişim sağlarken, Kullanıcı Tarafından Atanan Yönetilen Kimlikler bağımsızdır ve tek veya birden fazla farklı kaynağa atanabilir.

Her bir Yönetilen Kimlik türünü kullanmak arasında seçim yapmak, hem bunun nerede dağıtıldığı senaryoya hem de altyapınızı nasıl yönettiğinize bağlıdır.

Graph API izinlerini birden fazla kimliğe uygulamanız gerekiyorsa, Sistem Tarafından Atanan Yönetilen Kimlikler genellikle daha fazla yönetim anlamına gelebilir; izin gereksinimleri aynıysa bu, Kullanıcı tarafından atanan tek bir yönetilen kimlikle basitleştirilebilir. Ayrıca, Graph API izinleri yerine roller atarsanız, Sistem Tarafından Atanan Her Yönetilen Kimlik, atanan rol ile birlikte bir Güvenlik Grubuna da eklenebilir, böylece yönetim azalır.

Sistem Tarafından Atanan Yönetilen Kimliğin yaşam döngüsü de kaynağa bağlıdır, dolayısıyla kaynak oluşturulduğunda oluşturulur ve kaynak silindiğinde silinir. Bazı durumlarda bu, güvenliği korumaya ve ortamınızı düzenli tutmaya yardımcı olsa da, özellikle izinlerin farklı bir departman tarafından yönetilmesi veya onaylanması gerekiyorsa, birden fazla kaynak oluştururken sorun yaratabilir.

Aşağıdaki şema, Sistem Tarafından Atanan veya Kullanıcı Tarafından Atanan Yönetilen Kimlikler kullanılırken izin atama akışını gösterir. Genel olarak konuşursak, çalıştırılması gereken belirli bir izne sahip tek bir işiniz varsa Sistem Tarafından Atanan Kimlik Yönetimi daha iyi bir seçenek olacaktır; diğer senaryolar daha fazla düşünmeyi gerektirir.

Kullanıcı Tarafından Atanan Yönetilen Kimlik nasıl oluşturulur?

Kullanıcı tarafından atanan yönetilen kimlikler, hizmet verdikleri kaynaklardan bağımsız olduğundan, öncelikle Azure Portal veya PowerShell kullanılarak manuel olarak oluşturulmaları ve ardından gerekli izinlerin atanması gerekir. Kullanıcı Tarafından Atanan Yönetilen Kimlik oluşturup yapılandırmak için aşağıdaki adımları izleyin.

Azure Portal'ı kullanma

1. https://portal.azure.com/ adresinde oturum açın

2. Yönetilen Kimlikler'i arayın ve hizmeti açın

3. Yönetilen Kimlik oluşturma sihirbazını başlatmak için Oluştur'u tıklayın.

4. Ekrandaki bilgi alanlarını doldurun ve ardından İncele ve Oluştur > Oluştur'u tıklayın.

PowerShell'i kullanma

Her şeyi Microsoft Graph ile yapmayı sevsem de, Yönetilen Kimlikler Azure Kaynaklarıdır ve doğrudan Azure AD'de oluşturulamaz; Microsoft Graph bunu yönetmenizi sağlar. PowerShell ile Yönetilen Kimlik oluşturmak için Azure (Az) PowerShell modülünü aşağıdaki şekilde kullanmanız gerekir:

1. Az PowerShell modülünü yükleyin.

Install-Module Az -Scope CurrentUser -AllowPrerelease -Force

2. Connect-AzAccount'u kullanarak Azure'a bağlanın.

Connect-AzAccount

3. Yönetilen bir kimlik oluşturmadan önce, onu içerecek bir kaynak grubu oluşturmalısınız.

New-AzResourceGroup -Name RG-UKSAA-MgPowerShell -Location "UK South"

4. Şimdi yeni bir Yönetilen Kimlik oluşturun ve yeni kaynak grubunuzun adını tanımlayın.

New-AzUserAssignedIdentity -ResourceGroupName RG-UKSAA-MgPowerShell -Name MI-AA-MgPowerShell1 -location UKSouth

Yönetilen Kimliklere Graph API izinleri atama

Yönetilen kimliğimize son komut dosyamızda belirtilen görevleri gerçekleştirmek üzere gerekli (ve en az miktarda) ayrıcalığı vermek için, PowerShell aracılığıyla Graph API izinlerini atamamız gerekir.

Ne yazık ki, Graph API izinlerinin Microsoft Entra portalı aracılığıyla Yönetilen Kimliklere atanması henüz desteklenmemektedir, bu yüzden bunu Microsoft Graph PowerShell ile nasıl yapacağınızı göstereceğim.

Aşağıdaki komut dosyası Microsoft Graph'a bağlanacak ve tanımlanan izinleri Yönetilen Kimliğinize atayacaktır. Değişkenleri aşağıdaki komut dosyasında önerildiği şekilde değiştirdiğinizden emin olun.

# Connect to Microsoft Graph with least required permission scope
Connect-MgGraph -Scopes Application.Read.All, AppRoleAssignment.ReadWrite.All

### Define these variables here first ##
$ManagedIdentityName = "OCN-AA-MgPowerShell"
$permissions = "Mail.send", "AuditLog.Read.All", "Application.Read.All"

# Get service principal and roles
$getPerms = (Get-MgServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'").approles | Where {$_.Value -in $permissions}
$ManagedIdentity = (Get-MgServicePrincipal -Filter "DisplayName eq '$ManagedIdentityName'")
$GraphID = (Get-MgServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'").id

# Assign roles
foreach ($perm in $getPerms){
    New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $ManagedIdentity.Id `
    -PrincipalId $ManagedIdentity.Id -ResourceId $GraphID -AppRoleId $perm.id
}

İzinleriniz atandıktan sonra, Microsoft Entra portalındaki Yönetilen Kimliğinizin İzinler sekmesi aşağıdaki gibi görünecektir:

Azure Otomasyon Hesabı ile sistem tarafından atanan bir yönetilen kimlik kullanın

Sistem tarafından atanan yönetilen kimlikler, doğrudan Azure Otomasyon Hesabından veya bunların geçerli olduğu kaynaktan oluşturulabilir. Yönetilen Kimlik oluşturmak için aşağıdaki adımları izleyin.

1. Otomasyon Hesabınızı açarak başlayın ve ardından hesap ayarları alanından Kimlik'i seçin.

2. Sistem tarafından atanan Yönetilen Kimlik'i Açık olarak ayarlayın ve ardından Kaydet'i tıklayın.

3. Artık bu eğitimin üst kısmında görüldüğü gibi uygulamalar listesinde Yönetilen Kimliğin listelendiğini göreceksiniz.

Azure Otomasyon Hesabı ile Kullanıcı tarafından atanan bir yönetilen kimlik kullanın

Kullanıcı tarafından atanan Yönetilen Kimlikler, kimlik doğrulaması yapacakları kaynağa manuel olarak atanmalıdır. Yönetilen Kimliği Otomasyon Hesabınıza atamak için aşağıdaki adımları izleyin.

1. Otomasyon Hesabınızı açıp hesap ayarları alanından Kimlik'i seçerek başlayın.

2. Kullanıcı tarafından atanan sekmeyi seçin ve ardından Ekle'yi tıklayın.

3. Listeden aboneliğinizi ve Yönetilen Kimliği seçin ve Ekle'yi tıklayın.

Microsoft Graph PowerShell ile Connect-MgGraph -Identity nasıl kullanılır?

Artık, doğru izinler olmadan atanmış Yönetilen Kimliğe sahip bir Otomasyon Hesabınız var; bunu kullanmak için Microsoft Graph kimlik doğrulama komutlarınıza -Identity parametresini eklemeniz gerekir.

Connect-MgGraph'ı Sistem Tarafından Atanan Yönetilen Kimlikle Kullanma

Sistem tarafından atanan Yönetilen Kimlik ile bağlanırken -Identity parametresini tek başına tanımlamanız yeterlidir; başka kimlik doğrulama komutu gerekmez.

Connect-MgGraph -Identity

Connect-MgGraph'ı Kullanıcı Tarafından Atanan Yönetilen Kimlikle Kullanma

Kullanıcı tarafından atanan bir Yönetilen Kimlik kullanmak için hem -Identity hem de -ClientId parametrelerinin tanımlanması gerekir. Kimlik doğrulama komutunun hangi Yönetilen Kimliğin kullanılacağını bilmesi için Kullanıcı tarafından atanan Yönetilen Kimliğin (hizmet sorumlusu) nesne kimliğini de eklemeniz gerekir.

Connect-MgGraph -Identity -ClientId %Object ID of Managed Identity%

İlgili makaleler