Tożsamości zarządzane dla usługi Azure Synapse Analytics
Ten artykuł pomaga zrozumieć tożsamość zarządzaną (wcześniej znaną jako tożsamość usługi zarządzanej/MSI) i sposób jej działania w usłudze Azure Synapse.
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Omówienie
Tożsamości zarządzane eliminują potrzebę zarządzania poświadczeniami. Tożsamości zarządzane zapewniają tożsamość wystąpienia usługi podczas nawiązywania połączenia z zasobami obsługującymi uwierzytelnianie usługi Microsoft Entra. Na przykład usługa może używać tożsamości zarządzanej do uzyskiwania dostępu do zasobów, takich jak Azure Key Vault, gdzie administratorzy danych mogą bezpiecznie przechowywać poświadczenia lub uzyskiwać dostęp do kont magazynu. Usługa używa tożsamości zarządzanej do uzyskiwania tokenów usługi Microsoft Entra.
Istnieją dwa typy obsługiwanych tożsamości zarządzanych:
- Przypisane przez system: tożsamość zarządzaną można włączyć bezpośrednio w wystąpieniu usługi. Gdy zezwalasz na tożsamość zarządzaną przypisaną przez system podczas tworzenia usługi, tożsamość jest tworzona w usłudze Microsoft Entra powiązanej z cyklem życia tego wystąpienia usługi. Zgodnie z projektem tylko ten zasób platformy Azure może używać tej tożsamości do żądania tokenów z usługi Microsoft Entra ID. Dlatego po usunięciu zasobu platforma Azure automatycznie usuwa tożsamość. Usługa Azure Synapse Analytics wymaga utworzenia tożsamości zarządzanej przypisanej przez system wraz z obszarem roboczym usługi Synapse.
- Przypisane przez użytkownika: możesz również utworzyć tożsamość zarządzaną jako autonomiczny zasób platformy Azure. Możesz utworzyć tożsamość zarządzaną przypisaną przez użytkownika i przypisać ją do co najmniej jednego wystąpienia obszaru roboczego usługi Synapse. W tożsamościach zarządzanych przypisanych przez użytkownika tożsamość jest zarządzana oddzielnie od zasobów, które z niej korzystają.
Tożsamość zarządzana zapewnia następujące korzyści:
- Przechowywanie poświadczeń w usłudze Azure Key Vault, gdzie tożsamość zarządzana jest używana do uwierzytelniania w usłudze Azure Key Vault.
- Uzyskiwanie dostępu do magazynów danych lub obliczeń przy użyciu uwierzytelniania tożsamości zarządzanej, a w tym usług 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, działania usługi Databricks, aktywności internetowej i nie tylko. Aby uzyskać szczegółowe informacje, zapoznaj się z artykułami dotyczącymi łącznika i działań.
- Tożsamość zarządzana jest również używana do szyfrowania/odszyfrowywania danych i metadanych przy użyciu klucza zarządzanego przez klienta przechowywanego w usłudze Azure Key Vault, zapewniając podwójne szyfrowanie.
Tożsamość zarządzana przypisana przez system
Uwaga
Tożsamość zarządzana przypisana przez system jest również nazywana "tożsamością zarządzaną" w innym miejscu w dokumentacji i w interfejsie użytkownika programu Synapse Studio na potrzeby zgodności z poprzednimi wersjami. Podczas odwoływania się do niej jawnie będziemy wspominać "Tożsamość zarządzana przypisana przez użytkownika".
Pobieranie tożsamości zarządzanej przypisanej przez system przy użyciu witryny Azure Portal
Informacje o tożsamości zarządzanej można znaleźć w witrynie Azure Portal —> obszar roboczy usługi Synapse —> właściwości.
Informacje o tożsamości zarządzanej będą również wyświetlane podczas tworzenia połączonej usługi, która obsługuje uwierzytelnianie tożsamości zarządzanej, takie jak Azure Blob, Azure Data Lake Storage, Azure Key Vault itp.
Aby udzielić uprawnień, wykonaj następujące kroki. Aby uzyskać szczegółowe instrukcje, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.
Wybierz pozycję Kontrola dostępu (IAM).
Wybierz pozycję Dodaj>Dodaj przypisanie roli.
Na karcie Członkowie wybierz pozycję Tożsamość zarządzana, a następnie wybierz pozycję Wybierz członków.
Wybierz subskrypcję platformy Azure.
W obszarze Tożsamość zarządzana przypisana przez system wybierz pozycję Obszar roboczy usługi Synapse, a następnie wybierz obszar roboczy. Możesz również użyć identyfikatora obiektu lub nazwy obszaru roboczego (jako nazwy tożsamości zarządzanej), aby znaleźć tę tożsamość. Aby uzyskać identyfikator aplikacji tożsamości zarządzanej, użyj programu PowerShell.
Na karcie Przeglądanie i przypisywanie wybierz pozycję Przejrzyj i przypisz, aby przypisać rolę.
Pobieranie tożsamości zarządzanej przypisanej przez system przy użyciu programu PowerShell
Identyfikator jednostki tożsamości zarządzanej i identyfikator dzierżawy zostaną zwrócone po otrzymaniu określonego wystąpienia usługi w następujący sposób. Użyj identyfikatora PrincipalId , aby udzielić dostępu:
PS C:\> (Get-AzSynapseWorkspace -ResourceGroupName <resourceGroupName> -Name <workspaceName>).Identity
IdentityType PrincipalId TenantId
------------ ----------- --------
SystemAssigned aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb aaaabbbb-0000-cccc-1111-dddd2222eeee
Identyfikator aplikacji można uzyskać, kopiując powyższy identyfikator podmiotu zabezpieczeń, a następnie uruchamiając poniższe polecenie Microsoft Entra ID z identyfikatorem podmiotu zabezpieczeń 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
Pobieranie tożsamości zarządzanej przy użyciu interfejsu API REST
Identyfikator jednostki tożsamości zarządzanej i identyfikator dzierżawy zostaną zwrócone po otrzymaniu określonego wystąpienia usługi w następujący sposób.
Wywołaj poniższy interfejs API w żądaniu:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}?api-version=2018-06-01
Odpowiedź: otrzymasz odpowiedź, jak pokazano w poniższym przykładzie. Sekcja "tożsamość" jest wypełniana odpowiednio.
{
"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": {}
}
Napiwek
Aby pobrać tożsamość zarządzaną z szablonu usługi ARM, dodaj sekcję danych wyjściowych w formacie JSON usługi ARM:
{
"outputs":{
"managedIdentityObjectId":{
"type":"string",
"value":"[reference(resourceId('Microsoft.Synapse/workspaces', parameters('<workspaceName>')), '2018-06-01', 'Full').identity.principalId]"
}
}
}
Generowanie tożsamości zarządzanej przypisanej przez system
Tożsamość zarządzana przypisana przez system jest generowana w następujący sposób:
- Podczas tworzenia obszaru roboczego usługi Synapse za pośrednictwem witryny Azure Portal lub programu PowerShell tożsamość zarządzana będzie zawsze tworzona automatycznie.
- Podczas tworzenia obszaru roboczego za pomocą zestawu SDK tożsamość zarządzana zostanie utworzona tylko wtedy, gdy określisz tożsamość = nowa tożsamość zarządzana" w obiekcie obszaru roboczego usługi Synapse do utworzenia". Zobacz przykład w przewodniku Szybki start platformy .NET — tworzenie fabryki danych.
- Podczas tworzenia obszaru roboczego usługi Synapse za pomocą interfejsu API REST tożsamość zarządzana zostanie utworzona tylko wtedy, gdy określisz sekcję "tożsamość" w treści żądania. Zobacz przykład w przewodniku Szybki start REST — tworzenie fabryki danych.
Jeśli wystąpienie usługi nie ma tożsamości zarządzanej skojarzonej po pobraniu instrukcji tożsamości zarządzanej, możesz je jawnie wygenerować, aktualizując je za pomocą inicjatora tożsamości programowo:
- Generowanie tożsamości zarządzanej przy użyciu programu PowerShell
- Generowanie tożsamości zarządzanej przy użyciu interfejsu API REST
- Generowanie tożsamości zarządzanej przy użyciu szablonu usługi Azure Resource Manager
- Generowanie tożsamości zarządzanej przy użyciu zestawu SDK
Uwaga
- Nie można zmodyfikować tożsamości zarządzanej. Aktualizowanie wystąpienia usługi, które ma już tożsamość zarządzaną, nie będzie miało żadnego wpływu, a tożsamość zarządzana pozostaje niezmieniona.
- Jeśli zaktualizujesz wystąpienie usługi, które ma już tożsamość zarządzaną bez określenia parametru "identity" w fabryce lub obiektach obszaru roboczego lub bez określania sekcji "tożsamość" w treści żądania REST, zostanie wyświetlony błąd.
- Usunięcie wystąpienia usługi spowoduje usunięcie skojarzonej tożsamości zarządzanej.
Generowanie tożsamości zarządzanej przypisanej przez system przy użyciu programu PowerShell
Wywołaj polecenie New-AzSynapseWorkspace , a następnie zobaczysz nowo wygenerowane pola "Tożsamość":
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
Generowanie tożsamości zarządzanej przypisanej przez system przy użyciu interfejsu API REST
Uwaga
Jeśli spróbujesz zaktualizować wystąpienie usługi, które ma już tożsamość zarządzaną bez określenia parametru tożsamości w obiekcie obszaru roboczego lub udostępnienia sekcji tożsamości w treści żądania REST, zostanie wyświetlony błąd.
Wywołaj poniższy interfejs API za pomocą sekcji "identity" w treści żądania:
PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}?api-version=2018-06-01
Treść żądania: dodaj "identity": { "type": "SystemAssigned" }.
{
"name": "<workspaceName>",
"location": "<region>",
"properties": {},
"identity": {
"type": "SystemAssigned"
}
}
Odpowiedź: tożsamość zarządzana jest tworzona automatycznie, a sekcja "tożsamość" jest wypełniana odpowiednio.
{
"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>"
}
Generowanie tożsamości zarządzanej przypisanej przez system przy użyciu szablonu usługi Azure Resource Manager
Szablon: dodaj "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"
}
}]
}
Generowanie tożsamości zarządzanej przypisanej przez system przy użyciu zestawu 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);
Pobieranie tożsamości zarządzanej przypisanej przez system
Tożsamość zarządzaną można pobrać z witryny Azure Portal lub programowo. W poniższych sekcjach przedstawiono kilka przykładów.
Napiwek
Jeśli tożsamość zarządzana nie jest widoczna, wygeneruj tożsamość zarządzaną, aktualizując wystąpienie usługi.
Wykonywanie notesów platformy Spark usługi Azure Synapse z przypisaną przez system tożsamością zarządzaną
Notesy platformy Spark usługi Synapse można łatwo wykonać przy użyciu tożsamości zarządzanej przypisanej przez system (lub tożsamości zarządzanej obszaru roboczego), włączając opcję Uruchom jako tożsamość zarządzaną z menu Konfigurowanie sesji . Aby wykonać notesy spark z tożsamością zarządzaną obszaru roboczego, użytkownicy muszą mieć następujące role RBAC:
- Operator obliczeniowy usługi Synapse w obszarze roboczym lub wybranej puli spark
- Użytkownik poświadczeń usługi Synapse w tożsamości zarządzanej obszaru roboczego
Uwaga
Notesy usługi Synapse i definicje zadań platformy Spark obsługują tylko korzystanie z tożsamości zarządzanej przypisanej przez system za pośrednictwem połączonych usług i interfejsów API mssparkutils. Biblioteka MSAL i inne biblioteki uwierzytelniania nie mogą używać przypisanej przez system tożsamości zarządzanej. Zamiast tego możesz wygenerować jednostkę usługi i zapisać poświadczenia w usłudze Key Vault.
Tożsamość zarządzana przypisana przez użytkownika
Tożsamości zarządzane przypisane przez użytkownika można tworzyć, usuwać i zarządzać nimi w usłudze Microsoft Entra ID. Aby uzyskać więcej informacji, zobacz Tworzenie, wyświetlanie listy, usuwanie lub przypisywanie roli do tożsamości zarządzanej przypisanej przez użytkownika przy użyciu witryny Azure Portal.
Aby użyć tożsamości zarządzanej przypisanej przez użytkownika, musisz najpierw utworzyć poświadczenia w wystąpieniu usługi dla interfejsu użytkownika.
Uwaga
Tożsamość zarządzana przypisana przez użytkownika nie jest obecnie obsługiwana w notesach usługi Synapse i definicjach zadań platformy Spark.
Następne kroki
Zapoznaj się z następującymi artykułami, które przedstawiają, kiedy i jak używać tożsamości zarządzanej:
- Przechowywanie poświadczeń w usłudze Azure Key Vault.
- Kopiowanie danych z/do usługi Azure Data Lake Store przy użyciu tożsamości zarządzanych na potrzeby uwierzytelniania zasobów platformy Azure.
Zobacz Tożsamości zarządzane dla zasobów platformy Azure — omówienie , aby uzyskać więcej informacji na temat tożsamości zarządzanych dla zasobów platformy Azure, na których oparta jest tożsamość zarządzana w usłudze Azure Synapse.