Skip to content

Commit 18c7400

Browse files
Merge pull request #281524 from v-luckywang/0722-Azure_Table_mi_auth
[New feature] Add MI auth for Azure Table
2 parents 81729a0 + d365939 commit 18c7400

File tree

1 file changed

+86
-3
lines changed

1 file changed

+86
-3
lines changed

articles/data-factory/connector-azure-table-storage.md

Lines changed: 86 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.service: data-factory
88
ms.subservice: data-movement
99
ms.topic: conceptual
1010
ms.custom: synapse
11-
ms.date: 01/05/2024
11+
ms.date: 07/23/2024
1212
---
1313

1414
# Copy data to and from Azure Table storage using Azure Data Factory or Synapse Analytics
@@ -67,7 +67,14 @@ The following sections provide details about properties that are used to define
6767

6868
## Linked service properties
6969

70-
### Use an account key
70+
This Azure Table Storage connector supports the following authentication types. See the corresponding sections for details.
71+
72+
- [Account key authentication](#account-key-authentication)
73+
- [Shared access signature authentication](#shared-access-signature-authentication)
74+
- [System-assigned managed identity authentication](#system-assigned-managed-identity-authentication)
75+
- [User-assigned managed identity authentication](#user-assigned-managed-identity-authentication)
76+
77+
### Account key authentication
7178

7279
You can create an Azure Storage linked service by using the account key. It provides the service with global access to Storage. The following properties are supported.
7380

@@ -124,7 +131,7 @@ You can create an Azure Storage linked service by using the account key. It prov
124131
}
125132
```
126133

127-
### Use shared access signature authentication
134+
### Shared access signature authentication
128135

129136
You also can create a Storage linked service by using a shared access signature. It provides the service with restricted/time-bound access to all/specific resources in the storage.
130137

@@ -205,6 +212,82 @@ When you create a shared access signature URI, consider the following points:
205212
- Set **Expiry time** appropriately. Make sure that the access to Storage objects doesn't expire within the active period of the pipeline.
206213
- The URI should be created at the right table level based on the need.
207214

215+
### System-assigned managed identity authentication
216+
217+
A data factory or Synapse pipeline can be associated with a [system-assigned managed identity for Azure resources](data-factory-service-identity.md#system-assigned-managed-identity), which represents that resource for authentication to other Azure services. You can use this system-assigned managed identity for Azure Table Storage authentication. To learn more about managed identities for Azure resources, see [Managed identities for Azure resources](../active-directory/managed-identities-azure-resources/overview.md)
218+
219+
To use system-assigned managed identity authentication, follow these steps:
220+
221+
1. [Retrieve system-assigned managed identity information](data-factory-service-identity.md#retrieve-managed-identity) by copying the value of the system-assigned managed identity object ID generated along with your factory or Synapse workspace.
222+
223+
2. Grant the managed identity permission in Azure Table Storage. For more information on the roles, see this [article](../role-based-access-control/built-in-roles/storage.md#storage-table-data-contributor).
224+
225+
- **As source**, in **Access control (IAM)**, grant at least the **Storage Table Data Reader** role.
226+
- **As sink**, in **Access control (IAM)**, grant at least the **Storage Table Data Contributor** role.
227+
228+
These properties are supported for an Azure Table Storage linked service:
229+
230+
| Property | Description | Required |
231+
|:--- |:--- |:--- |
232+
| type | The **type** property must be set to **AzureTableStorage**. | Yes |
233+
| serviceEndpoint | Specify the Azure Table Storage service endpoint with the pattern of `https://<accountName>.table.core.windows.net/`. | Yes |
234+
235+
>[!NOTE]
236+
>System-assigned managed identity authentication is only supported by Azure integration runtime.
237+
238+
**Example:**
239+
240+
```json
241+
{
242+
"name": "AzureTableStorageLinkedService",
243+
"properties": {
244+
"type": "AzureTableStorage",
245+
"typeProperties": {
246+
"serviceEndpoint": "https://<accountName>.table.core.windows.net/"
247+
}
248+
}
249+
}
250+
```
251+
252+
### User-assigned managed identity authentication
253+
254+
A data factory can be assigned with one or multiple [user-assigned managed identities](data-factory-service-identity.md#user-assigned-managed-identity). You can use this user-assigned managed identity for Azure Table Storage authentication, which allows to access and copy data from or to Azure Table Storage. To learn more about managed identities for Azure resources, see [Managed identities for Azure resources](../active-directory/managed-identities-azure-resources/overview.md)
255+
256+
To use user-assigned managed identity authentication, follow these steps:
257+
258+
1. [Create one or multiple user-assigned managed identities](../active-directory/managed-identities-azure-resources/how-to-manage-ua-identity-portal.md) and grant permission in Azure Table Storage. For more information on the roles, see this [article](../role-based-access-control/built-in-roles/storage.md#storage-table-data-contributor).
259+
260+
- **As source**, in **Access control (IAM)**, grant at least the **Storage Table Data Reader** role.
261+
- **As sink**, in **Access control (IAM)**, grant at least the **Storage Table Data Contributor** role.
262+
263+
2. Assign one or multiple user-assigned managed identities to your data factory and [create credentials](credentials.md) for each user-assigned managed identity.
264+
265+
These properties are supported for an Azure Table Storage linked service:
266+
267+
| Property | Description | Required |
268+
|:--- |:--- |:--- |
269+
| type | The **type** property must be set to **AzureTableStorage**. | Yes |
270+
| serviceEndpoint | Specify the Azure Table Storage service endpoint with the pattern of `https://<accountName>.table.core.windows.net/`. | Yes |
271+
| credentials | Specify the user-assigned managed identity as the credential object. | Yes |
272+
273+
**Example:**
274+
275+
```json
276+
{
277+
"name": "AzureTableStorageLinkedService",
278+
"properties": {
279+
"type": "AzureTableStorage",
280+
"typeProperties": {
281+
"serviceEndpoint": "https://<accountName>.table.core.windows.net/",
282+
"credential": {
283+
"referenceName": "credential1",
284+
"type": "CredentialReference"
285+
}
286+
}
287+
}
288+
}
289+
```
290+
208291
## Dataset properties
209292

210293
For a full list of sections and properties available for defining datasets, see the [Datasets](concepts-datasets-linked-services.md) article. This section provides a list of properties supported by the Azure Table dataset.

0 commit comments

Comments
 (0)