Skip to content

Commit 2fdad2e

Browse files
authored
Merge pull request #216660 from tamram/tamram22-1031
xtenant CMK GA
2 parents 801cae0 + 1d842f5 commit 2fdad2e

4 files changed

+46
-127
lines changed

articles/storage/common/customer-managed-keys-configure-cross-tenant-existing-account.md

Lines changed: 34 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,26 @@
11
---
2-
title: Configure cross-tenant customer-managed keys for an existing storage account (preview)
2+
title: Configure cross-tenant customer-managed keys for an existing storage account
33
titleSuffix: Azure Storage
4-
description: Learn how to configure Azure Storage encryption with customer-managed keys in an Azure key vault that resides in a different tenant than the tenant where the storage account resides (preview). Customer-managed keys allow a service provider to encrypt the customer's data using an encryption key that is managed by the service provider's customer and that isn't accessible to the service provider.
4+
description: Learn how to configure Azure Storage encryption with customer-managed keys in an Azure key vault that resides in a different tenant than the tenant where the storage account resides. Customer-managed keys allow a service provider to encrypt the customer's data using an encryption key that is managed by the service provider's customer and that isn't accessible to the service provider.
55
services: storage
66
author: tamram
77

88
ms.service: storage
99
ms.topic: how-to
10-
ms.date: 10/28/2022
10+
ms.date: 10/31/2022
1111
ms.author: tamram
1212
ms.reviewer: ozgun
1313
ms.subservice: common
1414
ms.custom: devx-track-azurepowershell, devx-track-azurecli
1515
---
1616

17-
# Configure cross-tenant customer-managed keys for an existing storage account (preview)
17+
# Configure cross-tenant customer-managed keys for an existing storage account
1818

1919
Azure Storage encrypts all data in a storage account at rest. By default, data is encrypted with Microsoft-managed keys. For additional control over encryption keys, you can manage your own keys. Customer-managed keys must be stored in an Azure Key Vault or in an Azure Key Vault Managed Hardware Security Model (HSM).
2020

2121
This article shows how to configure encryption with customer-managed keys for an existing storage account. In the cross-tenant scenario, the storage account resides in a tenant managed by an ISV, while the key used for encryption of that storage account resides in a key vault in a tenant that is managed by the customer.
2222

23-
To learn how to configure customer-managed keys for a new storage account, see [Configure cross-tenant customer-managed keys for a new storage account (preview)](customer-managed-keys-configure-cross-tenant-new-account.md).
24-
25-
## About the preview
26-
27-
To use the preview, you must register for the Azure Active Directory federated client identity feature in the ISV's tenant. Follow these instructions to register with PowerShell or Azure CLI:
28-
29-
### [PowerShell](#tab/powershell-preview)
30-
31-
To register with PowerShell, call the **Register-AzProviderFeature** command.
32-
33-
```azurepowershell
34-
Register-AzProviderFeature -ProviderNamespace Microsoft.Storage `
35-
-FeatureName FederatedClientIdentity
36-
```
37-
38-
To check the status of your registration with PowerShell, call the **Get-AzProviderFeature** command.
39-
40-
```azurepowershell
41-
Get-AzProviderFeature -ProviderNamespace Microsoft.Storage `
42-
-FeatureName FederatedClientIdentity
43-
```
44-
45-
After your registration is approved, you must re-register the Azure Storage resource provider. To re-register the resource provider with PowerShell, call the **Register-AzResourceProvider** command.
46-
47-
```azurepowershell
48-
Register-AzResourceProvider -ProviderNamespace 'Microsoft.Storage'
49-
```
50-
51-
### [Azure CLI](#tab/azure-cli-preview)
52-
53-
To register with Azure CLI, call the **az feature register** command.
54-
55-
```azurecli
56-
az feature register --namespace Microsoft.Storage \
57-
--name FederatedClientIdentity
58-
```
59-
60-
To check the status of your registration with Azure CLI, call the **az feature show** command.
61-
62-
```azurecli
63-
az feature show --namespace Microsoft.Storage \
64-
--name FederatedClientIdentity
65-
```
66-
67-
After your registration is approved, you must re-register the Azure Storage resource provider. To re-register the resource provider with Azure CLI, call the **az provider register command**.
68-
69-
```azurecli
70-
az provider register --namespace 'Microsoft.Storage'
71-
```
72-
73-
---
74-
75-
> [!IMPORTANT]
76-
> Using cross-tenant customer-managed keys with Azure Storage encryption is currently in PREVIEW.
77-
> See the [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/) for legal terms that apply to Azure features that are in beta, preview, or otherwise not yet released into general availability.
23+
To learn how to configure customer-managed keys for a new storage account, see [Configure cross-tenant customer-managed keys for a new storage account](customer-managed-keys-configure-cross-tenant-new-account.md).
7824

7925
[!INCLUDE [active-directory-msi-cross-tenant-cmk-overview](../../../includes/active-directory-msi-cross-tenant-cmk-overview.md)]
8026

@@ -119,7 +65,7 @@ After you've specified the key from the key vault in the customer's tenant, the
11965

12066
### [PowerShell](#tab/azure-powershell)
12167

122-
To configure cross-tenant customer-managed keys for a new storage account with PowerShell, first install the [Az.Storage PowerShell module](https://www.powershellgallery.com/packages/Az.Storage/4.4.2-preview), version 4.4.2-preview.
68+
To configure cross-tenant customer-managed keys for a new storage account with PowerShell, first install the [Az.Storage PowerShell module](https://www.powershellgallery.com/packages/Az.Storage), version 5.1.0 or later. This module is installed with the [Az PowerShell module](https://www.powershellgallery.com/packages/Az), version 9.1.0 or later.
12369

12470
Next, call [Set-AzStorageAccount](/powershell/module/az.storage/set-azstorageaccount), providing the resource ID for the user-assigned managed identity that you configured previously in the ISV's subscription, and the application (client) ID for the multi-tenant application that you configured previously in the ISV's subscription. Provide the key vault URI and key name from the customer's key vault.
12571

@@ -144,7 +90,34 @@ Set-AzStorageAccount -ResourceGroupName $isvRgName `
14490

14591
### [Azure CLI](#tab/azure-cli)
14692

147-
N/A
93+
To configure cross-tenant customer-managed keys for an existing storage account with Azure CLI, first install the Azure CLI, version 2.42.0 or later. For more information about installing Azure CLI, see [How to install the Azure CLI](/cli/azure/install-azure-cli).
94+
95+
Next, call [az storage account update](/cli/azure/storage/account#az-storage-account-update), providing the resource ID for the user-assigned managed identity that you configured previously in the ISV's subscription, and the application (client) ID for the multi-tenant application that you configured previously in the ISV's subscription. Provide the key vault URI and key name from the customer's key vault.
96+
97+
Remember to replace the placeholder values in brackets with your own values and to use the variables defined in the previous examples.
98+
99+
```azurecli
100+
accountName="<storage-account>"
101+
kvUri="<key-vault-uri>"
102+
keyName="<key-name>"
103+
multiTenantAppId="<multi-tenant-app-id>" # appId value from multi-tenant app
104+
105+
# Get the resource ID for the user-assigned managed identity.
106+
identityResourceId=$(az identity show --name $userIdentityName \
107+
--resource-group $isvRgName \
108+
--query id \
109+
--output tsv)
110+
111+
az storage account update --name $accountName \
112+
--resource-group $isvRgName \
113+
--identity-type SystemAssigned,UserAssigned \
114+
--user-identity-id $identityResourceId \
115+
--encryption-key-vault $kvUri \
116+
--encryption-key-name $keyName \
117+
--encryption-key-source Microsoft.Keyvault \
118+
--key-vault-user-identity-id $identityResourceId \
119+
--key-vault-federated-client-id $multiTenantAppId
120+
```
148121

149122
---
150123

articles/storage/common/customer-managed-keys-configure-cross-tenant-new-account.md

Lines changed: 7 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,26 @@
11
---
2-
title: Configure cross-tenant customer-managed keys for a new storage account (preview)
2+
title: Configure cross-tenant customer-managed keys for a new storage account
33
titleSuffix: Azure Storage
4-
description: Learn how to configure Azure Storage encryption with customer-managed keys in an Azure key vault that resides in a different tenant than the tenant where the storage account will be created (preview). Customer-managed keys allow a service provider to encrypt the customer's data using an encryption key that is managed by the service provider's customer and that isn't accessible to the service provider.
4+
description: Learn how to configure Azure Storage encryption with customer-managed keys in an Azure key vault that resides in a different tenant than the tenant where the storage account will be created. Customer-managed keys allow a service provider to encrypt the customer's data using an encryption key that is managed by the service provider's customer and that isn't accessible to the service provider.
55
services: storage
66
author: tamram
77

88
ms.service: storage
99
ms.topic: how-to
10-
ms.date: 10/28/2022
10+
ms.date: 10/31/2022
1111
ms.author: tamram
1212
ms.reviewer: ozgun
1313
ms.subservice: common
1414
ms.custom: devx-track-azurepowershell, devx-track-azurecli
1515
---
1616

17-
# Configure cross-tenant customer-managed keys for a new storage account (preview)
17+
# Configure cross-tenant customer-managed keys for a new storage account
1818

1919
Azure Storage encrypts all data in a storage account at rest. By default, data is encrypted with Microsoft-managed keys. For additional control over encryption keys, you can manage your own keys. Customer-managed keys must be stored in an Azure Key Vault or in an Azure Key Vault Managed Hardware Security Model (HSM).
2020

2121
This article shows how to configure encryption with customer-managed keys at the time that you create a new storage account. In the cross-tenant scenario, the storage account resides in a tenant managed by an ISV, while the key used for encryption of that storage account resides in a key vault in a tenant that is managed by the customer.
2222

23-
To learn how to configure customer-managed keys for an existing storage account, see [Configure cross-tenant customer-managed keys for an existing storage account (preview)](customer-managed-keys-configure-cross-tenant-existing-account.md).
24-
25-
## About the preview
26-
27-
To use the preview, you must register for the Azure Active Directory federated client identity feature in the ISV's tenant. Follow these instructions to register with PowerShell or Azure CLI:
28-
29-
### [PowerShell](#tab/powershell-preview)
30-
31-
To register with PowerShell, call the **Register-AzProviderFeature** command.
32-
33-
```azurepowershell
34-
Register-AzProviderFeature -ProviderNamespace Microsoft.Storage `
35-
-FeatureName FederatedClientIdentity
36-
```
37-
38-
To check the status of your registration with PowerShell, call the **Get-AzProviderFeature** command.
39-
40-
```azurepowershell
41-
Get-AzProviderFeature -ProviderNamespace Microsoft.Storage `
42-
-FeatureName FederatedClientIdentity
43-
```
44-
45-
After your registration is approved, you must re-register the Azure Storage resource provider. To re-register the resource provider with PowerShell, call the **Register-AzResourceProvider** command.
46-
47-
```azurepowershell
48-
Register-AzResourceProvider -ProviderNamespace 'Microsoft.Storage'
49-
```
50-
51-
### [Azure CLI](#tab/azure-cli-preview)
52-
53-
To register with Azure CLI, call the **az feature register** command.
54-
55-
```azurecli
56-
az feature register --namespace Microsoft.Storage \
57-
--name FederatedClientIdentity
58-
```
59-
60-
To check the status of your registration with Azure CLI, call the **az feature show** command.
61-
62-
```azurecli
63-
az feature show --namespace Microsoft.Storage \
64-
--name FederatedClientIdentity
65-
```
66-
67-
After your registration is approved, you must re-register the Azure Storage resource provider. To re-register the resource provider with Azure CLI, call the **az provider register command**.
68-
69-
```azurecli
70-
az provider register --namespace 'Microsoft.Storage'
71-
```
72-
73-
---
74-
75-
> [!IMPORTANT]
76-
> Using cross-tenant customer-managed keys with Azure Storage encryption is currently in PREVIEW.
77-
> See the [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/) for legal terms that apply to Azure features that are in beta, preview, or otherwise not yet released into general availability.
23+
To learn how to configure customer-managed keys for an existing storage account, see [Configure cross-tenant customer-managed keys for an existing storage account](customer-managed-keys-configure-cross-tenant-existing-account.md).
7824

7925
[!INCLUDE [active-directory-msi-cross-tenant-cmk-overview](../../../includes/active-directory-msi-cross-tenant-cmk-overview.md)]
8026

@@ -111,7 +57,7 @@ To configure cross-tenant customer-managed keys for a new storage account in the
11157

11258
### [PowerShell](#tab/azure-powershell)
11359

114-
To configure cross-tenant customer-managed keys for a new storage account in PowerShell, first install the [Az.Storage PowerShell module](https://www.powershellgallery.com/packages/Az.Storage/4.4.2-preview), version 4.4.2-preview.
60+
To configure cross-tenant customer-managed keys for a new storage account in PowerShell, first install the [Az.Storage PowerShell module](https://www.powershellgallery.com/packages/Az.Storage), version 5.1.0 or later. This module is installed with the [Az PowerShell module](https://www.powershellgallery.com/packages/Az), version 9.1.0 or later.
11561

11662
Next, call [New-AzStorageAccount](/powershell/module/az.storage/new-azstorageaccount), providing the resource ID for the user-assigned managed identity that you configured previously in the ISV's subscription, and the application (client) ID for the multi-tenant application that you configured previously in the ISV's subscription. Provide the key vault URI and key name from the customer's key vault.
11763

@@ -141,7 +87,7 @@ New-AzStorageAccount -ResourceGroupName $rgName `
14187

14288
### [Azure CLI](#tab/azure-cli)
14389

144-
To configure cross-tenant customer-managed keys for a new storage account with Azure CLI, first install the [storage-preview](https://github.com/Azure/azure-cli-extensions/tree/main/src/storage-preview) extension. For more information about installing Azure CLI extensions, see [How to install and manage Azure CLI extensions](/cli/azure/azure-cli-extensions-overview).
90+
To configure cross-tenant customer-managed keys for a new storage account with Azure CLI, first install the Azure CLI, version 2.42.0 or later. For more information about installing Azure CLI, see [How to install the Azure CLI](/cli/azure/install-azure-cli).
14591

14692
Next, call [az storage account create](/cli/azure/storage/account#az-storage-account-create), providing the resource ID for the user-assigned managed identity that you configured previously in the ISV's subscription, and the application (client) ID for the multi-tenant application that you configured previously in the ISV's subscription. Provide the key vault URI and key name from the customer's key vault.
14793

articles/storage/common/customer-managed-keys-overview.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ services: storage
66
author: tamram
77

88
ms.service: storage
9-
ms.date: 09/30/2022
9+
ms.date: 10/31/2022
1010
ms.topic: conceptual
1111
ms.author: tamram
1212
ms.reviewer: ozgun
@@ -70,8 +70,8 @@ You can configure customer-managed keys with the key vault and storage account i
7070

7171
To learn how to configure Azure Storage encryption with customer-managed keys when the key vault and storage account are in different Azure AD tenants, see one of the following articles:
7272

73-
- [Configure cross-tenant customer-managed keys for a new storage account (preview)](customer-managed-keys-configure-cross-tenant-new-account.md)
74-
- [Configure cross-tenant customer-managed keys for an existing storage account (preview)](customer-managed-keys-configure-cross-tenant-existing-account.md)
73+
- [Configure cross-tenant customer-managed keys for a new storage account](customer-managed-keys-configure-cross-tenant-new-account.md)
74+
- [Configure cross-tenant customer-managed keys for an existing storage account](customer-managed-keys-configure-cross-tenant-existing-account.md)
7575

7676
When you enable or disable customer-managed keys, or when you modify the key or the key version, the protection of the root encryption key changes, but the data in your Azure Storage account doesn't need to be re-encrypted.
7777

articles/storage/common/storage-service-encryption.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services: storage
55
author: tamram
66

77
ms.service: storage
8-
ms.date: 07/12/2022
8+
ms.date: 10/31/2022
99
ms.topic: conceptual
1010
ms.author: tamram
1111
ms.reviewer: ozgun
@@ -36,7 +36,7 @@ For information about encryption and key management for Azure managed disks, see
3636

3737
Data in a new storage account is encrypted with Microsoft-managed keys by default. You can continue to rely on Microsoft-managed keys for the encryption of your data, or you can manage encryption with your own keys. If you choose to manage encryption with your own keys, you have two options. You can use either type of key management, or both:
3838

39-
- You can specify a *customer-managed key* to use for encrypting and decrypting data in Blob Storage and in Azure Files.<sup>1,2</sup> Customer-managed keys must be stored in Azure Key Vault or Azure Key Vault Managed Hardware Security Model (HSM) (preview). For more information about customer-managed keys, see [Use customer-managed keys for Azure Storage encryption](./customer-managed-keys-overview.md).
39+
- You can specify a *customer-managed key* to use for encrypting and decrypting data in Blob Storage and in Azure Files.<sup>1,2</sup> Customer-managed keys must be stored in Azure Key Vault or Azure Key Vault Managed Hardware Security Model (HSM). For more information about customer-managed keys, see [Use customer-managed keys for Azure Storage encryption](./customer-managed-keys-overview.md).
4040
- You can specify a *customer-provided key* on Blob Storage operations. A client making a read or write request against Blob Storage can include an encryption key on the request for granular control over how blob data is encrypted and decrypted. For more information about customer-provided keys, see [Provide an encryption key on a request to Blob Storage](../blobs/encryption-customer-provided-keys.md).
4141

4242
By default, a storage account is encrypted with a key that is scoped to the entire storage account. Encryption scopes enable you to manage encryption with a key that is scoped to a container or an individual blob. You can use encryption scopes to create secure boundaries between data that resides in the same storage account but belongs to different customers. Encryption scopes can use either Microsoft-managed keys or customer-managed keys. For more information about encryption scopes, see [Encryption scopes for Blob storage](../blobs/encryption-scope-overview.md).

0 commit comments

Comments
 (0)