Azure Veri Gezgini kümeniz için yönetilen kimlikleri yapılandırma
Makale
Microsoft Entra kimliğinden yönetilen kimlik, kümenizin Azure Key Vault gibi diğer Microsoft Entra korumalı kaynaklara erişmesini sağlar. Kimlik Azure platformu tarafından yönetilir ve herhangi bir gizli dizi sağlamanızı veya düzenli olarak değiştirmenizi gerektirmez.
Bu makalede, kümenize yönetilen kimliklerin nasıl ekleneceği ve kaldırılacağı gösterilmektedir. Yönetilen kimlikler hakkında daha fazla bilgi için bkz. Yönetilen kimliklere genel bakış.
Not
Azure Veri Gezgini kümeniz abonelikler veya kiracılar arasında geçirilirse Azure Veri Gezgini için yönetilen kimlikler beklendiği gibi davranmaz. Uygulamanın, sistem tarafından atanan bir kimliği kaldırıp sistem tarafından atanan bir kimlik ekleyerek yapılabilmesi için yeni bir kimlik alması gerekir. Aşağı akış kaynaklarının erişim ilkelerinin de yeni kimliği kullanacak şekilde güncelleştirilmiş olması gerekir.
Önceki SDK sürümlerini temel alan kod örnekleri için arşivlenmiş makaleye bakın.
Yönetilen kimlik türleri
Azure Veri Gezgini kümenize iki tür kimlik verilebilir:
Sistem tarafından atanan kimlik: Kümenize bağlıdır ve kaynağınız silinirse silinir. Kümede yalnızca bir sistem tarafından atanan kimlik bulunabilir.
Kullanıcı tarafından atanan kimlik: Kümenize atanabilen tek başına bir Azure kaynağı. Bir kümenin kullanıcı tarafından atanan birden çok kimliği olabilir.
Sistem tarafından atanan kimlik ekleme
Kümenize bağlı ve kümeniz silinirse silinen, sistem tarafından atanan bir kimlik atayın. Kümede yalnızca bir sistem tarafından atanan kimlik bulunabilir. Sistem tarafından atanan kimlikle küme oluşturmak için kümede ek bir özellik ayarlanması gerekir. Aşağıda ayrıntılı olarak açıklandığı gibi Azure portal, C# veya Resource Manager şablonunu kullanarak sistem tarafından atanan kimliği ekleyin.
Kaynaklara erişebilen bir Microsoft Entra uygulaması ve hizmet sorumlusu oluşturun. Abonelik kapsamına rol ataması ekler ve gerekli Directory (tenant) ID, Application IDve Client Secret'yi alırsınız.
Kümenizi oluşturma veya güncelleştirme
Özelliğini kullanarak kümenizi oluşturun veya güncelleştirin Identity :
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client Secret
var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var credentials = new ClientSecretCredential(tenantId, clientId, clientSecret);
var resourceManagementClient = new ArmClient(credentials, subscriptionId);
var resourceGroupName = "testrg";
var subscription = await resourceManagementClient.GetDefaultSubscriptionAsync();
var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value;
var clusters = resourceGroup.GetKustoClusters();
var clusterName = "mykustocluster";
var clusterData = new KustoClusterData(
location: AzureLocation.CentralUS,
sku: new KustoSku(KustoSkuName.StandardE8adsV5, KustoSkuTier.Standard) { Capacity = 5 }
) { Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.SystemAssigned) };
await clusters.CreateOrUpdateAsync(WaitUntil.Completed, clusterName, clusterData);
Kümenizin başarıyla oluşturulup oluşturulmadığını veya bir kimlikle güncelleştirilip güncelleştirilmediğini denetlemek için aşağıdaki komutu çalıştırın:
Sonuç değeriyle birlikte Succeeded içeriyorsaProvisioningState, küme oluşturulmuş veya güncelleştirilmiş ve aşağıdaki özelliklere sahip olmalıdır:
var principalGuid = clusterData.Identity.PrincipalId.GetValueOrDefault();
var tenantGuid = clusterData.Identity.TenantId.GetValueOrDefault();
PrincipalId ve TenantId GUID'lerle değiştirilir. özelliği, TenantId kimliğin ait olduğu Microsoft Entra kiracısını tanımlar.
PrincipalId, kümenin yeni kimliği için benzersiz bir tanımlayıcıdır. Microsoft Entra kimliği içinde hizmet sorumlusu, App Service veya Azure İşlevleri örneğine verdiğiniz adla aynı ada sahiptir.
Azure Resource Manager şablonu kullanarak sistem tarafından atanan kimlik ekleme
Sistem tarafından atanan türü eklemek, Azure'a kümeniz için kimlik oluşturmasını ve yönetmesini bildirir. Türdeki Microsoft.Kusto/clusters herhangi bir kaynak, kaynak tanımına aşağıdaki özellik eklenerek bir kimlikle oluşturulabilir:
Kümede aynı anda hem sistem tarafından atanan hem de kullanıcı tarafından atanan kimlikler bulunabilir.
type Özelliği şu şekilde olacaktır:SystemAssigned,UserAssigned
Küme oluşturulduğunda aşağıdaki ek özelliklere sahiptir:
<TENANTID> ve <PRINCIPALID> GUID'lerle değiştirilir. özelliği, TenantId kimliğin ait olduğu Microsoft Entra kiracısını tanımlar.
PrincipalId, kümenin yeni kimliği için benzersiz bir tanımlayıcıdır. Microsoft Entra kimliği içinde hizmet sorumlusu, App Service veya Azure İşlevleri örneğine verdiğiniz adla aynı ada sahiptir.
Sistem tarafından atanan kimliği kaldırma
Sistem tarafından atanan kimliğin kaldırılması, kimliği Microsoft Entra kimliğinden de siler. Küme kaynağı silindiğinde sistem tarafından atanan kimlikler de Microsoft Entra kimliğinden otomatik olarak kaldırılır. Sistem tarafından atanan kimlik, özelliği devre dışı bırakılarak kaldırılabilir. Aşağıda ayrıntıları verilen Azure portal, C# veya Resource Manager şablonunu kullanarak sistem tarafından atanan kimliği kaldırın.
Kimlik bölmesinde >Sistem tarafından atanan sekmesi:
Durum kaydırıcısını Kapalı konumuna getirin.
Kaydet’i seçin
Sistem tarafından atanan kimliği devre dışı bırakmak için açılır pencerede Evet'i seçin.
Kimlik bölmesi, sistem tarafından atanan kimliğin eklenmesinden öncekiyle aynı koşula geri döner.
C kullanarak sistem tarafından atanan kimliği kaldırma#
Sistem tarafından atanan kimliği kaldırmak için aşağıdakileri çalıştırın:
var cluster = (await clusters.GetAsync(clusterName)).Value;
var clusterPatch = new KustoClusterPatch(clusterData.Location)
{
Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.None)
};
await cluster.UpdateAsync(WaitUntil.Completed, clusterPatch);
Azure Resource Manager şablonu kullanarak sistem tarafından atanan kimliği kaldırma
Sistem tarafından atanan kimliği kaldırmak için aşağıdakileri çalıştırın:
{
"identity": {
"type": "None"
}
}
Not
Kümede aynı anda hem sistem tarafından atanan hem de kullanıcı tarafından atanan kimlikler varsa, sistem tarafından atanan kimlik kaldırma işleminden type sonra özellik UserAssigned
Kullanıcı tarafından atanan kimlik ekleme
Kümenize kullanıcı tarafından atanan bir yönetilen kimlik atayın. Bir kümenin kullanıcı tarafından atanan birden fazla kimliği olabilir. Kullanıcı tarafından atanan kimlikle küme oluşturma, kümede ek bir özelliğin ayarlanmasını gerektirir. Aşağıda ayrıntılı olarak açıklandığı gibi Azure portal, C# veya Resource Manager şablonunu kullanarak kullanıcı tarafından atanan kimliği ekleyin.
Kaynaklara erişebilen bir Microsoft Entra uygulaması ve hizmet sorumlusu oluşturun. Abonelik kapsamına rol ataması ekler ve gerekli Directory (tenant) ID, Application IDve Client Secretalırsınız.
Kümenizi oluşturma veya güncelleştirme
özelliğini kullanarak kümenizi oluşturun veya güncelleştirin Identity :
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client Secret
var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var credentials = new ClientSecretCredential(tenantId, clientId, clientSecret);
var resourceManagementClient = new ArmClient(credentials, subscriptionId);
var resourceGroupName = "testrg";
var subscription = await resourceManagementClient.GetDefaultSubscriptionAsync();
var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value;
var clusters = resourceGroup.GetKustoClusters();
var clusterName = "mykustocluster";
var userIdentityResourceId = new ResourceIdentifier($"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identityName>");
var clusterData = new KustoClusterData(
location: AzureLocation.CentralUS,
sku: new KustoSku(KustoSkuName.StandardE8adsV5, KustoSkuTier.Standard) { Capacity = 5 }
)
{
Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.UserAssigned)
{
UserAssignedIdentities = { { userIdentityResourceId, new UserAssignedIdentity() } }
}
};
await clusters.CreateOrUpdateAsync(WaitUntil.Completed, clusterName, clusterData);
Kümenizin başarıyla oluşturulup oluşturulmadığını veya bir kimlikle güncelleştirilip güncelleştirilmediğini denetlemek için aşağıdaki komutu çalıştırın:
Sonuç değeriyle birlikte Succeeded içeriyorsaProvisioningState, küme oluşturulmuş veya güncelleştirilmiş ve aşağıdaki özelliklere sahip olmalıdır:
var userIdentity = clusterData.Identity.UserAssignedIdentities[userIdentityResourceId];
var principalGuid = userIdentity.PrincipalId.GetValueOrDefault();
var clientGuid = userIdentity.ClientId.GetValueOrDefault();
PrincipalId, Microsoft Entra yönetimi için kullanılan kimliğin benzersiz tanımlayıcısıdır.
ClientId, uygulamanın çalışma zamanı çağrıları sırasında hangi kimliğin kullanılacağını belirtmek için kullanılan yeni kimliği için benzersiz bir tanımlayıcıdır.
Azure Resource Manager şablonu kullanarak kullanıcı tarafından atanan kimlik ekleme
Kaynak tanımına aşağıdaki özellik eklenerek, yerine istenen kimliğin kaynak kimliği eklenerek kullanıcı <RESOURCEID> tarafından atanan bir kimlikle türdeki Microsoft.Kusto/clusters herhangi bir kaynak oluşturulabilir:
PrincipalId, Microsoft Entra yönetimi için kullanılan kimliğin benzersiz tanımlayıcısıdır.
ClientId, uygulamanın çalışma zamanı çağrıları sırasında hangi kimliğin kullanılacağını belirtmek için kullanılan yeni kimliği için benzersiz bir tanımlayıcıdır.
Not
Kümede aynı anda hem sistem tarafından atanan hem de kullanıcı tarafından atanan kimlikler bulunabilir. Bu durumda özelliği type olacaktır SystemAssigned,UserAssigned.
Kullanıcı tarafından atanan yönetilen kimliği kümeden kaldırma
Aşağıda ayrıntılı olarak açıklandığı gibi Azure portal, C# veya Resource Manager şablonunu kullanarak kullanıcı tarafından atanan kimliği kaldırın.
Daha önce oluşturduğunuz kimliği arayın ve seçin.
Kaldır’ı seçin.
Kullanıcı tarafından atanan kimliği kaldırmak için açılır pencerede Evet'i seçin.
Kimlik bölmesi, kullanıcı tarafından atanan kimliğin eklenmesinden öncekiyle aynı koşula geri döner.
C kullanarak kullanıcı tarafından atanan kimliği kaldırma#
Kullanıcı tarafından atanan kimliği kaldırmak için aşağıdakileri çalıştırın:
var cluster = (await clusters.GetAsync(clusterName)).Value;
var clusterUpdate = new KustoClusterPatch(clusterData.Location)
{
Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.UserAssigned)
{
UserAssignedIdentities = { { userIdentityResourceId, null } }
}
};
await cluster.UpdateAsync(WaitUntil.Completed, clusterUpdate);
Azure Resource Manager şablonu kullanarak kullanıcı tarafından atanan kimliği kaldırma
Kullanıcı tarafından atanan kimliği kaldırmak için aşağıdakileri çalıştırın:
Kimlikleri kaldırmak için değerlerini null olarak ayarlayın. Diğer tüm mevcut kimlikler etkilenmez.
Kullanıcı tarafından atanan tüm kimlikleri type kaldırmak için özelliği olur None.
Kümede aynı anda hem sistem tarafından atanan hem de kullanıcı tarafından atanan kimlikler varsa, type özellik kaldırılacak veya SystemAssigned kullanıcı tarafından atanan tüm kimliklerin kaldırılacağı kimliklerle birlikte olurSystemAssigned,UserAssigned.