Skip to content

Commit 2afd3cb

Browse files
authored
Merge pull request #257604 from MicrosoftDocs/release-esan-preview-two
Merging release branch to main for release
2 parents 4f4330c + c422822 commit 2afd3cb

17 files changed

+756
-87
lines changed

articles/storage/elastic-san/TOC.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ items:
2222
href: elastic-san-performance.md
2323
- name: Clustered applications
2424
href: elastic-san-shared-volumes.md
25+
- name: Encryption
26+
href: elastic-san-encryption-overview.md
2527
- name: How to
2628
items:
2729
- name: Deploy an Elastic SAN
@@ -38,6 +40,12 @@ items:
3840
href: elastic-san-expand.md
3941
- name: Delete an Elastic SAN
4042
href: elastic-san-delete.md
43+
- name: Manage Encryption
44+
items:
45+
- name: Configure customer-managed keys with Key Vault
46+
href: elastic-san-configure-customer-managed-keys.md
47+
- name: Manage customer keys
48+
href: elastic-san-encryption-manage-customer-keys.md
4149
- name: Samples
4250
items:
4351
- name: Create elastic SAN volumes in a batch

articles/storage/elastic-san/elastic-san-configure-customer-managed-keys.md

Lines changed: 399 additions & 0 deletions
Large diffs are not rendered by default.

articles/storage/elastic-san/elastic-san-connect-aks.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ The iSCSI CSI driver for Kubernetes is [licensed under the Apache 2.0 license](h
3131
- Use either the [latest Azure CLI](/cli/azure/install-azure-cli) or install the [latest Azure PowerShell module](/powershell/azure/install-azure-powershell)
3232
- Meet the [compatibility requirements](https://github.com/kubernetes-csi/csi-driver-iscsi/blob/master/README.md#container-images--kubernetes-compatibility) for the iSCSI CSI driver
3333
- [Deploy an Elastic SAN Preview](elastic-san-create.md)
34-
- [Configure a virtual network endpoint](elastic-san-networking.md#configure-a-virtual-network-endpoint)
34+
- [Configure a virtual network endpoint](elastic-san-networking.md)
3535
- [Configure virtual network rules](elastic-san-networking.md#configure-virtual-network-rules)
3636

3737
## Limitations
@@ -57,13 +57,13 @@ kubectl -n kube-system get pod -o wide -l app=csi-iscsi-node
5757

5858
You need the volume's StorageTargetIQN, StorageTargetPortalHostName, and StorageTargetPortalPort.
5959

60-
You may get them with the following Azure PowerShell command:
60+
You can get them with the following Azure PowerShell command:
6161

6262
```azurepowershell
6363
Get-AzElasticSanVolume -ResourceGroupName $resourceGroupName -ElasticSanName $sanName -VolumeGroupName $searchedVolumeGroup -Name $searchedVolume
6464
```
6565

66-
You may also get them with the following Azure CLI command:
66+
You can also get them with the following Azure CLI command:
6767

6868
```azurecli
6969
az elastic-san volume show --elastic-san-name --name --resource-group --volume-group-name

articles/storage/elastic-san/elastic-san-connect-linux.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ In this article, you'll add the Storage service endpoint to an Azure virtual net
1919

2020
- Use either the [latest Azure CLI](/cli/azure/install-azure-cli) or install the [latest Azure PowerShell module](/powershell/azure/install-azure-powershell)
2121
- [Deploy an Elastic SAN Preview](elastic-san-create.md)
22-
- [Configure a virtual network endpoint](elastic-san-networking.md#configure-a-virtual-network-endpoint)
22+
- [Configure a virtual network endpoint](elastic-san-networking.md)
2323
- [Configure virtual network rules](elastic-san-networking.md#configure-virtual-network-rules)
2424

2525
## Limitations

articles/storage/elastic-san/elastic-san-connect-windows.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ In this article, you add the Storage service endpoint to an Azure virtual networ
1919

2020
- Use either the [latest Azure CLI](/cli/azure/install-azure-cli) or install the [latest Azure PowerShell module](/powershell/azure/install-azure-powershell)
2121
- [Deploy an Elastic SAN Preview](elastic-san-create.md)
22-
- [Configure a virtual network endpoint](elastic-san-networking.md#configure-a-virtual-network-endpoint)
22+
- [Configure a virtual network endpoint](elastic-san-networking.md)
2323
- [Configure virtual network rules](elastic-san-networking.md#configure-virtual-network-rules)
2424

2525
## Limitations

articles/storage/elastic-san/elastic-san-create.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ This article explains how to deploy and configure an elastic storage area networ
1717

1818
- If you're using Azure PowerShell, install the [latest Azure PowerShell module](/powershell/azure/install-azure-powershell).
1919
- If you're using Azure CLI, install the [latest version](/cli/azure/install-azure-cli).
20-
- Once you've installed the latest version, run `az extension add -n elastic-san` to install the extension for Elastic SAN.
20+
- Once you've installed the latest version, run `az extension add -n elastic-san` to install the extension for Elastic SAN.
2121
There are no additional registration steps required.
2222

2323
## Limitations
@@ -44,7 +44,7 @@ There are no additional registration steps required.
4444

4545
# [PowerShell](#tab/azure-powershell)
4646

47-
Use one of these sets of sample code to create an Elastic SAN that uses locally redundant storage or zone-redundant storage. Replace all placeholder text with your own values and use the same variables in of all the examples in this article:
47+
Use one of these sets of sample code to create an Elastic SAN that uses locally redundant storage or zone-redundant storage. Replace all placeholder text with your own values and use the same variables in all of the examples in this article:
4848

4949
| Placeholder | Description |
5050
|----------------------------------|-------------|
@@ -89,7 +89,7 @@ New-AzElasticSAN -ResourceGroupName $RgName -Name $EsanName -Location $Location
8989

9090
# [Azure CLI](#tab/azure-cli)
9191

92-
Use one of these sets of sample code to create an Elastic SAN that uses locally redundant storage or zone-redundant storage. Replace all placeholder text with your own values and use the same variables in of all the examples in this article:
92+
Use one of these sets of sample code to create an Elastic SAN that uses locally redundant storage or zone-redundant storage. Replace all placeholder text with your own values and use the same variables in all of the examples in this article:
9393

9494
| Placeholder | Description |
9595
|----------------------------------|-------------|
@@ -205,4 +205,4 @@ az elastic-san volume create --elastic-san-name $EsanName -g $RgName -v $EsanVgN
205205

206206
## Next steps
207207

208-
Now that you've deployed an Elastic SAN, Connect to Elastic SAN (preview) volumes from either [Windows](elastic-san-connect-windows.md) or [Linux](elastic-san-connect-linux.md) clients.
208+
Now that you've deployed an Elastic SAN, Connect to Elastic SAN (preview) volumes from either [Windows](elastic-san-connect-windows.md) or [Linux](elastic-san-connect-linux.md) clients.

articles/storage/elastic-san/elastic-san-delete.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,21 +62,21 @@ iscsiadm --mode node --target **yourStorageTargetIQN** --portal **yourStorageTar
6262

6363
## Delete a SAN
6464

65-
When your SAN has no active connections to any clients, you may delete it using the Azure portal or Azure PowerShell module. If you delete a SAN or a volume group, the corresponding child resources will be deleted along with it. The delete commands for each of the resource levels are below.
65+
You can delete your SAN by using the Azure portal, Azure PowerShell, or Azure CLI. If you delete a SAN or a volume group, the corresponding child resources will be deleted along with it. The delete commands for each of the resource levels are below.
6666

6767

68-
To delete volumes, run the following commands.
68+
The following commands delete your volumes. These commands use `ForceDelete false`, `-DeleteSnapshot false`, `--x-ms-force-delete false`, and `--x-ms-delete-snapshots false` parameters for PowerShell and CLI, respectively. If you set `ForceDelete` or `--x-ms-force-delete` to `true`, it'll cause volume deletion to succeed even if you've active iSCSI connections. If you set `-DeleteSnapshot` or `--x-ms-delete-snapshots` to `true`, it'll delete all snapshots associated with the volume, as well as the volume itself.
6969

7070
# [PowerShell](#tab/azure-powershell)
7171

7272
```azurepowershell
73-
Remove-AzElasticSanVolume -ResourceGroupName $resourceGroupName -ElasticSanName $sanName -VolumeGroupName $volumeGroupName -Name $volumeName
73+
Remove-AzElasticSanVolume -ResourceGroupName $resourceGroupName -ElasticSanName $sanName -VolumeGroupName $volumeGroupName -Name $volumeName -ForceDelete false -DeleteSnapshot false
7474
```
7575

7676
# [Azure CLI](#tab/azure-cli)
7777

7878
```azurecli
79-
az elastic-san volume delete -e $sanName -g $resourceGroupName -v $volumeGroupName -n $volumeName
79+
az elastic-san volume delete -e $sanName -g $resourceGroupName -v $volumeGroupName -n $volumeName --x-ms-force-delete false --x-ms-delete-snapshots false
8080
```
8181
---
8282

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
---
2+
title: Learn how to manage keys for Elastic SAN Preview
3+
titleSuffix: Azure Elastic SAN Storage
4+
description: Learn how to manage keys for Elastic SAN Preview
5+
author: roygara
6+
7+
ms.service: azure-elastic-san-storage
8+
ms.topic: how-to
9+
ms.date: 11/06/2023
10+
ms.author: rogarana
11+
ms.reviewer: jaylansdaal
12+
---
13+
14+
# Learn how to manage keys for Elastic SAN Preview
15+
16+
All data written to an Elastic SAN volume is automatically encrypted-at-rest with a data encryption key (DEK). Azure DEKs are always *platform-managed* (managed by Microsoft). Azure uses [envelope encryption](../../security/fundamentals/encryption-atrest.md#envelope-encryption-with-a-key-hierarchy), also referred to as wrapping, which involves using a Key Encryption Key (KEK) to encrypt the DEK. By default, the KEK is platform-managed, but you can create and manage your own KEK. [Customer-managed keys](elastic-san-encryption-overview.md#customer-managed-keys) offer greater flexibility to manage access controls and can help you meet your organization security and compliance requirements.
17+
18+
You control all aspects of your key encryption keys, including:
19+
20+
- Which key is used
21+
- Where your keys are stored
22+
- How the keys are rotated
23+
- The ability to switch between customer-managed and platform-managed keys
24+
25+
This article tells you how to manage your customer-managed KEKs.
26+
27+
> [!NOTE]
28+
> Envelope encryption allows you to change your key configuration without impacting your Elastic SAN volumes. When you make a change, the Elastic SAN service re-encrypts the data encryption keys with the new keys. The protection of the data encryption key changes, but the data in your Elastic SAN volumes remain encrypted at all times. There is no additional action required on your part to ensure that your data is protected. Changing the key configuration doesn't impact performance, and there is no downtime associated with such a change.
29+
30+
## Limitations
31+
32+
[!INCLUDE [elastic-san-regions](../../../includes/elastic-san-regions.md)]
33+
34+
## Change the key
35+
36+
You can change the key that you're using for Azure Elastic SAN encryption at any time.
37+
38+
To change the key with PowerShell, call [Update-AzElasticSanVolumeGroup](/powershell/module/az.elasticsan/update-azelasticsanvolumegroup) and provide the new key name and version. If the new key is in a different key vault, then you must also update the key vault URI.
39+
40+
41+
If the new key is in a different key vault, you must [grant the managed identity access to the key in the new vault](elastic-san-configure-customer-managed-keys.md#choose-a-managed-identity-to-authorize-access-to-the-key-vault). If you opt for manual updating of the key version, you'll also need to [update the key vault URI](elastic-san-configure-customer-managed-keys.md#manual-key-version-rotation).
42+
43+
## Update the key version
44+
45+
Following cryptographic best practices means to rotate the key that is protecting your Elastic SAN volume group on a regular schedule, typically at least every two years. Azure Elastic SAN never modifies the key in the key vault, but you can configure a key rotation policy to rotate the key according to your compliance requirements. For more information, see [Configure cryptographic key auto-rotation in Azure Key Vault](../../key-vault/keys/how-to-configure-key-rotation.md).
46+
47+
After the key is rotated in the key vault, the customer-managed KEK configuration for your Elastic SAN volume group must be updated to use the new key version. Customer-managed keys support both automatic and manual updating of the KEK version. You can decide which approach you want to use when you initially configure customer-managed keys, or when you update your configuration.
48+
49+
When you modify the key or the key version, the protection of the root encryption key changes, but the data in your Azure Elastic SAN volume group remains encrypted at all times. There's no extra action required on your part to ensure that your data is protected. Rotating the key version doesn't impact performance, and there's no downtime associated with rotating the key version.
50+
51+
> [!IMPORTANT]
52+
> To rotate a key, create a new version of the key in the key vault, according to your compliance requirements. Azure Elastic SAN does not handle key rotation, so you will need to manage rotation of the key in the key vault.
53+
>
54+
> When you rotate the key used for customer-managed keys, that action is not currently logged to the Azure Monitor logs for Azure Elastic SAN.
55+
56+
### Automatically update the key version
57+
58+
To automatically update a customer-managed key when a new version is available, omit the key version when you enable encryption with customer-managed keys for the Elastic SAN volume group. If the key version is omitted, then Azure Elastic SAN checks the key vault daily for a new version of a customer-managed key. If a new key version is available, then Azure Elastic SAN automatically uses the latest version of the key.
59+
60+
Azure Elastic SAN checks the key vault for a new key version only once daily. When you rotate a key, be sure to wait 24 hours before disabling the older version.
61+
62+
If the Elastic SAN volume group was previously configured for manual updating of the key version and you want to change it to update automatically, you might need to explicitly change the key version to an empty string. For details on how to do this, see [Manual key version rotation](elastic-san-configure-customer-managed-keys.md#manual-key-version-rotation).
63+
64+
### Manually update the key version
65+
66+
To use a specific version of a key for Azure Elastic SAN encryption, specify that key version when you enable encryption with customer-managed keys for the Elastic SAN volume group. If you specify the key version, then Azure Elastic SAN uses that version for encryption until you manually update the key version.
67+
68+
When the key version is explicitly specified, then you must manually update the Elastic SAN volume group to use the new key version URI when a new version is created. To learn how to update the Elastic SAN volume group to use a new version of the key, see [Configure encryption with customer-managed keys stored in Azure Key Vault](elastic-san-configure-customer-managed-keys.md).
69+
70+
## Revoke access to a volume group that uses customer-managed keys
71+
72+
To temporarily revoke access to an Elastic SAN volume group that is using customer-managed keys, disable the key currently being used in the key vault. There's no performance impact or downtime associated with disabling and reenabling the key.
73+
74+
After the key has been disabled, clients can't call operations that read from or write to volumes in the volume group or their metadata.
75+
76+
77+
> [!CAUTION]
78+
> When you disable the key in the key vault, the data in your Azure Elastic SAN volume group remains encrypted, but it becomes inaccessible until you reenable the key.
79+
80+
To revoke a customer-managed key with PowerShell, call the [Update-AzKeyVaultKey](/powershell/module/az.keyvault/update-azkeyvaultkey) command, as shown in the following example. Remember to replace the placeholder values in brackets with your own values to define the variables, or use the variables defined in the previous examples.
81+
82+
```azurepowershell
83+
$KvName = "<key-vault-name>"
84+
$KeyName = "<key-name>"
85+
$enabled = $false
86+
# $false to disable the key / $true to enable it
87+
88+
# Check the current state of the key (before and after enabling/disabling it)
89+
Get-AzKeyVaultKey -Name $KeyName -VaultName $KvName
90+
91+
# Disable (or enable) the key
92+
Update-AzKeyVaultKey -VaultName $KvName -Name $KeyName -Enable $enabled
93+
```
94+
95+
## Switch back to platform-managed keys
96+
97+
You can switch from customer-managed keys back to platform-managed keys at any time, using the Azure PowerShell module.
98+
99+
To switch from customer-managed keys back to platform-managed keys with PowerShell, call [Update-AzElasticSanVolumeGroup](/powershell/module/az.elasticsan/update-azelasticsanvolumegroup) with the `-Encryption` option, as shown in the following example. Remember to replace the placeholder values with your own values and to use the variables defined in the previous examples.
100+
101+
```azurepowershell
102+
Update-AzElasticSanVolumeGroup -ResourceGroupName "ResourceGroupName" -ElasticSanName "ElasticSanName" -Name "ElasticSanVolumeGroupName" -Encryption EncryptionAtRestWithPlatformKey
103+
```
104+
105+
106+
## See also
107+
108+
- [Configure customer-managed keys for an Elastic SAN volume group](elastic-san-configure-customer-managed-keys.md)

0 commit comments

Comments
 (0)