Gunakan Identitas Terkelola untuk mengautentikasi pekerjaan Azure Stream Analytics Anda ke Azure Blob Storage

Autentikasi Identitas Terkelola untuk output ke penyimpanan Azure Blob memberi pekerjaan Azure Stream Analytics akses langsung ke akun penyimpanan, bukan menggunakan string koneksi. Selain keamanan yang lebih baik, fitur ini juga memungkinkan Anda menulis data ke akun penyimpanan di Virtual Network (VNET) dalam Azure.

Artikel ini menunjukkan cara mengaktifkan Identitas Terkelola untuk output Power BI dari pekerjaan Stream Analytics melalui portal Microsoft Azure dan melalui penyebaran Azure Resource Manager.

Membuat pekerjaan Stream Analytics menggunakan portal Microsoft Azure

Pertama, Anda membuat identitas terkelola untuk pekerjaan Azure Stream Analytics Anda. 

  1. Di portal Microsoft Azure, buka pekerjaan Azure Stream Analytics Anda. 

  2. Dari menu navigasi kiri, pilih Identitas Terkelola yang terletak di bawah Konfigurasikan. Lalu, centang kotak di samping Gunakan Identitas Terkelola yang ditetapkan sistem dan pilih Simpan.

    System assigned managed identity

  3. Perwakilan layanan untuk identitas pekerjaan Azure Stream Analytics dibuat di ID Microsoft Entra. Siklus hidup identitas yang baru dibuat dikelola oleh Azure. Saat pekerjaan Azure Stream Analytics dihapus, identitas terkait (yaitu, perwakilan layanan) secara otomatis dihapus oleh Microsoft Azure. 

    Saat Anda menyimpan konfigurasi, ID Objek (OID) perwakilan layanan tercantum sebagai ID Utama seperti yang ditunjukkan di bawah ini:

    Principal ID

    Perwakilan layanan memiliki nama yang sama dengan tugas Stream Analytics. Misalnya, jika nama pekerjaan Anda adalah MyASAJob, nama perwakilan layanan juga MyASAJob. 

Penyebaran Azure Resource Manager

Dengan Azure Resource Manager, Anda dapat mengotomatiskan penyebaran pekerjaan Stream Analytics Anda sepenuhnya. Anda dapat menyebarkan templat Resource Manager menggunakan Azure PowerShell atau Azure CLI. Contoh di bawah ini menggunakan Azure CLI.

  1. Anda dapat membuat sumber daya Microsoft.StreamAnalytics/streamingjobs dengan Identitas Terkelola dengan menyertakan properti berikut ini di bagian sumber daya pada templat Resource Manager:

    "Identity": {
      "Type": "SystemAssigned",
    },
    

    Properti ini akan meminta Azure Resource Manager membuat dan mengelola identitas untuk pekerjaan Stream Analytics Anda. Berikut ini contoh templat Resource Manager yang menyebarkan pekerjaan Analisis Aliran dengan Identitas Terkelola diaktifkan dan sink output Blob yang menggunakan Identitas Terkelola:

    {
        "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "resources": [
            {
                "apiVersion": "2017-04-01-preview",
                "name": "MyStreamingJob",
                "location": "[resourceGroup().location]",
                "type": "Microsoft.StreamAnalytics/StreamingJobs",
                "identity": {
                    "type": "systemAssigned"
                },
                "properties": {
                    "sku": {
                        "name": "standard"
                    },
                    "outputs":[
                        {
                            "name":"output",
                            "properties":{
                                "serialization": {
                                    "type": "JSON",
                                    "properties": {
                                        "encoding": "UTF8"
                                    }
                                },
                                "datasource":{
                                    "type":"Microsoft.Storage/Blob",
                                    "properties":{
                                        "storageAccounts": [
                                            { "accountName": "MyStorageAccount" }
                                        ],
                                        "container": "test",
                                        "pathPattern": "segment1/{date}/segment2/{time}",
                                        "dateFormat": "yyyy/MM/dd",
                                        "timeFormat": "HH",
                                        "authenticationMode": "Msi"
                                    }
                                }
                            }
                        }
                    ]
                }
            }
        ]
    }
    

    Pekerjaan di atas dapat disebarkan ke grup Sumber Daya ExampleGroup menggunakan perintah Azure CLI di bawah ini:

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. Setelah pekerjaan dibuat, gunakan Azure Resource Manager untuk mengambil definisi lengkap pekerjaan.

    az resource show --ids /subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP}/providers/Microsoft.StreamAnalytics/StreamingJobs/{RESOURCE_NAME}
    

    Perintah di atas akan menampilkan respons seperti di bawah ini:

    {
        "id": "/subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP}/providers/Microsoft.StreamAnalytics/streamingjobs/{RESOURCE_NAME}",
        "identity": {
            "principalId": "{PRINCIPAL_ID}",
            "tenantId": "{TENANT_ID}",
            "type": "SystemAssigned",
            "userAssignedIdentities": null
        },
        "kind": null,
        "location": "West US",
        "managedBy": null,
        "name": "{RESOURCE_NAME}",
        "plan": null,
        "properties": {
            "compatibilityLevel": "1.0",
            "createdDate": "2019-07-12T03:11:30.39Z",
            "dataLocale": "en-US",
            "eventsLateArrivalMaxDelayInSeconds": 5,
            "jobId": "{JOB_ID}",
            "jobState": "Created",
            "jobStorageAccount": null,
            "jobType": "Cloud",
            "outputErrorPolicy": "Stop",
            "package": null,
            "provisioningState": "Succeeded",
            "sku": {
                "name": "Standard"
            }
        },
        "resourceGroup": "{RESOURCE_GROUP}",
        "sku": null,
        "tags": null,
        "type": "Microsoft.StreamAnalytics/streamingjobs"
    }
    

    Perhatikan principalId dari definisi pekerjaan, yang mengidentifikasi Identitas Terkelola pekerjaan Anda dalam ID Microsoft Entra dan akan digunakan pada langkah berikutnya untuk memberikan akses pekerjaan Azure Stream Analytics ke akun penyimpanan.

  3. Setelah pekerjaan dibuat, lihat bagian Memberikan akses pekerjaan Analisis Aliran ke akun penyimpanan Anda di artikel ini.

Memberikan akses pekerjaan Analisis Aliran ke akun penyimpanan Anda

Ada dua tingkat akses yang dapat Anda pilih untuk memberikan pekerjaan Analisis Aliran Anda:

  1. Akses tingkat kontainer: opsi ini memberikan akses pekerjaan ke kontainer tertentu yang ada.
  2. Akses tingkat akun: opsi ini memberikan akses umum pekerjaan ke akun penyimpanan, termasuk kemampuan untuk membuat kontainer baru.

Kecuali Anda membutuhkan pekerjaan untuk membuat kontainer atas nama Anda, Anda harus memilih Akses tingkat kontainer karena opsi ini akan memberikan pekerjaan tingkat akses minimum yang diperlukan. Kedua opsi dijelaskan di bawah ini untuk portal Microsoft Azure dan baris perintah.

Catatan

Karena replikasi global atau latensi penembolokan, dapat terjadi keterlambatan ketika izin dicabut atau diberikan. Perubahan harus terlihat dalam waktu 8 menit.

Memberikan akses melalui portal Microsoft Azure

Akses tingkat kontainer

  1. Navigasi ke panel konfigurasi kontainer di dalam akun penyimpanan Anda.

  2. Pilih Kontrol akses (IAM).

  3. Pilih Tambahkan>Tambahkan penetapan peran untuk membuka halaman Tambahkan penetapan peran.

  4. Tetapkan peran berikut. Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.

    Pengaturan Nilai
    Peran Data blob penyimpanan kontributor
    Tetapkan akses ke Pengguna, grup, atau perwakilan layanan
    Anggota <Nama pekerjaan Stream Analytics Anda>

    Screenshot that shows Add role assignment page in Azure portal.

Akses tingkat akun

  1. Navigasi ke akun penyimpanan Anda.

  2. Pilih Kontrol akses (IAM).

  3. Pilih Tambahkan>Tambahkan penetapan peran untuk membuka halaman Tambahkan penetapan peran.

  4. Tetapkan peran berikut. Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.

    Pengaturan Nilai
    Peran Data blob penyimpanan kontributor
    Tetapkan akses ke Pengguna, grup, atau perwakilan layanan
    Anggota <Nama pekerjaan Stream Analytics Anda>

    Screenshot that shows Add role assignment page in Azure portal.

Memberikan akses melalui baris perintah

Akses tingkat kontainer

Untuk memberikan akses ke kontainer tertentu, jalankan perintah berikut menggunakan Azure CLI:

az role assignment create --role "Storage Blob Data Contributor" --assignee <principal-id> --scope /subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/blobServices/default/containers/<container-name>

Akses tingkat akun

Untuk memberikan akses ke seluruh akun, jalankan perintah berikut menggunakan Azure CLI:

az role assignment create --role "Storage Blob Data Contributor" --assignee <principal-id> --scope /subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>

Membuat input atau output blob

Oleh sebab identitas terkelola Anda telah dikonfigurasi, Anda siap untuk menambahkan sumber daya blob sebagai input atau output ke tugas Azure Stream Analytics Anda.

  1. Di jendela properti output dari sink output penyimpanan Azure Blob, pilih drop-down Mode Autentikasi dan pilih Identitas Terkelola. Untuk informasi mengenai properti output lainnya, lihat Memahami output dari Azure Stream Analytics. Ketika sudah selesai, klik Simpan.

    Configure Azure Blob storage output

Mengaktifkan akses VNet

Saat mengonfigurasi Firewall dan jaringan virtualakun penyimpanan, Anda dapat mengizinkan secara opsional lalu lintas jaringan dari layanan Microsoft tepercaya lainnya. Saat Analisis Aliran mengautentikasi menggunakan Identitas Terkelola, Stream Analytics memberikan bukti bahwa permintaan tersebut berasal dari layanan tepercaya. Di bawah ini adalah instruksi untuk mengaktifkan pengecualian akses VNET ini.

  1. Navigasi ke panel "Firewall dan jaringan virtual" di dalam panel konfigurasi akun penyimpanan.
  2. Pastikan opsi "Izinkan layanan Microsoft tepercaya mengakses akun penyimpanan ini" diaktifkan.
  3. Jika Anda mengaktifkannya, klik Simpan.

Enable VNET access

Menghapus Identitas Terkelola

Identitas Terkelola yang dibuat untuk pekerjaan Analisis Aliran hanya akan dihapus jika tugas dihapus. Anda tidak dapat menghapus Identitas Terkelola tanpa menghapus pekerjaan. Jika tidak ingin menggunakan Identitas Terkelola lagi, Anda dapat mengubah metode autentikasi untuk output. Identitas Terkelola akan terus ada sampai pekerjaan dihapus, dan akan digunakan jika Anda memutuskan untuk menggunakan autentikasi Identitas Terkelola lagi.

Batasan

Berikut ini batasan fitur ini saat ini:

  1. Akun Azure Storage klasik.

  2. Akun Azure tanpa ID Microsoft Entra.

  3. Akses multi-penyewa tidak didukung. Perwakilan layanan yang dibuat untuk pekerjaan Azure Stream Analytics tertentu harus berada di penyewa Microsoft Entra yang sama tempat pekerjaan dibuat, dan tidak dapat digunakan dengan sumber daya yang berada di penyewa Microsoft Entra yang berbeda.

Langkah berikutnya