Azure Data Factory için yönetilen kimlik
UYGULANANLAR: Azure Data Factory Azure Synapse Analytics
İpucu
Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!
Bu makale yönetilen kimliği (eski adıyla Yönetilen Hizmet Kimliği/MSI) ve Azure Data Factory'de nasıl çalıştığını anlamanıza yardımcı olur.
Not
Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Genel bakış
Yönetilen kimlikler, kimlik bilgilerini yönetme gereksinimini ortadan kaldırır. Yönetilen kimlikler, Microsoft Entra kimlik doğrulamasını destekleyen kaynaklara bağlanırken hizmet örneği için bir kimlik sağlar. Örneğin, hizmet, Azure Key Vault gibi kaynaklara erişmek için yönetilen kimlik kullanabilir ve burada veri yöneticileri kimlik bilgilerini güvenli bir şekilde depolayabilir veya depolama hesaplarına erişebilir. Hizmet, Microsoft Entra belirteçleri almak için yönetilen kimliği kullanır.
Desteklenen iki tür yönetilen kimlik vardır:
- Sistem tarafından atanan: Yönetilen kimliği doğrudan bir hizmet örneğinde etkinleştirebilirsiniz. Hizmet oluşturulurken sistem tarafından atanan yönetilen kimliğe izin verdiğinizde, Microsoft Entra içinde, söz konusu hizmet örneğinin yaşam döngüsüne bağlı bir kimlik oluşturulur. Tasarım gereği, yalnızca bu Azure kaynağı Microsoft Entra ID’den belirteç istemek için bu kimliği kullanabilir. Bu nedenle, kaynak silindiğinde, Azure sizin için kimliği otomatik olarak siler.
- Kullanıcı tarafından atanan: Yönetilen kimliği tek başına bir Azure kaynağı olarak da oluşturabilirsiniz. Kullanıcı tarafından atanan bir yönetilen kimlik oluşturabilir ve bunu bir veri fabrikasının bir veya daha fazla örneğine atayabilirsiniz. Kullanıcı tarafından atanan yönetilen kimliklerde kimlik, onu kullanan kaynaklardan ayrı olarak yönetilir.
Not
Güvenilen atlama , kullanıcı tarafından atanan yönetilen kimlikleri kullanamaz. Yalnızca Azure Depolama ve Azure Key Vault'a bağlanmak için sistem tarafından atanan yönetilen kimlikleri kullanabilir.
Yönetilen kimlik aşağıdaki avantajları sağlar:
- Kimlik bilgilerini Azure Key Vault'da depolama; bu kimlik, Azure Key Vault kimlik doğrulaması için kullanılır.
- Azure Blob depolama, Azure Veri Gezgini, Azure Data Lake Storage 1. Nesil, Azure Data Lake Storage 2. Nesil, Azure SQL Database, Azure SQL Yönetilen Örneği, Azure Synapse Analytics, REST, Databricks etkinliği, Web etkinliği ve daha fazlasını içeren, yönetilen kimlik doğrulamasını kullanarak veri depolarına veya hesaplamalara erişin. Ayrıntılar için bağlayıcı ve etkinlik makalelerine bakın.
- Yönetilen kimlik, Azure Key Vault’ta depolanan müşteri tarafından yönetilen anahtarı kullanarak verileri ve meta verileri şifrelemek/şifresini çözmek için de kullanılır ve çift şifreleme sağlar.
Yönetilen Kimlikler için Gerekli Roller
Azure Data Factory'de yönetilen kimlikleri etkili bir şekilde kullanmak için, uygun erişim ve işlevsellik sağlamak için belirli roller atanmalıdır. Gerekli roller aşağıdadır:
Sistem Tarafından Atanan Yönetilen Kimlik
- Okuyucu Rolü: Bu rol, kaynakların meta verilerini okumak için gereklidir.
- Katkıda Bulunan Rolü: Bu rol, yönetilen kimliğin erişmesi gereken kaynakları yönetmek için gereklidir.
Kullanıcı Tarafından Atanan Yönetilen Kimlik
- Yönetilen Kimlik İşleci Rolü: Bu rol, kullanıcı tarafından atanan yönetilen kimliğin yönetimine izin verir.
- Okuyucu Rolü: Bu rol, kaynakların meta verilerini okumak için gereklidir.
- Katkıda Bulunan Rolü: Bu rol, yönetilen kimliğin erişmesi gereken kaynakları yönetmek için gereklidir.
Sistem tarafından atanan yönetilen kimlik
Not
Sistem tarafından atanan yönetilen kimlik, geriye dönük uyumluluk amacıyla belgelerde ve Data Factory Studio'da başka bir yerde 'Yönetilen kimlik' olarak da adlandırılır. Başvuruda bulunurken 'Kullanıcı tarafından atanan yönetilen kimlik'den açıkça bahsedeceğiz.
Sistem tarafından atanan yönetilen kimlik oluşturma
Sistem tarafından atanan yönetilen kimlik aşağıdaki gibi oluşturulur:
- Azure portalı veya PowerShell aracılığıyla bir veri fabrikası oluştururken, yönetilen kimlik her zaman otomatik olarak oluşturulur.
- SDK aracılığıyla veri fabrikası oluştururken, yönetilen kimlik yalnızca oluşturma için fabrika nesnesinde "Identity = new FactoryIdentity()" belirttiğinizde oluşturulur." Bkz. .NET Hızlı Başlangıç - Veri fabrikası oluşturma örneği.
- REST API aracılığıyla veri fabrikası oluştururken, yönetilen kimlik yalnızca istek gövdesinde "kimlik" bölümü belirttiğinizde oluşturulur. BKZ. REST hızlı başlangıcı - veri fabrikası oluşturma örneği.
Hizmet örneğinizin yönetilen kimlik yönergesini aldıktan sonra ilişkili bir yönetilen kimliği olmadığını fark ederseniz, bunu program aracılığıyla kimlik başlatıcısı ile güncelleştirerek açıkça bir kimlik oluşturabilirsiniz:
- PowerShell kullanarak yönetilen kimlik oluşturma
- REST API kullanarak yönetilen kimlik oluşturma
- Azure Resource Manager şablonu kullanarak yönetilen kimlik oluşturma
- SDK kullanarak yönetilen kimlik oluşturma
Not
- Yönetilen kimlik değiştirilemez. Zaten yönetilen kimliğe sahip olan bir hizmet örneğini güncelleştirmenin hiçbir etkisi olmaz ve yönetilen kimlik değişmeden tutulur.
- Fabrika nesnelerinde "identity" parametresini belirtmeden veya REST istek gövdesinde "identity" bölümü belirtmeden zaten yönetilen kimliği olan bir hizmet örneğini güncelleştirirseniz, hata alırsınız.
- Bir hizmet örneğini sildiğinizde, ilişkili yönetilen kimlik de silinir.
PowerShell kullanarak sistem tarafından atanan yönetilen kimlik oluşturma
Set-AzDataFactoryV2 komutunu çağırdığınızda yeni oluşturulan "Identity" alanlarını görürsünüz:
PS C:\> Set-AzDataFactoryV2 -ResourceGroupName <resourceGroupName> -Name <dataFactoryName> -Location <region>
DataFactoryName : ADFV2DemoFactory
DataFactoryId : /subscriptions/<subsID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/ADFV2DemoFactory
ResourceGroupName : <resourceGroupName>
Location : East US
Tags : {}
Identity : Microsoft.Azure.Management.DataFactory.Models.FactoryIdentity
ProvisioningState : Succeeded
REST API kullanarak sistem tarafından atanan yönetilen kimlik oluşturma
Not
Fabrika nesnesinde kimlik parametresini belirtmeden veya REST istek gövdesinde bir kimlik bölümü sağlamadan zaten yönetilen kimliği olan bir hizmet örneğini güncelleştirmeye çalışırsanız bir hata alırsınız.
İstek gövdesindeki "kimlik" bölümüyle aşağıdaki API'yi çağırın:
PATCH https://management.azure.com/subscriptions/<subsID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<data factory name>?api-version=2018-06-01
İstek gövdesi: "identity" ekleyin: { "type": "SystemAssigned" }.
{
"name": "<dataFactoryName>",
"location": "<region>",
"properties": {},
"identity": {
"type": "SystemAssigned"
}
}
Yanıt: Yönetilen kimlik otomatik olarak oluşturulur ve "kimlik" bölümü buna göre doldurulur.
{
"name": "<dataFactoryName>",
"tags": {},
"properties": {
"provisioningState": "Succeeded",
"loggingStorageAccountKey": "**********",
"createTime": "2017-09-26T04:10:01.1135678Z",
"version": "2018-06-01"
},
"identity": {
"type": "SystemAssigned",
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
},
"id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>",
"type": "Microsoft.DataFactory/factories",
"location": "<region>"
}
Azure Resource Manager şablonu kullanarak sistem tarafından atanan yönetilen kimlik oluşturma
Şablon: add "identity": { "type": "SystemAssigned" }.
{
"contentVersion": "1.0.0.0",
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"resources": [{
"name": "<dataFactoryName>",
"apiVersion": "2018-06-01",
"type": "Microsoft.DataFactory/factories",
"location": "<region>",
"identity": {
"type": "SystemAssigned"
}
}]
}
SDK kullanarak sistem tarafından atanan yönetilen kimlik oluşturma
Identity=new FactoryIdentity() ile create_or_update işlevini çağırın. .NET kullanan örnek kod:
Factory dataFactory = new Factory
{
Location = <region>,
Identity = new FactoryIdentity()
};
client.Factories.CreateOrUpdate(resourceGroup, dataFactoryName, dataFactory);
Sistem tarafından atanan yönetilen kimliği alma
Yönetilen kimliği Azure portalından veya program aracılığıyla alabilirsiniz. Aşağıdaki bölümlerde bazı örnekler gösterilmektedir.
İpucu
Yönetilen kimliği görmüyorsanız, hizmet örneğinizi güncelleştirerek yönetilen kimlik oluşturun.
Azure portalını kullanarak sistem tarafından atanan yönetilen kimliği alma
Yönetilen kimlik bilgilerini Azure portalından ( veri fabrikanız ->> Özellikler) bulabilirsiniz.
- Yönetilen Kimlik Nesne Kimliği
- Yönetilen Kimlik Kiracısı
Yönetilen kimlik bilgileri, Azure Blob, Azure Data Lake Storage, Azure Key Vault gibi yönetilen kimlik kimlik doğrulamasını destekleyen bağlı hizmet oluşturduğunuzda da gösterilir.
Azure veri kaynaklarınıza Data Factory manged kimliğine yönelik izinler vermek için şu adımları izleyin. Ayrıntılı adımlar için bkz. Azure portalı kullanarak Azure rolleri atama.
Veri kaynağı için Azure portalı sayfasında Erişim denetimi (IAM) öğesini seçin.
Ekle>Rol ataması ekle’yi seçin.
Veri kaynağına gerekli erişimi vermek için gerekli rolü seçin. Bu, veri fabrikasının gerektirdiği veri kaynağına ve izinlere bağlı olarak farklılık gösterebilir. Örneğin, veri fabrikasının yalnızca Azure SQL Server'dan okuması gerekiyorsa Okuyucu rolünü seçin.
Üyeler sekmesinde Yönetilen kimlik öğesini ve ardından Üye seç öğesini seçin.
Azure aboneliği seçin.
Sistem tarafından atanan yönetilen kimlik öğesinin altında Veri Fabrikası öğesini seçip ve ardından bir veri fabrikası belirleyin. Bu kimliği bulmak için nesne kimliğini veya veri fabrikası adını da (yönetilen kimlik adı olarak) kullanabilirsiniz. Yönetilen kimliğin uygulama kimliğini almak için PowerShell'i kullanın.
Gözden geçirme + atama sekmesinde Gözden geçir + ata’yı seçerek rolü atayın.
PowerShell kullanarak sistem tarafından atanan yönetilen kimliği alma
Yönetilen kimlik sorumlusu kimliği ve kiracı kimliği, belirli bir hizmet örneğini aşağıdaki gibi aldığınızda döndürülür. Erişim vermek için PrincipalId değerini kullanın:
PS C:\> (Get-AzDataFactoryV2 -ResourceGroupName <resourceGroupName> -Name <dataFactoryName>).Identity
PrincipalId TenantId
----------- --------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb aaaabbbb-0000-cccc-1111-dddd2222eeee
Uygulama kimliğini, sorumlu kimliğin üzerine kopyalayıp parametre olarak asıl kimlikli Microsoft Entra ID komutunun altında çalıştırarak alabilirsiniz.
PS C:\> Get-AzADServicePrincipal -ObjectId aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
ServicePrincipalNames : {00001111-aaaa-2222-bbbb-3333cccc4444, https://identity.azure.net/P86P8g6nt1QxfPJx22om8MOooMf/Ag0Qf/nnREppHkU=}
ApplicationId : 00001111-aaaa-2222-bbbb-3333cccc4444
DisplayName : ADFV2DemoFactory
Id : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
Type : ServicePrincipal
REST API kullanarak yönetilen kimliği alma
Yönetilen kimlik sorumlusu kimliği ve kiracı kimliği, belirli bir hizmet örneğini aşağıdaki gibi aldığınızda döndürülür.
İstekte aşağıdaki API'yi çağırın:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}?api-version=2018-06-01
Yanıt: Aşağıdaki örnekte gösterildiği gibi yanıt alırsınız. "Kimlik" bölümü buna göre doldurulur.
{
"name":"<dataFactoryName>",
"identity":{
"type":"SystemAssigned",
"principalId":"bbbbbbbb-cccc-dddd-2222-333333333333",
"tenantId":"aaaabbbb-0000-cccc-1111-dddd2222eeee"
},
"id":"/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>",
"type":"Microsoft.DataFactory/factories",
"properties":{
"provisioningState":"Succeeded",
"createTime":"2020-02-12T02:22:50.2384387Z",
"version":"2018-06-01",
"factoryStatistics":{
"totalResourceCount":0,
"maxAllowedResourceCount":0,
"factorySizeInGbUnits":0,
"maxAllowedFactorySizeInGbUnits":0
}
},
"eTag":"\"03006b40-XXXX-XXXX-XXXX-5e43617a0000\"",
"location":"<region>",
"tags":{
}
}
İpucu
Yönetilen kimliği bir ARM şablonundan almak için ARM JSON'a bir çıkışlar bölümü ekleyin:
{
"outputs":{
"managedIdentityObjectId":{
"type":"string",
"value":"[reference(resourceId('Microsoft.DataFactory/factories', parameters('<dataFactoryName>')), '2018-06-01', 'Full').identity.principalId]"
}
}
}
Kullanıcı tarafından atanan yönetilen kimlik
Microsoft Entra Id'de kullanıcı tarafından atanan yönetilen kimlikler oluşturabilir, silebilir, yönetebilirsiniz. Daha fazla ayrıntı için Bkz. Azure portalını kullanarak kullanıcı tarafından atanan yönetilen kimliğe rol oluşturma, listeleme, silme veya atama.
Kullanıcı tarafından atanan yönetilen kimliği kullanmak için önce UAMI için hizmet örneğinizde kimlik bilgileri oluşturmanız gerekir.
İlgili içerik
- Kimlik bilgileri oluşturun.
Yönetilen kimliğin ne zaman ve nasıl kullanılacağını gösteren aşağıdaki konulara bakın:
- Kimlik bilgilerini Azure Key Vault'ta depolayın.
- Azure kaynakları kimlik doğrulaması için yönetilen kimlikleri kullanarak Azure Data Lake Store'dan/Azure Data Lake Store'a veri kopyalama.
Azure Data Factory'de yönetilen kimliğin temel aldığı Azure kaynakları için yönetilen kimlikler hakkında daha fazla arka plan için bkz . Azure Kaynakları için Yönetilen Kimliklere Genel Bakış .
Bkz. Azure Data Factory'de yönetilen kimlikler için de geçerli olan yönetilen kimlik sınırlamaları .