Sdílet prostřednictvím


Spravované identity pro Azure Synapse Analytics

Tento článek vám pomůže pochopit spravovanou identitu (dříve označovanou jako identita spravované služby neboli MSI) a jak funguje v Azure Synapse.

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Přehled

Spravované identity eliminují potřebu spravovat tyto přihlašovací údaje. Spravované identity poskytují identitu pro danou instanci služby při připojování k prostředkům, které podporují ověřování Microsoft Entra. Služba může spravovanou identitu používat například pro přístup k prostředkům, jako je Azure Key Vault, kde můžou správci dat bezpečně ukládat přihlašovací údaje nebo přistupovat k účtům úložiště. Služba používá spravovanou identitu k získávání tokenů Microsoft Entra.

Existují dva typy podporovaných spravovaných identit:

  • Přiřazená systémem: Spravovanou identitu můžete povolit přímo v instanci služby. Když během vytváření služby povolíte spravovanou identitu přiřazenou systémem, vytvoří se identita v Microsoft Entra, která bude svázaná s životním cyklem dané instance služby. Z podstaty této identity vyplývá, že ji může k vyžadování tokenů z Microsoft Entra ID používat pouze daný prostředek Azure. Takže když je tento prostředek odstraněn, Azure identitu automaticky odstraní. Azure Synapse Analytics vyžaduje, aby společně s pracovním prostorem Synapse byla vytvořena i spravovaná identita přiřazená systémem.
  • Přiřazené uživatelem: Spravovanou identitu můžete vytvořit také jako samostatný prostředek Azure. Máte možnost vytvořit spravovanou identitu přiřazenou uživatelem a přiřadit ji k jedné nebo několika instancím pracovního prostoru Synapse. Spravované identity přiřazené uživatelem se spravují odděleně od prostředků, které ji používají.

Spravovaná identita poskytuje tyto výhody:

  • Uložení přihlašovacích údajů v trezoru Azure Key Vault. V tomto případě se spravovaná identita používá k ověřování přes Azure Key Vault.
  • Přístup k úložištím dat nebo výpočetním prostředkům s využitím ověření na základě spravované identity. Týká se služeb Azure Blob Storage, Azure Data Explorer, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics, REST, aktivit Databricks, webových aktivit a dalších. Podrobnosti najdete v článcích o konektorech a aktivitách.
  • Spravovaná identita se také používá k šifrování/dešifrování dat a metadat pomocí klíče spravovaného zákazníkem uloženého v trezoru Azure Key Vault a poskytuje dvojité šifrování.

Spravovaná identita přiřazená systémem

Poznámka:

Spravovaná identita přiřazená systémem se také označuje jako spravovaná identita jinde v dokumentaci a v uživatelském rozhraní synapse Studia pro účely zpětné kompatibility. Při odkazech na ni explicitně zmíníme spravovanou identitu přiřazenou uživatelem.

Načtení spravované identity přiřazené systémem pomocí webu Azure Portal

Informace o spravované identitě najdete na webu Azure Portal –> váš pracovní prostor Synapse –> Vlastnosti.

Snímek obrazovky webu Azure Portal s ID objektu identity spravovaného systémem pro pracovní prostor Synapse

Informace o spravované identitě se také zobrazí při vytváření propojené služby, která podporuje ověřování spravovaných identit, jako je Azure Blob, Azure Data Lake Storage, Azure Key Vault atd.

Pokud chcete udělit oprávnění, postupujte podle těchto kroků. Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.

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

  2. Vyberte Přidat>Přidat přiřazení role.

    Snímek obrazovky znázorňující stránku Řízení přístupu (IAM) s otevřenou nabídkou Přidat přiřazení role

  3. Na kartě Členové vyberte Spravovaná identita a pak vyberte Vybrat členy.

  4. Vyberte své předplatné Azure.

  5. V části Spravovaná identita přiřazená systémem vyberte pracovní prostor Synapse a pak vyberte pracovní prostor. K vyhledání této identity můžete použít také ID objektu nebo název pracovního prostoru (jako název spravované identity). K získání ID aplikace spravované identity použijte PowerShell.

  6. Na kartě Zkontrolovat a přiřadit vyberte možnost Zkontrolovat a přiřadit a přiřaďte roli.

Načtení spravované identity přiřazené systémem pomocí PowerShellu

ID objektu zabezpečení spravované identity a ID tenanta se vrátí, když získáte konkrétní instanci služby následujícím způsobem. Pomocí PrincipalId udělte přístup:

PS C:\> (Get-AzSynapseWorkspace -ResourceGroupName <resourceGroupName> -Name <workspaceName>).Identity

IdentityType   PrincipalId                          TenantId                            
------------   -----------                          --------                            
SystemAssigned aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb aaaabbbb-0000-cccc-1111-dddd2222eeee

ID aplikace můžete získat zkopírováním výše uvedeného ID objektu zabezpečení a spuštěním pod příkazem Microsoft Entra ID s ID objektu zabezpečení jako parametrem.

PS C:\> Get-AzADServicePrincipal -ObjectId aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb

ServicePrincipalNames : {00001111-aaaa-2222-bbbb-3333cccc4444, https://identity.azure.net/P86P8g6nt1QxfPJx22om8MOooMf/Ag0Qf/nnREppHkU=}
ApplicationId         : 00001111-aaaa-2222-bbbb-3333cccc4444
DisplayName           : <workspaceName>
Id                    : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
Type                  : ServicePrincipal

Načtení spravované identity pomocí rozhraní REST API

ID objektu zabezpečení spravované identity a ID tenanta se vrátí, když získáte konkrétní instanci služby následujícím způsobem.

Volání následujícího rozhraní API v požadavku:

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

Odpověď: Dostanete odpověď, jak je znázorněno v následujícím příkladu. Oddíl "identita" se odpovídajícím způsobem naplní.

{
  "properties": {
    "defaultDataLakeStorage": {
      "accountUrl": "https://exampledatalakeaccount.dfs.core.windows.net",
      "filesystem": "examplefilesystem"
    },
    "encryption": {
      "doubleEncryptionEnabled": false
    },
    "provisioningState": "Succeeded",
    "connectivityEndpoints": {
      "web": "https://web.azuresynapse.net?workspace=%2fsubscriptions%2{subscriptionId}%2fresourceGroups%2f{resourceGroupName}%2fproviders%2fMicrosoft.Synapse%2fworkspaces%2f{workspaceName}",
      "dev": "https://{workspaceName}.dev.azuresynapse.net",
      "sqlOnDemand": "{workspaceName}-ondemand.sql.azuresynapse.net",
      "sql": "{workspaceName}.sql.azuresynapse.net"
    },
    "managedResourceGroupName": "synapseworkspace-managedrg-f77f7cf2-XXXX-XXXX-XXXX-c4cb7ac3cf4f",
    "sqlAdministratorLogin": "sqladminuser",
    "privateEndpointConnections": [],
    "workspaceUID": "e56f5773-XXXX-XXXX-XXXX-a0dc107af9ea",
    "extraProperties": {
      "WorkspaceType": "Normal",
      "IsScopeEnabled": false
    },
    "publicNetworkAccess": "Enabled",
    "cspWorkspaceAdminProperties": {
      "initialWorkspaceAdminObjectId": "3746a407-XXXX-XXXX-XXXX-842b6cf1fbcc"
    },
    "trustedServiceBypassEnabled": false
  },
  "type": "Microsoft.Synapse/workspaces",
  "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}",
  "location": "eastus",
  "name": "{workspaceName}",
  "identity": {
    "type": "SystemAssigned",
    "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222"
  },
  "tags": {}
}

Tip

Pokud chcete načíst spravovanou identitu ze šablony ARM, přidejte do JSON ARM oddíl s výstupy :

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

Generování spravované identity přiřazené systémem

Spravovaná identita přiřazená systémem se vygeneruje takto:

  • Při vytváření pracovního prostoru Synapse prostřednictvím webu Azure Portal nebo PowerShellu se spravovaná identita vždy vytvoří automaticky.
  • Při vytváření pracovního prostoru prostřednictvím sady SDK se spravovaná identita vytvoří pouze v případě, že v objektu pracovního prostoru Synapse pro vytvoření zadáte Identitu = nová spravovaná identita." Podívejte se na příklad v rychlém startu .NET – Vytvoření datové továrny.
  • Při vytváření pracovního prostoru Synapse prostřednictvím rozhraní REST API se spravovaná identita vytvoří jenom v případě, že v textu požadavku zadáte část Identita. Podívejte se na příklad v rychlém startu REST – vytvoření datové továrny.

Pokud zjistíte, že vaše instance služby nemá přidruženou spravovanou identitu přidruženou k následující instrukci spravované identity , můžete ji explicitně vygenerovat tak, že ji aktualizujete pomocí iniciátoru identity prostřednictvím kódu programu:

Poznámka:

  • Spravovanou identitu nelze upravit. Aktualizace instance služby, která už má spravovanou identitu, nebude mít žádný vliv a spravovaná identita se zachová beze změny.
  • Pokud aktualizujete instanci služby, která už má spravovanou identitu bez zadání parametru identity v objektech továrny nebo pracovního prostoru nebo bez zadání oddílu identity v textu požadavku REST, zobrazí se chyba.
  • Když odstraníte instanci služby, přidružená spravovaná identita se odstraní společně.

Generování spravované identity přiřazené systémem pomocí PowerShellu

Zavolejte příkaz New-AzSynapseWorkspace a pak uvidíte nově vygenerovaná pole Identity:

PS C:\> $password = ConvertTo-SecureString -String "****" -AsPlainText -Force
PS C:\> $creds = New-Object System.Management.Automation.PSCredential ("ContosoUser", $password)
PS C:\> New-AzSynapseWorkspace -ResourceGroupName <resourceGroupName> -Name <workspaceName> -Location <region> -DefaultDataLakeStorageAccountName <storageAccountName> -DefaultDataLakeStorageFileSystem <fileSystemName> -SqlAdministratorLoginCredential $creds

DefaultDataLakeStorage           : Microsoft.Azure.Commands.Synapse.Models.PSDataLakeStorageAccountDetails
ProvisioningState                : Succeeded
SqlAdministratorLogin            : ContosoUser
VirtualNetworkProfile            :
Identity                         : Microsoft.Azure.Commands.Synapse.Models.PSManagedIdentity
ManagedVirtualNetwork            :
PrivateEndpointConnections       : {}
WorkspaceUID                     : <workspaceUid>
ExtraProperties                  : {[WorkspaceType, Normal], [IsScopeEnabled, False]}
ManagedVirtualNetworkSettings    :
Encryption                       : Microsoft.Azure.Commands.Synapse.Models.PSEncryptionDetails
WorkspaceRepositoryConfiguration :
Tags                             :
TagsTable                        :
Location                         : <region>
Id                               : /subscriptions/<subsID>/resourceGroups/<resourceGroupName>/providers/
                                   Microsoft.Synapse/workspaces/<workspaceName>
Name                             : <workspaceName>
Type                             : Microsoft.Synapse/workspaces

Generování spravované identity přiřazené systémem pomocí rozhraní REST API

Poznámka:

Pokud se pokusíte aktualizovat instanci služby, která už má spravovanou identitu bez zadání parametru identity v objektu pracovního prostoru nebo poskytnutí oddílu identity v textu požadavku REST, zobrazí se chyba.

V textu požadavku zavolejte níže uvedené rozhraní API s částí Identity:

PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}?api-version=2018-06-01

Text požadavku: add "identity": { "type": "SystemAssigned" }.

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

Odpověď: Spravovaná identita se vytvoří automaticky a odpovídajícím způsobem se vyplní oddíl "identita".

{
    "name": "<workspaceName>",
    "tags": {},
    "properties": {
        "provisioningState": "Succeeded",
        "loggingStorageAccountKey": "**********",
        "createTime": "2021-09-26T04:10:01.1135678Z",
        "version": "2018-06-01"
    },
    "identity": {
        "type": "SystemAssigned",
        "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
    },
    "id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Synapse/workspaces/<workspaceName>",
    "type": "Microsoft.Synapse/workspaces",
    "location": "<region>"
}

Generování spravované identity přiřazené systémem pomocí šablony Azure Resource Manageru

Šablona: add "identity": { "type": "SystemAssigned" }.

{
    "contentVersion": "1.0.0.0",
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "resources": [{
        "name": "<workspaceName>",
        "apiVersion": "2018-06-01",
        "type": "Microsoft.Synapse/workspaces",
        "location": "<region>",
        "identity": {
            "type": "SystemAssigned"
        }
    }]
}

Generování spravované identity přiřazené systémem pomocí sady SDK

Workspace workspace = new Workspace
{
    Identity = new ManagedIdentity
    {
        Type = ResourceIdentityType.SystemAssigned
    },
    DefaultDataLakeStorage = new DataLakeStorageAccountDetails
    {
        AccountUrl = <defaultDataLakeStorageAccountUrl>,
        Filesystem = <DefaultDataLakeStorageFilesystem>
    },
    SqlAdministratorLogin = <SqlAdministratorLoginCredentialUserName>
    SqlAdministratorLoginPassword = <SqlAdministratorLoginCredentialPassword>,
    Location = <region>
};
client.Workspaces.CreateOrUpdate(resourceGroupName, workspaceName, workspace);

Načtení spravované identity přiřazené systémem

Spravovanou identitu můžete načíst z webu Azure Portal nebo programově. V následujících částech jsou uvedeny některé ukázky.

Tip

Pokud spravovanou identitu nevidíte, vygenerujte spravovanou identitu aktualizací instance služby.

Spouštění poznámkových bloků Azure Synapse Spark se spravovanou identitou přiřazenou systémem

Poznámkové bloky Synapse Spark můžete snadno spouštět pomocí spravované identity přiřazené systémem (nebo spravované identity pracovního prostoru) povolením spravované identity Spustit jako z nabídky Konfigurovat relace . Aby uživatelé mohli spouštět poznámkové bloky Sparku se spravovanou identitou pracovního prostoru, musí mít následující role RBAC:

  • Operátor služby Synapse Compute v pracovním prostoru nebo vybraném fondu Sparku
  • Uživatel přihlašovacích údajů Synapse ve spravované identitě pracovního prostoru

Synapse-run-as-msi-1

Synapse-run-as-msi-2

Synapse-run-as-msi-3

Poznámka:

Poznámkové bloky Synapse a definice úloh Spark podporují pouze použití spravované identity přiřazené systémem prostřednictvím propojených služeb a rozhraní API mssparkutils. Knihovna MSAL a další knihovny ověřování nemůžou používat spravovanou identitu přiřazenou systémem. Místo toho můžete vygenerovat instanční objekt a uložit přihlašovací údaje ve službě Key Vault.

Spravovaná identita přiřazená uživatelem

Spravované identity přiřazené uživatelem můžete vytvářet, odstraňovat a spravovat v Microsoft Entra ID. Další informace najdete v tématu Vytvoření, výpis, odstranění nebo přiřazení role spravované identitě přiřazené uživatelem pomocí webu Azure Portal.

Pokud chcete použít spravovanou identitu přiřazenou uživatelem, musíte nejprve vytvořit přihlašovací údaje ve vaší instanci služby pro UAMI.

Poznámka:

Spravovaná identita přiřazená uživatelem se v současné době nepodporuje v poznámkových blocích Synapse a definicích úloh Sparku.

Další kroky

Projděte si následující články, které vás seznámí s tím, kdy a jak používat spravovanou identitu:

Další informace o spravovaných identitách pro prostředky Azure najdete v tématu Přehled spravovaných identit pro prostředky Azure, na kterých je založená spravovaná identita ve službě Azure Synapse.