Použití spravované identity k ověření úlohy Azure Stream Analytics ve službě Azure Blob Storage

Ověřování spravované identity pro výstup do služby Azure Blob Storage poskytuje úlohám Stream Analytics přímý přístup k účtu úložiště místo použití připojovací řetězec. Kromě vylepšeného zabezpečení umožňuje tato funkce také zapisovat data do účtu úložiště ve virtuální síti v Rámci Azure.

V tomto článku se dozvíte, jak povolit spravovanou identitu pro výstupy objektů blob úlohy Stream Analytics prostřednictvím webu Azure Portal a prostřednictvím nasazení Azure Resource Manageru.

Vytvoření úlohy Stream Analytics pomocí webu Azure Portal

Nejprve vytvoříte spravovanou identitu pro úlohu Azure Stream Analytics. 

  1. Na webu Azure Portal otevřete úlohu Azure Stream Analytics. 

  2. V levé navigační nabídce vyberte spravovanou identitu umístěnou v části Konfigurovat. Potom zaškrtněte políčko vedle možnosti Použít spravovanou identitu přiřazenou systémem a vyberte Uložit.

    System assigned managed identity

  3. Instanční objekt pro identitu úlohy Stream Analytics se vytvoří v Microsoft Entra ID. Životní cyklus nově vytvořené identity spravuje Azure. Když se úloha Stream Analytics odstraní, azure automaticky odstraní přidruženou identitu (tj. instanční objekt). 

    Při uložení konfigurace se ID objektu (OID) instančního objektu zobrazí jako ID objektu zabezpečení, jak je znázorněno níže:

    Principal ID

    Instanční objekt má stejný název jako úloha Stream Analytics. Pokud je MyASAJobnapříklad název vaší úlohy , název instančního objektu je také MyASAJob. 

Nasazení podle modelu Azure Resource Manager

Pomocí Azure Resource Manageru můžete plně automatizovat nasazení úlohy Stream Analytics. Šablony Resource Manageru můžete nasadit pomocí Azure PowerShellu nebo Azure CLI. Následující příklady používají Azure CLI.

  1. Prostředek Microsoft.StreamAnalytics/streamingjobs se spravovanou identitou můžete vytvořit tak, že do části prostředku šablony Resource Manageru zahrnete následující vlastnost:

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

    Tato vlastnost říká Azure Resource Manageru, aby vytvořil a spravil identitu pro vaši úlohu Stream Analytics. Níže je příklad šablony Resource Manageru, která nasadí úlohu Stream Analytics s povolenou spravovanou identitou a výstupní jímkou objektů blob, která používá spravovanou identitu:

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

    Výše uvedenou úlohu je možné nasadit do skupiny prostředků ExampleGroup pomocí následujícího příkazu Azure CLI:

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. Po vytvoření úlohy můžete pomocí Azure Resource Manageru načíst úplnou definici úlohy.

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

    Výše uvedený příkaz vrátí odpověď podobná následující:

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

    Poznamenejte si id objektu zabezpečení z definice úlohy, která identifikuje spravovanou identitu vaší úlohy v rámci ID Microsoft Entra a použije se v dalším kroku k udělení přístupu k úloze Stream Analytics k účtu úložiště.

  3. Teď, když je úloha vytvořená, najdete v části Udělení přístupu k účtu úložiště v tomto článku úlohu Stream Analytics.

Udělení přístupu k účtu úložiště úloze Stream Analytics

Můžete se rozhodnout, že úlohu Stream Analytics získáte dvěma úrovněmi přístupu:

  1. Přístup na úrovni kontejneru: Tato možnost dává úloze přístup ke konkrétnímu existujícímu kontejneru.
  2. Přístup na úrovni účtu: Tato možnost dává úloze obecný přístup k účtu úložiště, včetně možnosti vytvářet nové kontejnery.

Pokud úlohu nepotřebujete k vytvoření kontejnerů vaším jménem, měli byste zvolit přístup na úrovni kontejneru, protože tato možnost udělí úloze minimální požadovanou úroveň přístupu. Obě možnosti jsou vysvětleny níže pro Azure Portal a příkazový řádek.

Poznámka:

Kvůli globální replikaci nebo latenci ukládání do mezipaměti může dojít ke zpoždění při odvolání nebo udělení oprávnění. Změny by se měly projevit do 8 minut.

Udělení přístupu prostřednictvím webu Azure Portal

Přístup na úrovni kontejneru

  1. V účtu úložiště přejděte do podokna konfigurace kontejneru.

  2. Vyberte Řízení přístupu (IAM) .

  3. Výběrem možnosti Přidat>přiřazení role otevřete stránku Přidat přiřazení role.

  4. Přiřaďte následující roli. Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.

    Nastavení Hodnota
    Role Přispěvatel dat objektů blob úložiště
    Přiřadit přístup k Uživatel, skupina nebo instanční objekt
    Členové <Název úlohy Stream Analytics>

    Screenshot that shows Add role assignment page in Azure portal.

Přístup na úrovni účtu

  1. Přejděte ke svému účtu úložiště.

  2. Vyberte Řízení přístupu (IAM) .

  3. Výběrem možnosti Přidat>přiřazení role otevřete stránku Přidat přiřazení role.

  4. Přiřaďte následující roli. Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.

    Nastavení Hodnota
    Role Přispěvatel dat objektů blob úložiště
    Přiřadit přístup k Uživatel, skupina nebo instanční objekt
    Členové <Název úlohy Stream Analytics>

    Screenshot that shows Add role assignment page in Azure portal.

Udělení přístupu přes příkazový řádek

Přístup na úrovni kontejneru

Pokud chcete udělit přístup ke konkrétnímu kontejneru, spusťte pomocí Azure CLI následující příkaz:

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>

Přístup na úrovni účtu

Pokud chcete udělit přístup k celému účtu, spusťte pomocí Azure CLI následující příkaz:

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>

Vytvoření vstupu nebo výstupu objektu blob

Teď, když je vaše spravovaná identita nakonfigurovaná, jste připraveni přidat prostředek objektu blob jako vstup nebo výstup do úlohy Stream Analytics.

  1. V okně vlastností výstupu úložiště objektů blob v Azure vyberte rozevírací seznam Režim ověřování a zvolte Spravovaná identita. Informace o ostatních vlastnostech výstupu najdete v tématu Vysvětlení výstupů z Azure Stream Analytics. Až budete hotovi, klikněte na Uložit.

    Configure Azure Blob storage output

Povolení přístupu k virtuální síti

Při konfiguraci bran firewall a virtuálních sítí účtu úložiště můžete volitelně povolit síťový provoz z jiných důvěryhodných služby Microsoft. Když se Stream Analytics ověřuje pomocí spravované identity, poskytuje důkaz, že požadavek pochází z důvěryhodné služby. Níže jsou uvedeny pokyny k povolení této výjimky přístupu k virtuální síti.

  1. V konfiguračním podokně účtu úložiště přejděte do podokna Brány firewall a virtuální sítě.
  2. Ujistěte se, že je povolená možnost Povolit důvěryhodným služby Microsoft přístup k tomuto účtu úložiště.
  3. Pokud jste ho povolili, klikněte na Uložit.

Enable VNET access

Odebrání spravované identity

Spravovaná identita vytvořená pro úlohu Stream Analytics se odstraní jenom při odstranění úlohy. Spravovanou identitu není možné odstranit bez odstranění úlohy. Pokud už spravovanou identitu nechcete používat, můžete změnit metodu ověřování pro výstup. Spravovaná identita bude nadále existovat, dokud se úloha nesmazat, a použije se, pokud se rozhodnete znovu použít ověřování spravované identity.

Omezení

Níže jsou aktuální omezení této funkce:

  1. Klasické účty Azure Storage.

  2. Účty Azure bez ID Microsoft Entra.

  3. Přístup s více tenanty se nepodporuje. Instanční objekt vytvořený pro danou úlohu Stream Analytics se musí nacházet ve stejném tenantovi Microsoft Entra, ve kterém byla úloha vytvořena, a nelze ji použít s prostředkem, který se nachází v jiném tenantovi Microsoft Entra.

Další kroky