События
31 мар., 23 - 2 апр., 23
Самое большое событие обучения Fabric, Power BI и SQL. 31 марта – 2 апреля. Используйте код FABINSIDER, чтобы сэкономить $400.
Зарегистрироваться сегодняЭтот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
Эта статья поможет понять, что такое управляемое удостоверение (ранее — Управляемое удостоверение службы, MSI) и как оно используется в Azure Synapse.
Примечание
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.
Управляемые удостоверения устраняют необходимость в управлении учетными данными. Управляемые удостоверения предоставляют идентификатор для подключения экземпляра службы к ресурсам, которые поддерживают проверку подлинности Microsoft Entra. Например, служба данных может использовать управляемое удостоверение для доступа к ресурсам, таким как Azure Key Vault, где администраторы данных могут хранить учетные данные безопасным образом, или для доступа к учетным записям хранения. Служба может использовать управляемое удостоверение для получения токенов Microsoft Entra.
Существуют два типа поддерживаемых управляемых удостоверений:
Управляемое удостоверение дает следующие преимущества:
Примечание
Управляемое удостоверение, назначаемое системой, также называется просто управляемым удостоверением в других разделах документации и пользовательском интерфейсе Synapse Studio для обеспечения обратной совместимости. При обращении к нему мы будем явно говорить "управляемое удостоверение, назначаемое пользователем".
Сведения об управляемом удостоверении можно найти на портале Azure. Для этого выберите рабочую область Synapse и щелкните Свойства.
Сведения об управляемых удостоверениях также будут отображаться при создании связанной службы, поддерживающей проверку подлинности с использованием управляемых удостоверений (например, BLOB-объект Azure, Azure Data Lake Storage, Azure Key Vault и т. д.)
Чтобы предоставить разрешения, выполните следующие действия. Подробные инструкции см. в статье Назначение ролей Azure с помощью портала Microsoft Azure.
Выберите Управление доступом (IAM).
Выберите Добавить>Добавить назначение ролей.
На вкладке "Участники" выберите "Управляемое удостоверение" и нажмите "Выбрать участников".
Выберите свою подписку Azure.
В разделе Управляемое удостоверение, назначаемое системой щелкните Рабочая область Synapse и выберите рабочую область. Также можно использовать идентификатор объекта или имя рабочей области (в качестве имени управляемого удостоверения), чтобы найти это удостоверение. Чтобы получить идентификатор приложения управляемого удостоверения, используйте 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
Идентификатор субъекта и идентификатор клиента управляемого удостоверения возвращаются при получении определенного экземпляра службы данных, как указано ниже.
Вызовите 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]"
}
}
}
Управляемое удостоверение, назначаемое системой, создается следующим образом:
Если при выполнении инструкций по получению управляемого удостоверения вы обнаружили, что для экземпляра службы соответствующее удостоверение отсутствует, вы можете явным образом создать его, обновив фабрику данных программными средствами — с помощью инициатора удостоверений:
Примечание
Вызовите команду 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
Примечание
При попытке обновить экземпляр службы, у которого уже есть управляемое удостоверение, без указания параметра 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"
}
}
Ответ: управляемое удостоверение создается автоматически и раздел identity заполняется соответствующим образом.
{
"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>"
}
Шаблон: 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"
}
}]
}
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 или программных средств. В разделах ниже приведено несколько примеров.
Совет
Если управляемое удостоверение не отображается, создайте его, обновив экземпляр службы.
Вы можете легко запускать записные книжки Synapse Spark с управляемым удостоверением, назначаемым системой (или управляемым удостоверением рабочей области), включив параметр Запуск от имени управляемого удостоверения в меню Конфигурация сеанса. Чтобы выполнять записные книжки Spark с управляемым удостоверением рабочей области, у пользователей должны быть следующие роли RBAC:
Примечание
Записные книжки Synapse и определения заданий Spark поддерживают только использование управляемого удостоверения, назначаемого системой, через связанные службы и API mssparkutils. MSAL и другие библиотеки проверки подлинности не могут использовать управляемое удостоверение, назначаемое системой. Вместо этого можно создать субъект-службу и сохранить учетные данные в Key Vault.
Вы можете создавать, удалять управляемые удостоверения, назначаемые пользователем, в идентификаторе Microsoft Entra. Подробная информация приведена в статье Создание, внесение в список, удаление ролей и их назначение управляемому удостоверению, назначаемому пользователем, с помощью портала Azure.
Чтобы использовать управляемое удостоверение, назначаемое пользователем, необходимо сначала создать учетные данные в экземпляре службы для UAMI.
Примечание
Назначаемое пользователем управляемое удостоверение в настоящее время не поддерживается в записных книжках Synapse и определениях заданий Spark.
Ознакомьтесь со следующими статьями, которые содержат сведения о том, когда и как использовать управляемое удостоверение:
Дополнительные сведения об управляемых удостоверениях для ресурсов Azure, на основе которых создается управляемое удостоверение Azure Synapse, см. в статье Обзор управляемых удостоверений для ресурсов Azure.
События
31 мар., 23 - 2 апр., 23
Самое большое событие обучения Fabric, Power BI и SQL. 31 марта – 2 апреля. Используйте код FABINSIDER, чтобы сэкономить $400.
Зарегистрироваться сегодняОбучение
Сертификация
Microsoft Certified: Identity and Access Administrator Associate - Certifications
Продемонстрировать функции идентификатора Microsoft Entra для модернизации решений удостоверений, реализации гибридных решений и реализации управления удостоверениями.
Документация
Узнайте, как настроить разрешения для управляемого удостоверения в рабочей области Azure Synapse.
В этой статье приведены основные сведения о безопасной интеграции Apache Spark для Azure Synapse Analytics с другими службами с помощью связанных служб и библиотеки маркеров.
Использование учетных данных - Azure Data Factory & Azure Synapse
Сведения об использовании учетных данных Azure для Фабрики данных Azure.