Azure Data Factory için yönetilen kimlik

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

Bahşiş

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.

Dekont

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.

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.

Sistem tarafından atanan yönetilen kimlik

Dekont

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:

Dekont

  • 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

Dekont

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": "765ad4ab-XXXX-XXXX-XXXX-51ed985819dc",
        "tenantId": "72f988bf-XXXX-XXXX-XXXX-2d7cd011db47"
    },
    "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.

Bahşiş

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.

Shows the Azure portal with the system-managed identity object ID and Identity Tenant for an Azure Data Factory.

  • Yönetilen Kimlik Nesne Kimliği
  • Yönetilen Kimlik Kiracısı

Yönetilen kimlik bilgileri, Azure Blob, Azure Data Lake Depolama, Azure Key Vault gibi yönetilen kimlik kimlik doğrulamasını destekleyen bağlı hizmet oluşturduğunuzda da gösterilir.

İzinleri vermek için şu adımları izleyin. Ayrıntılı adımlar için bkz. Azure portalı kullanarak Azure rolleri atama.

  1. Erişim denetimi (IAM) öğesini seçin.

  2. Ekle>Rol ataması ekle’yi seçin.

    Screenshot that shows Access control (IAM) page with Add role assignment menu open.

  3. Üyeler sekmesinde Yönetilen kimlik'i ve ardından Üye seç'i seçin.

  4. Azure aboneliği seçin.

  5. Sistem tarafından atanan yönetilen kimlik'in altında Data Factory'yi ve ardından bir veri fabrikası seçin. 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.

  6. 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
-----------                          --------
765ad4ab-XXXX-XXXX-XXXX-51ed985819dc 72f988bf-XXXX-XXXX-XXXX-2d7cd011db47

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 765ad4ab-XXXX-XXXX-XXXX-51ed985819dc

ServicePrincipalNames : {76f668b3-XXXX-XXXX-XXXX-1b3348c75e02, https://identity.azure.net/P86P8g6nt1QxfPJx22om8MOooMf/Ag0Qf/nnREppHkU=}
ApplicationId         : 76f668b3-XXXX-XXXX-XXXX-1b3348c75e02
DisplayName           : ADFV2DemoFactory
Id                    : 765ad4ab-XXXX-XXXX-XXXX-51ed985819dc
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":"554cff9e-XXXX-XXXX-XXXX-90c7d9ff2ead",
        "tenantId":"72f988bf-XXXX-XXXX-XXXX-2d7cd011db47"
    },
    "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":{

    }
}

Bahşiş

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.

Yönetilen kimliğin ne zaman ve nasıl kullanılacağını gösteren aşağıdaki konulara bakın:

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ı .