Управляемое удостоверение для Фабрики данных Azure

Область применения:Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

Эта статья поможет понять, что представляет собой управляемое удостоверение (прежнее название — Управляемое удостоверение службы, MSI) и как оно работает для Фабрики данных Azure.

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Обзор

Управляемые удостоверения устраняют необходимость в управлении учетными данными. Управляемые удостоверения предоставляют идентификатор для подключения экземпляра службы к ресурсам, которые поддерживают проверку подлинности Microsoft Entra. Например, служба данных может использовать управляемое удостоверение для доступа к ресурсам, таким как Azure Key Vault, где администраторы данных могут хранить учетные данные безопасным образом, или для доступа к учетным записям хранения. Служба может использовать управляемое удостоверение для получения токенов Microsoft Entra.

Существуют два типа поддерживаемых управляемых удостоверений:

  • Назначенные системой: вы можете включить управляемое удостоверение непосредственно в экземпляре службы. Если вы при создании службы разрешите использовать управляемое удостоверение, назначаемое системой, в Microsoft Entra будет создан идентификатор, привязанный к жизненному циклу этого экземпляра службы. Только один конкретный ресурс Azure может использовать это удостоверение для получения токенов Microsoft Entra ID. Поэтому при удалении ресурса Azure автоматически удаляет удостоверение.
  • Назначаемые пользователем. Вы также можете сами создать управляемое удостоверение в качестве автономного ресурса Azure. Вы можете создать управляемое удостоверение, назначаемое пользователем, и назначить его одному экземпляру фабрики данных или нескольким. В случае управляемых удостоверений, назначаемых пользователем, управление таким удостоверением осуществляется отдельно от ресурсов, которые его используют.

Управляемое удостоверение дает следующие преимущества:

  • Хранение учетных данных в Azure Key Vault. В этом случае управляемое удостоверение используется для проверки подлинности в Azure Key Vault.
  • Доступ к хранилищам данных или вычислительным ресурсам с использованием проверки подлинности по управляемому удостоверению, включая Хранилище BLOB-объектов Azure, Azure Data Explorer, Azure Data Lake Storage 1-го поколения, Azure Data Lake Storage 2-го поколения, Базу данных SQL Azure, Управляемый экземпляр SQL Azure, Azure Synapse Analytics, REST, действие Databricks, веб-действие и многое другое. Дополнительные сведения см. в статьях о соединителях и действиях.
  • Управляемое удостоверение также используется для шифрования и расшифровки метаданных с помощью управляемого клиентом ключа, хранящегося в Azure Key Vault, что обеспечивает двойное шифрование.

Управляемое удостоверение, назначаемое системой

Примечание.

Управляемое удостоверение, назначаемое системой, также называется просто управляемым удостоверением в других разделах документации и в студии Фабрики данных для обеспечения обратной совместимости. При обращении к нему мы будем явно говорить "управляемое удостоверение, назначаемое пользователем".

Создание управляемого удостоверения, назначаемого системой

Управляемое удостоверение, назначаемое системой, создается следующим образом:

  • При создании фабрики данных с помощью портала Azure или PowerShell управляемое удостоверение всегда будет создаваться автоматически.
  • При создании фабрики данных с помощью пакета SDK управляемое удостоверение создается, только если в создаваемом объекте фабрики указать Identity = new FactoryIdentity(). См. пример в разделе "Создание фабрики данных" краткого руководства по .NET.
  • При создании фабрики данных с помощью REST API управляемое удостоверение будет создано, только если в тексте запроса указан раздел identity. Пример см. в инструкциях по созданию фабрики данных из краткого руководства по REST.

Если при выполнении инструкций по получению управляемого удостоверения вы обнаружили, что для экземпляра службы соответствующее удостоверение отсутствует, вы можете явным образом создать его, обновив фабрику данных программными средствами — с помощью инициатора удостоверений:

Примечание.

  • Управляемое удостоверение изменить невозможно. Обновление экземпляра службы, в которой уже есть управляемое удостоверение, ничего не изменит. Управляемое удостоверение останется таким же.
  • Если обновить экземпляр службы, в котором уже есть управляемое удостоверение, не указав параметр identity в объекте фабрики либо вообще не указав раздел identity в тексте запроса REST, произойдет ошибка.
  • При удалении экземпляра службы связанный управляемый идентификатор также будет удален.

Создание управляемого удостоверения, назначаемого системой, с помощью PowerShell

Вызовите команду Set-AzDataFactoryV2. Будут созданы поля Identity:

PS C:\> Set-AzDataFactoryV2 -ResourceGroupName <resourceGroupName> -Name <dataFactoryName> -Location <region>

DataFactoryName   : ADFV2DemoFactory
DataFactoryId     : /subscriptions/<subsID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/ADFV2DemoFactory
ResourceGroupName : <resourceGroupName>
Location          : East US
Tags              : {}
Identity          : Microsoft.Azure.Management.DataFactory.Models.FactoryIdentity
ProvisioningState : Succeeded

Создание управляемого удостоверения, назначаемого системой, с помощью REST API

Примечание.

При попытке обновить экземпляр службы, у которого уже есть управляемое удостоверение, без указания параметра Identity в объекте фабрики или предоставления раздела Identity в тексте запроса REST, возникнет ошибка.

Вызовите API с разделом identity в тексте запроса, как в примере ниже.

PATCH https://management.azure.com/subscriptions/<subsID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<data factory name>?api-version=2018-06-01

Текст запроса: add "identity": { "type": "SystemAssigned" }.

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

Ответ: управляемое удостоверение создается автоматически и раздел identity заполняется соответствующим образом.

{
    "name": "<dataFactoryName>",
    "tags": {},
    "properties": {
        "provisioningState": "Succeeded",
        "loggingStorageAccountKey": "**********",
        "createTime": "2017-09-26T04:10:01.1135678Z",
        "version": "2018-06-01"
    },
    "identity": {
        "type": "SystemAssigned",
        "principalId": "765ad4ab-XXXX-XXXX-XXXX-51ed985819dc",
        "tenantId": "72f988bf-XXXX-XXXX-XXXX-2d7cd011db47"
    },
    "id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>",
    "type": "Microsoft.DataFactory/factories",
    "location": "<region>"
}

Создание управляемого удостоверения, назначаемого системой, с помощью шаблона Azure Resource Manager

Шаблон: add "identity": { "type": "SystemAssigned" }.

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

Создание управляемого удостоверения, назначаемого системой, с помощью SDK

Вызовите функцию create_or_update с Identity=new FactoryIdentity(). Пример кода с использованием .NET:

Factory dataFactory = new Factory
{
    Location = <region>,
    Identity = new FactoryIdentity()
};
client.Factories.CreateOrUpdate(resourceGroup, dataFactoryName, dataFactory);

Получение управляемого удостоверения, назначаемого системой

Управляемое удостоверение можно получить с помощью портала Azure или программных средств. В разделах ниже приведено несколько примеров.

Совет

Если управляемое удостоверение не отображается, создайте его, обновив экземпляр службы.

Получение управляемого удостоверения, назначаемого системой, с помощью портала Azure

Сведения об управляемом удостоверении можно найти на портале Azure, выбрав свою фабрику данных, а затем — "Свойства".

Shows the Azure portal with the system-managed identity object ID and Identity Tenant for an Azure Data Factory.

  • Идентификатор объекта управляемого удостоверения.
  • Клиент управляемого удостоверения.

Сведения об управляемых удостоверениях также будут отображаться при создании связанной службы, поддерживающей проверку подлинности с использованием управляемых удостоверений (например, BLOB-объект Azure, Azure Data Lake Storage, Azure Key Vault и т. д.)

Чтобы предоставить разрешения, выполните следующие действия. Подробные инструкции см. в статье Назначение ролей Azure с помощью портала Microsoft Azure.

  1. Выберите Управление доступом (IAM) .

  2. Выберите Добавить>Добавить назначение ролей.

    Screenshot that shows Access control (IAM) page with Add role assignment menu open.

  3. На вкладке "Участники" выберите "Управляемое удостоверение" и нажмите "Выбрать участников".

  4. Выберите свою подписку Azure.

  5. В разделе Назначаемое системой управляемое удостоверение выберите Фабрика данных, а затем выберите фабрику данных. Также можно использовать идентификатор объекта или имя фабрики данных (в качестве имени управляемого удостоверения), чтобы найти это удостоверение. Чтобы получить идентификатор приложения управляемого удостоверения, используйте PowerShell.

  6. Чтобы назначить роль, на вкладке Проверка и назначение выберите Проверка и назначение.

Получение управляемого удостоверения, назначаемого системой, с помощью PowerShell

Идентификатор субъекта и идентификатор клиента управляемого удостоверения возвращаются при получении определенного экземпляра службы данных, как указано ниже. Используйте PrincipalId для предоставления доступа:

PS C:\> (Get-AzDataFactoryV2 -ResourceGroupName <resourceGroupName> -Name <dataFactoryName>).Identity

PrincipalId                          TenantId
-----------                          --------
765ad4ab-XXXX-XXXX-XXXX-51ed985819dc 72f988bf-XXXX-XXXX-XXXX-2d7cd011db47

Чтобы получить идентификатор приложения, скопируйте указанный выше идентификатор субъекта, а затем выполните следующую команду Microsoft Entra ID с идентификатором субъекта в качестве параметра.

PS C:\> Get-AzADServicePrincipal -ObjectId 765ad4ab-XXXX-XXXX-XXXX-51ed985819dc

ServicePrincipalNames : {76f668b3-XXXX-XXXX-XXXX-1b3348c75e02, https://identity.azure.net/P86P8g6nt1QxfPJx22om8MOooMf/Ag0Qf/nnREppHkU=}
ApplicationId         : 76f668b3-XXXX-XXXX-XXXX-1b3348c75e02
DisplayName           : ADFV2DemoFactory
Id                    : 765ad4ab-XXXX-XXXX-XXXX-51ed985819dc
Type                  : ServicePrincipal

Получение управляемого удостоверения с помощью REST API

Идентификатор субъекта и идентификатор клиента управляемого удостоверения возвращаются при получении определенного экземпляра службы данных, как указано ниже.

Вызовите API в запросе:

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

Ответ: вы получите ответ, как показано в примере ниже. Раздел identity заполняется соответствующим образом.

{
    "name":"<dataFactoryName>",
    "identity":{
        "type":"SystemAssigned",
        "principalId":"554cff9e-XXXX-XXXX-XXXX-90c7d9ff2ead",
        "tenantId":"72f988bf-XXXX-XXXX-XXXX-2d7cd011db47"
    },
    "id":"/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>",
    "type":"Microsoft.DataFactory/factories",
    "properties":{
        "provisioningState":"Succeeded",
        "createTime":"2020-02-12T02:22:50.2384387Z",
        "version":"2018-06-01",
        "factoryStatistics":{
            "totalResourceCount":0,
            "maxAllowedResourceCount":0,
            "factorySizeInGbUnits":0,
            "maxAllowedFactorySizeInGbUnits":0
        }
    },
    "eTag":"\"03006b40-XXXX-XXXX-XXXX-5e43617a0000\"",
    "location":"<region>",
    "tags":{

    }
}

Совет

Чтобы получить управляемое удостоверение из шаблона ARM, добавьте раздел outputs в JSON ARM:

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

Управляемое удостоверение, назначаемое пользователем

Вы можете создавать, удалять управляемые удостоверения, назначаемые пользователем, в идентификаторе Microsoft Entra. Дополнительные сведения см. в Создание, внесение в список, удаление ролей и их назначение управляемому удостоверению, назначаемому пользователем, с помощью портала Azure.

Чтобы использовать управляемое удостоверение, назначаемое пользователем, необходимо сначала создать учетные данные в экземпляре службы для UAMI.

Изучите следующие вводные разделы по использованию управляемого удостоверения:

Дополнительные сведения об управляемых удостоверениях для ресурсов Azure, на основе которых создается управляемое удостоверение Фабрики данных Azure, см. в статье Обзор управляемых удостоверений для ресурсов Azure.

См. ограничения управляемых удостоверений, которые также применяются к управляемым удостоверениям в Фабрика данных Azure.