Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта статья поможет понять, что такое управляемое удостоверение (ранее — Управляемое удостоверение службы, MSI) и как оно используется в Azure Synapse.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Перенос Azure PowerShell с AzureRM на Az.
Обзор
Управляемые удостоверения устраняют необходимость в управлении учетными данными. Управляемые удостоверения предоставляют идентификатор для подключения экземпляра службы к ресурсам, которые поддерживают проверку подлинности Microsoft Entra. Например, служба данных может использовать управляемое удостоверение для доступа к ресурсам, таким как Azure Key Vault, где администраторы данных могут хранить учетные данные безопасным образом, или для доступа к учетным записям хранения. Служба может использовать управляемое удостоверение для получения токенов Microsoft Entra.
Существуют два типа поддерживаемых управляемых идентификаций:
- Назначенные системой: вы можете включить управляемую идентичность для экземпляра службы. Если вы при создании службы разрешите использовать управляемое удостоверение, назначаемое системой, в Microsoft Entra будет создан идентификатор, привязанный к жизненному циклу этого экземпляра службы. Только один конкретный ресурс Azure может использовать это удостоверение для получения токенов Microsoft Entra ID. Поэтому, когда ресурс удаляется, Azure автоматически удаляет удостоверение за вас. Azure Synapse Analytics требует создания управляемого удостоверения, автоматически назначенного системой, одновременно с созданием рабочей области Synapse.
- Назначаемое пользователем: вы также можете создать управляемое удостоверение как автономный ресурс Azure. Вы можете создать управляемое удостоверение, назначаемое пользователем, и назначить его одному или нескольким экземплярам рабочей области Synapse. В случае управляемых удостоверений, назначаемых пользователем, управление таким удостоверением осуществляется отдельно от ресурсов, которые его используют.
Управляемое удостоверение дает следующие преимущества:
- Хранение учетных данных в Azure Key Vault. В этом случае управляемое удостоверение используется для проверки подлинности в Azure Key Vault.
- Доступ к хранилищам данных или вычислительным ресурсам с использованием аутентификации управляемой идентичностью, включая 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, активность Databricks, веб-активность и многое другое. Дополнительные сведения см. в статьях о соединителях и действиях.
- Управляемое удостоверение также используется для шифрования и расшифровки метаданных с помощью управляемого клиентом ключа, хранящегося в Azure Key Vault, что обеспечивает двойное шифрование.
Системное управляемое удостоверение
Примечание.
Управляемое удостоверение, назначаемое системой, также называется просто управляемым удостоверением в других разделах документации и пользовательском интерфейсе Synapse Studio для обеспечения обратной совместимости. Мы будем явно упоминать "управляемое удостоверение, назначаемое пользователем" при обращении к нему.
Получение управляемого удостоверения, назначаемого системой, с помощью портала Azure
Вы можете найти информацию об управляемом удостоверении на портале Azure, выбрав свою рабочую область Synapse, а затем - Свойства.
Сведения об управляемых удостоверениях также будут отображаться при создании связанной службы, поддерживающей проверку подлинности с использованием управляемых удостоверений (например, BLOB-объект Azure, Azure Data Lake Storage, Azure Key Vault и т. д.)
Чтобы предоставить разрешения, выполните следующие действия. Подробные инструкции см. в статье Назначение ролей Azure с помощью портала Microsoft Azure.
Выберите Управление доступом (IAM).
Выберите Добавить>Добавить назначение ролей.
На вкладке "Участники" выберите "Управляемую идентичность", а затем "Выбрать участников".
Выберите свою подписку Azure.
В разделе Управляемое удостоверение, назначаемое системой щелкните Рабочая область Synapse и выберите рабочую область. Также можно использовать идентификатор объекта или имя рабочей области (в качестве имени управляемой идентичности), чтобы найти эту идентичность. Чтобы получить ID приложения управляемой идентичности, используйте PowerShell.
Чтобы назначить роль, на вкладке Проверка и назначение выберите Проверка и назначение.
Получение управляемого системой удостоверения с помощью PowerShell
Идентификатор субъекта и идентификатор клиента управляемого удостоверения возвращаются при получении определенного экземпляра службы данных, как указано ниже. Используйте PrincipalId для предоставления доступа:
PS C:\> (Get-AzSynapseWorkspace -ResourceGroupName <resourceGroupName> -Name <workspaceName>).Identity
IdentityType PrincipalId TenantId
------------ ----------- --------
SystemAssigned aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb aaaabbbb-0000-cccc-1111-dddd2222eeee
Чтобы получить идентификатор приложения, скопируйте указанный выше идентификатор субъекта, а затем выполните следующую команду Microsoft Entra ID с идентификатором субъекта в качестве параметра.
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
Получение управляемого удостоверения с помощью REST API
Идентификатор субъекта и идентификатор клиента управляемого удостоверения возвращаются при получении определенного экземпляра службы данных, как указано ниже.
Вызовите API в запросе:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}?api-version=2018-06-01
Ответ. Вы получите ответ, как показано в следующем примере. Раздел identity заполняется соответствующим образом.
{
"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": {}
}
Совет
Чтобы получить управляемое удостоверение из шаблона ARM, добавьте раздел outputs в JSON ARM:
{
"outputs":{
"managedIdentityObjectId":{
"type":"string",
"value":"[reference(resourceId('Microsoft.Synapse/workspaces', parameters('<workspaceName>')), '2018-06-01', 'Full').identity.principalId]"
}
}
}
Создание управляемого удостоверения, назначаемого системой
Управляемое удостоверение, назначаемое системой, создается следующим образом:
- При создании рабочей области Synapse с помощью портала Azure или PowerShell управляемое удостоверение всегда будет создаваться автоматически.
- При создании рабочей области с помощью пакета SDK управляемое удостоверение будет создано только в том случае, если вы укажете Identity = new ManagedIdentity в объекте рабочей области Synapse, который создаете. См. пример в .NET Quickstart — создание фабрики данных.
- При создании рабочей области Synapse с помощью REST API управляемая идентичность будет создана, только если указана секция "identity" в теле запроса. Пример см. в кратком руководстве REST по созданию фабрики данных.
Если при выполнении инструкций по получению управляемого удостоверения вы обнаружили, что для экземпляра службы соответствующее удостоверение отсутствует, вы можете явным образом создать его, обновив фабрику данных программными средствами — с помощью инициатора удостоверений:
- Создание управляемого удостоверения с помощью PowerShell
- Создание управляемого удостоверения с помощью REST API
- Создание управляемого удостоверения с помощью шаблона Azure Resource Manager
- Создание управляемого удостоверения с помощью пакета SDK
Примечание.
- Управляемое удостоверение изменить невозможно. Обновление экземпляра службы, который уже имеет управляемое удостоверение, не окажет никакого влияния, и управляемое удостоверение останется без изменений.
- Если вы обновляете экземпляр службы, в котором уже есть управляемое удостоверение, не указав параметр «identity» в объектах фабрики или рабочего пространства, либо не указав раздел «identity» в тексте запроса REST, произойдет ошибка.
- При удалении экземпляра службы соответствующее управляемое удостоверение будет также удалено.
Создание управляемого удостоверения, назначаемого системой, с помощью PowerShell
Вызовите команду New-AzSynapseWorkspace, после чего отобразятся только что созданные поля 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
Создание системной управляемой идентичности с использованием REST API
Примечание.
При попытке обновить экземпляр службы, у которого уже есть управляемое удостоверение, без указания параметра Identity в объекте рабочего пространства или предоставления раздела Identity в тексте запроса REST, возникнет ошибка.
Вызовите API с разделом identity в тексте запроса, как в примере ниже.
PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}?api-version=2018-06-01
Текст запроса: add "identity": { "type": "SystemAssigned" }.
{
"name": "<workspaceName>",
"location": "<region>",
"properties": {},
"identity": {
"type": "SystemAssigned"
}
}
Ответ: управляемое удостоверение создается автоматически, и раздел "удостоверение личности" заполняется соответствующим образом.
{
"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>"
}
Создание управляемой идентичности, назначенной системой, с использованием шаблона диспетчера ресурсов Azure
Шаблон: 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"
}
}]
}
Создание системно назначаемой управляемой идентичности с помощью 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);
Получение управляемого удостоверения, назначаемого системой
Управляемое удостоверение можно получить с помощью портала Azure или программных средств. В разделах ниже приведено несколько примеров.
Совет
Если управляемое удостоверение не отображается, создайте управляемое удостоверение, обновив экземпляр службы.
Выполнение записных книжек Azure Synapse Spark с управляемым удостоверением, назначаемым системой
Вы можете легко выполнять записные книжки Synapse Spark с использованием управляемого удостоверения, назначаемого системой (или управляемого удостоверения рабочей области), включив параметр Запуск с использованием управляемого удостоверения в меню Настройка сеанса. Чтобы выполнять записные книжки Spark с управляемым удостоверением рабочей области, у пользователей должны быть следующие роли RBAC:
- оператор вычислений Synapse в рабочей области или выбранном пуле Spark;
- пользователь учетных данных Synapse для управляемой учетной записи рабочей области.
Примечание.
Записные книжки и определения заданий в Synapse Spark поддерживают исключительно использование управляемой идентичности, назначенной системой, через связанные службы и API mssparkutils. MSAL и другие библиотеки проверки подлинности не могут использовать управляемое удостоверение, назначаемое системой. Вместо этого можно создать основной объект службы и сохранить учетные данные в Хранилище ключей.
Управляемое удостоверение, назначаемое пользователем
Вы можете создавать, удалять управляемые удостоверения, назначаемые пользователем, в идентификаторе Microsoft Entra. Подробная информация приведена в статье Создание, внесение в список, удаление ролей и их назначение управляемому удостоверению, назначаемому пользователем, с помощью портала Azure.
Чтобы использовать управляемое удостоверение, назначаемое пользователем, необходимо сначала создать учетные данные в экземпляре службы для UAMI.
Примечание.
Назначаемое пользователем управляемое удостоверение уже поддерживает действия Synapse Notebook и действия определения задания Spark в конвейере.
Следующие шаги
Ознакомьтесь со следующими статьями, которые содержат сведения о том, когда и как использовать управляемое удостоверение:
- Хранение учетных данных в Azure Key Vault.
- Копирование данных в Azure Data Lake Store и из него с использованием управляемых удостоверений для аутентификации ресурсов Azure.
Дополнительные сведения об управляемых удостоверениях для ресурсов Azure, на основе которых создается управляемое удостоверение Azure Synapse, см. в статье Обзор управляемых удостоверений для ресурсов Azure.