Azure Stream Analytics işinizin kimliğini doğrulamak için Yönetilen Kimlik'i kullanarak Azure Blob Depolama

Azure Blob depolama çıkışı için Yönetilen Kimlik kimlik doğrulaması, Stream Analytics işlerinin bağlantı dizesi kullanmak yerine depolama hesabına doğrudan erişmesini sağlar. Geliştirilmiş güvenliğe ek olarak, bu özellik Azure'daki bir Sanal Ağ (VNET) içindeki bir depolama hesabına veri yazmanızı da sağlar.

Bu makalede, Bir Stream Analytics işinin Blob çıktıları için Yönetilen Kimliği Azure portalı üzerinden ve bir Azure Resource Manager dağıtımı aracılığıyla nasıl etkinleştirileceği gösterilmektedir.

Azure portalını kullanarak Stream Analytics işi oluşturma

İlk olarak, Azure Stream Analytics işiniz için bir yönetilen kimlik oluşturursunuz. 

  1. Azure portalında Azure Stream Analytics işinizi açın. 

  2. Sol gezinti menüsünde Yapılandır'ın altında bulunan Yönetilen Kimlik'i seçin. Ardından Sistem Tarafından Atanan Yönetilen Kimliği Kullan'ın yanındaki kutuyu işaretleyin ve Kaydet'i seçin.

    System assigned managed identity

  3. Stream Analytics işinin kimliği için bir hizmet sorumlusu Microsoft Entra Id'de oluşturulur. Yeni oluşturulan kimliğin yaşam döngüsü Azure tarafından yönetilir. Stream Analytics işi silindiğinde, ilişkili kimlik (yani hizmet sorumlusu) Azure tarafından otomatik olarak silinir. 

    Yapılandırmayı kaydettiğinizde, hizmet sorumlusunun Nesne Kimliği (OID) aşağıda gösterildiği gibi Asıl Kimlik olarak listelenir:

    Principal ID

    Hizmet sorumlusu, Stream Analytics işiyle aynı ada sahiptir. Örneğin, işinizin adı ise MyASAJob, hizmet sorumlusunun adı da MyASAJobolur. 

Azure Resource Manager dağıtımı

Azure Resource Manager'ı kullanarak Stream Analytics işinizin dağıtımını tam olarak otomatikleştirebilirsiniz. Resource Manager şablonlarını Azure PowerShell veya Azure CLI kullanarak dağıtabilirsiniz. Aşağıdaki örneklerde Azure CLI kullanılmaktadır.

  1. Resource Manager şablonunuzun kaynak bölümüne aşağıdaki özelliği ekleyerek Yönetilen Kimlik ile bir Microsoft.StreamAnalytics/streamingjobs kaynağı oluşturabilirsiniz:

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

    Bu özellik, Azure Resource Manager'a Stream Analytics işiniz için kimlik oluşturmasını ve yönetmesini söyler. Aşağıda, Yönetilen Kimlik etkinleştirilmiş bir Stream Analytics işi ve Yönetilen Kimlik kullanan bir Blob çıkış havuzu dağıtan örnek bir Resource Manager şablonu verilmiştir:

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

    Yukarıdaki iş aşağıdaki Azure CLI komutu kullanılarak ExampleGroup Kaynak grubuna dağıtılabilir:

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. İş oluşturulduktan sonra, işin tam tanımını almak için Azure Resource Manager'ı kullanabilirsiniz.

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

    Yukarıdaki komut aşağıdakine benzer bir yanıt döndürür:

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

    İş tanımındaki principalId değerini not alın. Bu, işinizin Yönetilen Kimliğini Microsoft Entra Kimliği içinde tanımlar ve bir sonraki adımda Stream Analytics iş hesabına depolama hesabına erişim vermek için kullanılacaktır.

  3. İş oluşturulduğuna göre, bu makalenin Stream Analytics işine depolama hesabınıza erişim verme bölümüne bakın.

Stream Analytics işinin depolama hesabınıza erişmesini sağlayın

Stream Analytics işinize vermeyi seçebileceğiniz iki erişim düzeyi vardır:

  1. Kapsayıcı düzeyi erişimi: Bu seçenek, işin belirli bir mevcut kapsayıcıya erişmesini sağlar.
  2. Hesap düzeyinde erişim: Bu seçenek, işe yeni kapsayıcılar oluşturma da dahil olmak üzere depolama hesabına genel erişim sağlar.

Sizin yerinize kapsayıcı oluşturmak için işe ihtiyacınız yoksa Kapsayıcı düzeyi erişimi'ni seçmeniz gerekir çünkü bu seçenek işe gereken en düşük erişim düzeyini verir. Azure portalı ve komut satırı için her iki seçenek de aşağıda açıklanmıştır.

Dekont

Genel çoğaltma veya önbelleğe alma gecikmesi nedeniyle izinler iptal edildiğinde veya verildiğinde bir gecikme olabilir. Değişiklikler 8 dakika içinde yansıtılmalıdır.

Azure portalı üzerinden erişim izni verme

Kapsayıcı düzeyi erişimi

  1. Depolama hesabınızda kapsayıcının yapılandırma bölmesine gidin.

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

  3. Rol ataması ekle sayfasını açmak için Rol ataması ekle'yi> seçin.

  4. Aşağıdaki rolü atayın. Ayrıntılı adımlar için bkz. Azure portalı kullanarak Azure rolleri atama.

    Ayar Değer
    Rol Depolama Blobu Veri Katılımcısı
    Şu kişiye erişim ata: Kullanıcı, grup veya hizmet sorumlusu
    Üyeler <Stream Analytics işinizin adı>

    Screenshot that shows Add role assignment page in Azure portal.

Hesap düzeyi erişimi

  1. Depolama hesabınıza gidin.

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

  3. Rol ataması ekle sayfasını açmak için Rol ataması ekle'yi> seçin.

  4. Aşağıdaki rolü atayın. Ayrıntılı adımlar için bkz. Azure portalı kullanarak Azure rolleri atama.

    Ayar Değer
    Rol Depolama Blobu Veri Katılımcısı
    Şu kişiye erişim ata: Kullanıcı, grup veya hizmet sorumlusu
    Üyeler <Stream Analytics işinizin adı>

    Screenshot that shows Add role assignment page in Azure portal.

Komut satırı aracılığıyla erişim verme

Kapsayıcı düzeyi erişimi

Belirli bir kapsayıcıya erişim vermek için Azure CLI kullanarak aşağıdaki komutu çalıştırın:

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>

Hesap düzeyi erişimi

Hesabın tamamına erişim vermek için Azure CLI kullanarak aşağıdaki komutu çalıştırın:

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>

Blob girişi veya çıkışı oluşturma

Yönetilen kimliğiniz yapılandırıldığına göre, blob kaynağını Stream Analytics işinize giriş veya çıkış olarak eklemeye hazırsınız.

  1. Azure Blob depolama çıkış havuzundaki çıkış özellikleri penceresinde Kimlik doğrulama modu açılan listesini seçin ve Yönetilen Kimlik'i seçin. Diğer çıkış özellikleri hakkında bilgi için bkz . Azure Stream Analytics çıkışlarını anlama. İşiniz bittiğinde Kaydet’e tıklayın.

    Configure Azure Blob storage output

Sanal ağ erişimini etkinleştirme

Depolama hesabınızın Güvenlik duvarlarını ve sanal ağlarını yapılandırırken, isteğe bağlı olarak diğer güvenilen Microsoft hizmetleri gelen ağ trafiğine izin vekleyebilirsiniz. Stream Analytics Yönetilen Kimlik kullanarak kimlik doğrulaması yaparken, isteğin güvenilir bir hizmetten kaynaklandığının kanıtını sağlar. Bu sanal ağ erişim özel durumunu etkinleştirme yönergeleri aşağıdadır.

  1. Depolama hesabının yapılandırma bölmesindeki "Güvenlik duvarları ve sanal ağlar" bölmesine gidin.
  2. "Güvenilen Microsoft hizmetleri bu depolama hesabına erişmesine izin ver" seçeneğinin etkinleştirildiğinden emin olun.
  3. Etkinleştirdiyseniz Kaydet'e tıklayın.

Enable VNET access

Yönetilen Kimliği Kaldır

Stream Analytics işi için oluşturulan Yönetilen Kimlik yalnızca iş silindiğinde silinir. İşi silmeden Yönetilen Kimliği silmenin hiçbir yolu yoktur. Yönetilen Kimlik'i artık kullanmak istemiyorsanız çıktının kimlik doğrulama yöntemini değiştirebilirsiniz. Yönetilen Kimlik, iş silinene kadar var olmaya devam eder ve Yönetilen Kimlik kimlik doğrulamasını yeniden kullanma kararı alırsanız kullanılır.

Sınırlamalar

Bu özelliğin geçerli sınırlamaları aşağıdadır:

  1. Klasik Azure Depolama hesapları.

  2. Microsoft Entra Kimliği olmayan Azure hesapları.

  3. Çok kiracılı erişim desteklenmez. Belirli bir Stream Analytics işi için oluşturulan Hizmet sorumlusu, işin oluşturulduğu Microsoft Entra kiracısında bulunmalıdır ve farklı bir Microsoft Entra kiracısında bulunan bir kaynakla kullanılamaz.

Sonraki adımlar