Identitas Terkelola untuk Azure Data Factory

BERLAKU UNTUK:Azure Data Factory Azure Synapse Analytics

Tip

Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!

Artikel ini membantu Anda memahami identitas terkelola (sebelumnya dikenal sebagai Identitas Layanan Terkelola/MSI) dan cara kerjanya di Azure Data Factory.

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Gambaran Umum

Identitas terkelola menghilangkan kebutuhan untuk mengelola info masuk. Identitas terkelola memberikan identitas untuk instans layanan saat menyambungkan ke sumber daya yang mendukung autentikasi Microsoft Entra. Misalnya, layanan dapat menggunakan identitas terkelola untuk mengakses sumber daya seperti Azure Key Vault, tempat admin data dapat menyimpan info masuk atau mengakses akun penyimpanan dengan aman. Layanan ini menggunakan identitas terkelola untuk mendapatkan token Microsoft Entra.

Ada dua jenis identitas terkelola yang didukung:

  • Ditetapkan sistem: Anda dapat mengaktifkan identitas terkelola secara langsung pada instans layanan. Saat Anda mengizinkan identitas terkelola yang ditetapkan sistem selama pembuatan layanan, identitas dibuat di Microsoft Entra terikat dengan siklus hidup instans layanan tersebut. Secara desain, hanya sumber daya Azure yang dapat menggunakan identitas ini untuk meminta token dari Microsoft Entra ID. Jadi, ketika sumber daya dihapus, Azure secara otomatis menghapus identitas untuk Anda.
  • Ditetapkan pengguna: Anda juga dapat membuat identitas terkelola sebagai sumber daya Azure mandiri. Anda dapat membuat identitas terkelola yang ditetapkan pengguna dan menetapkannya ke satu atau beberapa instans pabrik data. Pada identitas terkelola yang ditetapkan pengguna, identitas dikelola secara terpisah dari sumber daya yang menggunakannya.

Identitas terkelola memberikan keuntungan di bawah ini:

  • Simpan kredensial di Azure Key Vault, tempat identitas terkelola kasus digunakan untuk autentikasi Azure Key Vault.
  • Akses penyimpanan data atau komputasi menggunakan autentikasi identitas terkelola, termasuk penyimpanan Azure Blob, Azure Data Explorer, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics, REST, aktivitas Databricks, aktivitas Web, dan banyak lagi. Periksa artikel konektor dan aktivitas untuk detailnya.
  • Identitas terkelola juga digunakan untuk mengenkripsi/mendekripsi data dan metadata menggunakan kunci yang dikelola pelanggan yang disimpan di Azure Key Vault, yang menyediakan enkripsi ganda.

Identitas terkelola yang ditetapkan sistem

Catatan

Identitas terkelola yang ditetapkan sistem juga disebut sebagai 'Identitas terkelola' di tempat lain dalam dokumentasi dan di Data Factory Studio untuk tujuan kompatibilitas mundur. Kami akan secara eksplisit menyebutkan 'Identitas terkelola yang ditetapkan pengguna' ketika merujuknya.

Hasilkan identitas terkelola yang ditetapkan sistem

Identitas terkelola yang ditetapkan sistem dibuat sebagai berikut:

  • Saat membuat pabrik data melalui portal Microsoft Azure atau PowerShell, identitas terkelola akan selalu dibuat secara otomatis.
  • Saat membuat pabrik data melalui SDK, identitas terkelola akan dibuat hanya jika Anda menentukan "Identity = new FactoryIdentity()" di objek pabrik untuk dibuat. Lihat contoh di .NET Quickstart - Buat data pabrik.
  • Saat membuat pabrik data melalui REST API, identitas terkelola hanya akan dibuat jika Anda menentukan bagian "identitas" di isi permintaan. Lihat contoh di .REST quickstart - buat pabrik data.

Jika menemukan instans layanan Anda tidak memiliki identitas terkelola yang terkait dengan instruksi ambil identitas terkelola berikut, Anda dapat membuatnya secara eksplisit dengan memperbaruinya dengan inisiator identitas secara terprogram:

Catatan

  • Identitas terkelola tidak bisa diubah. Memperbarui instans layanan yang sudah memiliki identitas terkelola tidak akan berdampak apa pun, dan identitas terkelola tetap tidak berubah.
  • Jika Anda memperbarui instans layanan yang sudah memiliki identitas terkelola tanpa menentukan parameter "identitas" di objek pabrik atau ruang kerja atau tanpa menentukan bagian "identitas" di isi permintaan REST, Anda akan mendapatkan kesalahan.
  • Saat Anda menghapus instans layanan, identitas terkelola terkait juga akan dihapus.

Buat identitas terkelola yang ditetapkan sistem menggunakan PowerShell

Perintah panggil Set-AzDataFactoryV2, lalu Anda melihat bidang "Identitas" yang baru dibuat:

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

Buat identitas terkelola yang ditetapkan sistem menggunakan REST API

Catatan

Jika Anda mencoba memperbarui instans layanan yang sudah memiliki identitas terkelola tanpa menentukan parameter identitas di objek pabrik atau memberikan bagian identitas di isi permintaan REST, Anda akan mendapatkan kesalahan.

Panggil API di bawah ini dengan bagian "identitas" di isi permintaan:

PATCH https://management.azure.com/subscriptions/<subsID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<data factory name>?api-version=2018-06-01

Isi permintaan: tambahkan "identitas": { "jenis": "SystemAssigned" }.

{
    "name": "<dataFactoryName>",
    "location": "<region>",
    "properties": {},
    "identity": {
        "type": "SystemAssigned"
    }
}

Respons: identitas terkelola dibuat secara otomatis, dan bagian "identitas" diisi sesuai.

{
    "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>"
}

Buat identitas terkelola yang ditetapkan sistem menggunakan templat Azure Resource Manager

Templat: tambahkan "identitas": { "jenis": "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"
        }
    }]
}

Buat identitas terkelola yang ditetapkan sistem menggunakan SDK

Panggil fungsi create_or_update dengan Identity=new FactoryIdentity(). Sampel kode menggunakan .NET:

Factory dataFactory = new Factory
{
    Location = <region>,
    Identity = new FactoryIdentity()
};
client.Factories.CreateOrUpdate(resourceGroup, dataFactoryName, dataFactory);

Mengambil identitas terkelola yang ditetapkan sistem

Anda dapat mengambil identitas terkelola dari portal Microsoft Azure atau secara terprogram. Bagian berikut ini memperlihatkan beberapa sampel.

Tip

Jika Anda tidak melihat identitas terkelola, buat identitas terkelola dengan memperbarui instans layanan.

Mengambil identitas terkelola yang ditetapkan sistem di portal Microsoft Azure

Anda dapat menemukan informasi identitas terkelola dari portal Microsoft Azure -> pabrik data Anda -> Properti.

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

  • ID objek identitas terkelola
  • Penyewa Identitas Terkelola

Informasi identitas terkelola juga akan muncul saat Anda membuat layanan tertaut, yang mendukung autentikasi identitas terkelola, seperti Azure Blob, Azure Data Lake Storage, Azure Key Vault, dll.

Untuk memberikan izin, ikuti langkah berikut ini. Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.

  1. Pilih Kontrol Akses (IAM) .

  2. Pilih Tambahkan Tambahkan>penetapan peran.

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

  3. Pada tab Anggota, pilih Identitas terkelola, kemudian pilih Pilih anggota.

  4. Pilih langganan Azure Anda.

  5. Di bawah Identitas terkelola yang ditetapkan oleh sistem, pilih Azure Data Factory, lalu pilih pabrik data. Anda juga dapat menggunakan ID objek ataupun nama pabrik data (sebagai nama identitas terkelola) untuk menemukan identitas ini. Untuk mendapatkan ID aplikasi identitas terkelola, silakan gunakan PowerShell.

  6. Di tab Tinjau + tetapkan, pilih Tinjau + tetapkan untuk menetapkan peran.

Ambil identitas terkelola yang ditetapkan sistem menggunakan PowerShell

ID utama identitas terkelola dan ID penyewa akan ditampilkan ketika Anda mendapatkan instans layanan tertentu sebagai berikut. Gunakan PrincipalId untuk memberikan akses:

PS C:\> (Get-AzDataFactoryV2 -ResourceGroupName <resourceGroupName> -Name <dataFactoryName>).Identity

PrincipalId                          TenantId
-----------                          --------
765ad4ab-XXXX-XXXX-XXXX-51ed985819dc 72f988bf-XXXX-XXXX-XXXX-2d7cd011db47

Anda bisa mendapatkan ID aplikasi dengan menyalin ID utama di atas, lalu menjalankan perintah ID Microsoft Entra di bawah ini dengan ID utama sebagai parameter.

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

Ambil identitas terkelola menggunakan REST API

ID utama identitas terkelola dan ID penyewa akan ditampilkan ketika Anda mendapatkan instans layanan tertentu sebagai berikut.

Hubungi API di bawah ini dalam permintaan:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}?api-version=2018-06-01

Respons: Anda akan mendapatkan respons seperti yang ditunjukkan pada contoh di bawah ini. Bagian "identitas" diisi sesuai.

{
    "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":{

    }
}

Tip

Untuk mengambil identitas terkelola dari templat ARM, tambahkan bagian output di ARM JSON:

{
    "outputs":{
        "managedIdentityObjectId":{
            "type":"string",
            "value":"[reference(resourceId('Microsoft.DataFactory/factories', parameters('<dataFactoryName>')), '2018-06-01', 'Full').identity.principalId]"
        }
    }
}

Identitas terkelola yang ditetapkan pengguna

Anda dapat membuat, menghapus, mengelola identitas terkelola yang ditetapkan pengguna di ID Microsoft Entra. Untuk detail selengkapnya, lihat Membuat, mencantumkan, menghapus, atau menetapkan peran ke identitas terkelola yang ditetapkan pengguna menggunakan portal Microsoft Azure.

Untuk menggunakan identitas terkelola yang ditetapkan pengguna, Anda harus terlebih dahulu membuat info masuk di instans layanan untuk UAMI.

Lihat topik berikut yang memperkenalkan kapan dan cara menggunakan identitas terkelola:

Lihat Identitas Terkelola untuk Gambaran Umum Sumber Daya Azure untuk latar belakang selengkapnya tentang identitas terkelola untuk sumber daya Azure, yang menjadi dasar identitas terkelola di Azure Data Factory.

Lihat Batasan identitas terkelola, yang juga berlaku untuk identitas terkelola di Azure Data Factory.