Edit

Configure encryption at rest with customer-managed keys for Azure Files

✔️ Applies to: Classic SMB and NFS file shares created with the Microsoft.Storage resource provider

✖️ Doesn't apply to: File shares created with the Microsoft.FileShares resource provider

Azure encrypts all data in a storage account at rest, including Azure Files data, by using AES-256 encryption. By default, Microsoft manages the encryption keys for a storage account. For more control over encryption keys, use customer-managed keys (CMK) instead of Microsoft-managed keys to protect and control access to the encryption key that encrypts your data. This article explains how to configure customer-managed keys for Azure Files workloads. For an overview of encryption at rest and key options, see Encryption at rest for Azure Files.

When you configure customer-managed keys for a storage account, Azure Files data in that storage account is automatically encrypted by using the customer key. No per-share opt-in is required.

To use a key in Azure Key Vault in the same Microsoft Entra tenant as the storage account, complete these sections in order:

  1. Create or configure a key vault
  2. Create or import an encryption key
  3. Create a managed identity and assign permissions
  4. Configure customer-managed keys on the storage account
  5. Verify the configuration

For other key locations, see these sections:

Create or configure a key vault

To enable customer-managed keys, you need an Azure storage account along with an Azure Key Vault with purge protection enabled. You can use an existing key vault or create a new one. The storage account and key vault can be in different regions or subscriptions within the same Microsoft Entra tenant. For cross-tenant scenarios, see About cross-tenant customer-managed keys.

To create a new key vault by using the Azure portal, follow these steps:

  1. In the Azure portal, search for Key vaults and select Create.
  2. Fill in the required fields (subscription, resource group, name, region).
  3. Under Recovery options, select Enable purge protection.
  4. Select Review + create, and then select Create.

If you want to use an existing key vault, follow these steps:

  1. Go to your key vault in the Azure portal.
  2. From the service menu, under Settings, select Properties.
  3. In the Purge protection section, select Enable purge protection, and then select Save.
  4. Make sure soft delete is enabled on your key vault. It's enabled by default for new key vaults.

Assign the Key Vault Crypto Officer role

To create and manage keys in your key vault, you need the Key Vault Crypto Officer role on the key vault. Assign this role to yourself by using the Azure portal, PowerShell, or Azure CLI. If you already have this role on the key vault, skip this section and go to Create or import an encryption key.

You need the Owner or User Access Administrator RBAC role on the key vault scope to assign the Key Vault Crypto Officer role. Contact your admin if needed.

To assign the Key Vault Crypto Officer role to yourself by using the Azure portal, follow these steps:

  1. Go to your key vault.
  2. From the service menu, select Access control (IAM).
  3. Under Grant access to this resource, select Add role assignment.
  4. Search for and select Key Vault Crypto Officer, and then select Next.
  5. Under Assign access to, select User, group, or service principal.
  6. Under Members, choose +Select members.
  7. Search for and select your own account, then choose Select.
  8. Select Review + assign, and then Review + assign again.

Create or import an encryption key

You need an RSA or RSA-HSM key of size 2048, 3072, or 4096. Generate or import an RSA key in your key vault. Before you generate a key, make sure you have the Key Vault Crypto Officer role on the key vault.

To generate a new RSA encryption key by using the Azure portal, follow these steps:

  1. Go to your key vault in the Azure portal.
  2. From the service menu, under Objects, select Keys.
  3. Select Generate/Import. Under Options, select Generate.
  4. Enter a name for the key. Key names can only contain alphanumeric characters and dashes.
  5. Set Key type to RSA and RSA key size to 2048, 3072, or 4096.
  6. Select Create.

To import an existing RSA encryption key by using the Azure portal, follow these steps:

  1. Go to your key vault in the Azure portal.
  2. From the service menu, under Objects, select Keys.
  3. Select Generate/Import. Under Options, select Import.
  4. Select your key to upload.
  5. Enter a name for the key. Key names can only contain alphanumeric characters and dashes.
  6. Set Key type to RSA.
  7. Select Create.

Create a managed identity and assign permissions

The storage account needs a managed identity to authenticate to the key vault. By using a managed identity, the storage account can securely access the encryption key in your key vault without storing credentials.

Create a user-assigned managed identity and grant that identity the Key Vault Crypto Service Encryption User role on the key vault.

Create a user-assigned managed identity

Create a user-assigned managed identity by using the Azure portal, Azure PowerShell, or Azure CLI.

To create a user-assigned managed identity by using the Azure portal, follow these steps:

  1. Search for Managed Identities and select Create.
  2. Choose a subscription, resource group, region, and name.
  3. Select Review + create, and then select Create.

Assign the Key Vault Crypto Service Encryption User role to the managed identity

Assign the Key Vault Crypto Service Encryption User role to the managed identity you created by using the Azure portal, PowerShell, or Azure CLI.

To assign the Key Vault Crypto Service Encryption User role to the managed identity by using the Azure portal, follow these steps:

  1. Go to your key vault in the Azure portal.
  2. From the service menu, select Access control (IAM).
  3. Under Grant access to this resource, select Add role assignment.
  4. Search for and select Key Vault Crypto Service Encryption User, and then select Next.
  5. Under Assign access to, select Managed identity.
  6. Under Members, choose +Select members.
  7. The Select managed identities window opens. Under Managed identity, select User-assigned managed identity.
  8. Select the managed identity that you created, and then choose Select.
  9. Select Review + assign, and then Review + assign again.

Configure customer-managed keys on the storage account

With the key vault, key, and managed identity in place, you can enable customer-managed keys on the storage account.

If you don't specify a key version, the storage account uses automatic key version updating (recommended). To use manual key version updating, specify a key version.

Important

For storage accounts that are associated with a network security perimeter, the key vault should ideally be in the same network security perimeter. If it isn't, then you must configure the network security perimeter profile of the key vault to allow the storage account to communicate with it.

Configure customer-managed keys for an existing storage account

You can configure customer-managed keys on an existing storage account by using the Azure portal, Azure PowerShell, or Azure CLI.

To configure customer-managed keys on an existing storage account by using the Azure portal, follow these steps. These steps use automatic key version updating. To use manual key version updating, select Enter key URI in step 4, and enter a key URI that includes the key version.

  1. Go to your storage account.
  2. From the service menu, under Security + networking, select Encryption.
  3. For Encryption type, select Customer-managed keys. If the storage account is already configured for CMK, select Change key.
  4. For Encryption key, select Select from key vault.
  5. Select Select a key vault and key. For Key store type, select Key vault. Choose your key vault and key, and then choose Select.
  6. For Identity type, choose User-assigned to use your previously created user-assigned managed identity.
  7. Select Select an identity. Search for and select the user-assigned managed identity, and then select Add.
  8. Select Save.

Screenshot showing the encryption selection and key selection for configuring customer-managed keys.

Configure customer-managed keys for a new storage account

You can configure customer-managed keys when you create a new storage account by using the Azure portal, Azure PowerShell, or Azure CLI.

You can't use a system-assigned identity during storage account creation because the identity doesn't exist until the storage account is created. You must use a user-assigned managed identity.

To configure customer-managed keys for a new storage account by using the Azure portal, follow these steps. These steps use automatic key version updating. To use manual key version updating, select Enter key from URI in step 2, and enter a key URI that includes the key version.

  1. On the Encryption tab during storage account creation, select Customer-managed keys (CMK) for Encryption type.

  2. For Encryption key, select Select a key vault and key.

  3. For Subscription, select the subscription that contains your key vault. The portal might default to a different subscription.

  4. For Key store type, select Key vault.

  5. Select your key vault and key.

  6. Under User-assigned identity, choose Select an identity. The Select user assigned managed identity window opens.

  7. Search for and select the user-assigned managed identity that you created. New storage accounts can't use a system-assigned managed identity.

  8. Select Add.

    Screenshot of the Encryption tab of the Create a storage account page, with customer-managed keys, a key vault, a key, and a user-assigned identity selected.

  9. Complete the remaining tabs, select Review and create, and then select Create.

Verify the configuration

After you enable customer-managed keys, confirm that encryption is properly configured on your storage account. You can do this by using the Azure portal, Azure PowerShell, or Azure CLI.

To verify the storage account configuration by using the Azure portal, follow these steps:

  1. Go to your storage account in the Azure portal.
  2. From the service menu, under Security + networking, select Encryption.
  3. Confirm that Encryption type shows Customer-managed keys.
  4. Verify that the information under Key selection is correct.

Use a key in Azure Key Vault Managed HSM

You can store the customer-managed key in Azure Key Vault Managed HSM instead of Azure Key Vault. The steps are different from the Key Vault sections in these ways:

  • Managed HSM uses its own local role-based access control (RBAC). You assign roles on the managed HSM, not with Azure RBAC on a key vault. Scope the role assignment for the storage account to the key, so that the managed identity can use only that key.
  • Keys in a managed HSM are RSA-HSM keys. Use a key of size 2048, 3072, or 4096.
  • The storage account uses the URI of the managed HSM in place of the key vault URI.

Before you begin, make sure that you have these items:

Create a key in the managed HSM, assign the Managed HSM Crypto Service Encryption User role to the managed identity, and configure the storage account to use the key. Role assignments can take a few minutes to take effect. If the storage account configuration fails with an authorization error, wait a few minutes and try again.

To create the key and assign the role, use the PowerShell or Azure CLI steps. Then configure the storage account in the Azure portal:

  1. Go to your storage account.
  2. From the service menu, under Security + networking, select Encryption.
  3. For Encryption type, select Customer-managed keys. If the storage account is already configured for customer-managed keys, select Change key.
  4. For Encryption key, select Select from key vault, and then select Select a key vault and key.
  5. For Key store type, select Managed HSM.
  6. Select your managed HSM and key, and then choose Select.
  7. For Identity type, select User-assigned, and then select your user-assigned managed identity.
  8. Select Save.

To create a new storage account that uses a key in a managed HSM, follow the steps in Configure customer-managed keys for a new storage account. Use the URI of the managed HSM as the key vault URI.

About cross-tenant customer-managed keys

Many service providers building Software as a Service (SaaS) offerings on Azure want to offer their customers the option to manage their own encryption keys. 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. In Azure, the service provider's customer can use Azure Key Vault to manage their encryption keys in their own Microsoft Entra tenant and subscription.

Azure platform services and resources that are owned by the service provider and that reside in the service provider's tenant require access to the key from the customer's tenant to perform the encryption/decryption operations.

The image below shows a data encryption at rest with federated identity in a cross-tenant customer-managed key workflow spanning a service provider and its customer.

Screenshot showing a cross-tenant customer-managed key with a federated identity.

In the example above, there are two Microsoft Entra tenants: an independent service provider's tenant (Tenant 1), and a customer's tenant (Tenant 2). Tenant 1 hosts Azure platform services and Tenant 2 hosts the customer's key vault.

A multitenant application registration is created by the service provider in Tenant 1. A federated identity credential is created on this application using a user-assigned managed identity. Then, the name and application ID of the app is shared with the customer.

A user with the appropriate permissions installs the service provider's application in the customer tenant, Tenant 2. A user then grants the service principal associated with the installed application access to the customer's key vault. The customer also stores the encryption key, or customer-managed key, in the key vault. The customer shares the key location (the URL of the key) with the service provider.

The service provider now has:

  • An application ID for a multitenant application installed in the customer's tenant, which has been granted access to the customer-managed key.
  • A managed identity configured as the credential on the multitenant application.
  • The location of the key in the customer's key vault.

With these three parameters, the service provider provisions Azure resources in Tenant 1 that can be encrypted with the customer-managed key in Tenant 2.

Let's divide the above end-to-end solution into three phases:

  1. The service provider configures identities.
  2. The customer grants the service provider's multitenant app access to an encryption key in Azure Key Vault.
  3. The service provider encrypts data in an Azure resource using the customer-managed key.

Operations in Phase 1 would be a one-time setup for most service provider applications. Operations in Phases 2 and 3 would repeat for each customer.

Phase 1 - The service provider configures a Microsoft Entra application

Step Description Minimum role in Azure RBAC Minimum role in Microsoft Entra RBAC
1. Create a new multitenant Microsoft Entra application registration or start with an existing application registration. Note the application ID (client ID) of the application registration using Azure portal, Microsoft Graph API, Azure PowerShell, or Azure CLI None Application Developer
2. Create a user-assigned managed identity (to be used as a Federated Identity Credential).
Azure portal / Azure CLI / Azure PowerShell/ Azure Resource Manager Templates
Managed identity contributor None
3. Configure user-assigned managed identity as a federated identity credential on the application, so that it can impersonate the identity of the application.
Graph API reference/ Azure portal/ Azure CLI/ Azure PowerShell
None Owner of the application
4. Share the application name and application ID with the customer, so that they can install and authorize the application. None None

Considerations for service providers

  • Azure Resource Manager (ARM) templates aren't recommended for creating Microsoft Entra applications.
  • The same multitenant application can be used to access keys in any number of tenants, like Tenant 2, Tenant 3, Tenant 4, and so on. In each tenant, an independent instance of the application is created that has the same application ID but a different object ID. Each instance of this application is thus authorized independently. Consider how the application object used for this feature is used to partition your application across all customers.
    • Application can have a maximum of 20 federated identity credentials, which requires a service provider to share federated identities among its customers. For more information about federated identities design considerations and restrictions, see Configure an app to trust an external identity provider
  • In rare scenarios, a service provider might use a single Application object per its customer, but that requires significant maintenance costs to manage applications at scale across all customers.
  • In the service provider tenant, it isn't possible to automate the Publisher Verification.

Phase 2 - The customer authorizes access to the key vault

Step Description Least privileged Azure RBAC roles Least privileged Microsoft Entra roles
1.
  • Recommended: Send the user to sign in to your app. If the user can sign in, then a service principal for your app exists in their tenant.
  • Use Microsoft Graph, Microsoft Graph PowerShell, Azure PowerShell, or Azure CLI to create the service principal.
  • Construct an admin-consent URL and grant tenant-wide consent to create the service principal using the application ID.
  • None Users with permissions to install applications
    2. Create an Azure Key Vault and a key used as the customer-managed key. A user must be assigned the Key Vault Contributor role to create the key vault

    A user must be assigned the Key Vault Crypto Officer role to add a key to the key vault
    None
    3. Grant the consented application identity access to the Azure key vault by assigning the role Key Vault Crypto Service Encryption User To assign the Key Vault Crypto Service Encryption User role to the application, you must have been assigned the User Access Administrator role. None
    4. Copy the key vault URL and key name into the customer-managed keys configuration of the SaaS offering. None None

    Note

    To authorize access to the Managed HSM for encryption using customer-managed keys, see example for Storage Account here. For more information about managing keys with Managed HSM, see Manage a Managed HSM using the Azure CLI

    Considerations for customers of service providers

    • In the customer tenant, Tenant 2, an admin can set policies to block non-admin users from installing applications. These policies can prevent non-admin users from creating service principals. If such a policy is configured, then users with permissions to create service principals need to be involved.
    • Access to Azure Key Vault can be authorized using Azure RBAC or access policies. When granting access to a key vault, make sure to use the active mechanism for your key vault.
    • A Microsoft Entra application registration has an application ID (client ID). When the application is installed in your tenant, a service principal is created. The service principal shares the same application ID as the app registration, but generates its own object ID. When you authorize the application to have access to resources, you might need to use the service principal Name or ObjectID property.

    Phase 3 - The service provider encrypts data in an Azure resource using the customer-managed key

    After phases 1 and 2 are complete, the service provider can configure encryption on the Azure resource with the key and key vault in the customer's tenant and the Azure resource in the ISV's tenant. The service provider can configure cross-tenant customer-managed keys with the client tools supported by that Azure resource, with an ARM template, or with the REST API.

    Configure cross-tenant customer-managed keys

    This section describes how to configure a cross-tenant customer-managed key and encrypt customer data. You learn how to encrypt customer data in a resource in Tenant1 using a customer-managed key stored in a key vault in Tenant2. You can use the Azure portal, Azure PowerShell, or Azure CLI.

    Sign in to the Azure portal and follow these steps.

    The service provider configures identities

    The following steps are performed by the service provider in the service provider's tenant Tenant1.

    The service provider creates a new multi-tenant app registration

    You can either create a new multi-tenant Microsoft Entra application registration or start with an existing multi-tenant application registration. If starting with an existing application registration, note the application ID (client ID) of the application.

    To create a new registration:

    1. Search for Microsoft Entra ID in the search box. Locate and select the Microsoft Entra ID extension.

    2. Select Manage > App registrations from the left pane.

    3. Select + New registration.

    4. Provide the name for the application registration and select Account in any organizational directory (Any Microsoft Entra directory – Multitenant).

    5. Select Register.

    6. Note the ApplicationId/ClientId of the application.

      Screen shot showing how to create a new multi-tenant application registration.

    The service provider creates a user-assigned managed identity

    Create a user-assigned managed identity to be used as a federated identity credential.

    1. Search for Managed Identities in the search box. Locate and select the Managed Identities extension.

    2. Select + Create.

    3. Provide the resource group, region, and name for the managed identity.

    4. Select Review + create.

    5. On successful deployment, note the Azure ResourceId of the user-assigned managed identity, which is available under Properties. For example:

      /subscriptions/tttttttt-0000-tttt-0000-tttt0000tttt/resourcegroups/XTCMKDemo/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ConsotoCMKDemoUA

      Screen shot showing how to create a resource group and a user-assigned managed identity.

    The service provider configures the user-assigned managed identity as a federated credential on the application

    Configure a user-assigned managed identity as a federated identity credential on the application, so that it can impersonate the identity of the application.

    1. Navigate to Microsoft Entra ID > App registrations > your application.

    2. Select Certificates & secrets.

    3. Select Federated credentials.

      Screen shot showing how to navigate to Certificate and secrets.

    4. Select + Add credential.

    5. Under Federated credential scenario, select Managed Identity.

    6. Click Select a managed identity. From the pane, select the subscription. Under Managed identity, select User-assigned managed identity. In the Select box, search for the managed identity you created earlier, then click Select at the bottom of the pane.

      Screen shot showing how to select a managed identity.

    7. Under Credential details, provide a name and optional description for the credential and select Add.

      Screen shot showing how to add a credential.

    The service provider shares the application ID with the customer

    Find the application ID (client ID) of the multi-tenant application and share it with the customer.

    The customer grants the service provider's app access to the key in the key vault

    The following steps are performed by the customer in the customer's tenant Tenant2. The customer can use the Azure portal, Azure PowerShell, or Azure CLI.

    The user executing the steps must be an administrator with a privileged role such as Application Administrator, Cloud Application Administrator, or Global Administrator.

    Sign in to the Azure portal and follow these steps.

    The customer installs the service provider application in the customer tenant

    To install the service provider's registered application in the customer's tenant, you create a service principal with the application ID from the registered app. You can create the service principal in either of the following ways:

    The customer creates a key vault

    To create the key vault, the user's account must be assigned the Key Vault Contributor role or another role that permits creation of a key vault.

    1. From the Azure portal menu, or from the Home page, select + Create a resource. In the Search box, enter Key vaults. From the results list, select Key vaults. On the Key vaults page, select Create.

    2. On the Basics tab, choose a subscription. Under Resource group, select Create new and enter a resource group name.

    3. Enter a unique name for the key vault.

    4. Select a region and pricing tier.

    5. Enable purge protection for the new key vault.

    6. On the Access policy tab, select Azure role-based access control for Permission model.

    7. Select Review + create and then Create.

      Screen shot showing how to create a key vault.

    Take note of the key vault name and URI Applications that access your key vault must use this URI.

    For more information, see Quickstart - Create an Azure Key Vault with the Azure portal.

    The customer assigns Key Vault Crypto Officer role to a user account

    This step ensures that you can create encryption keys.

    1. Navigate to your key vault and select Access Control (IAM) from the left pane.
    2. Under Grant access to this resource, select Add role assignment.
    3. Search for and select Key Vault Crypto Officer.
    4. Under Members, select User, group, or service principal.
    5. Select Members and search for your user account.
    6. Select Review + Assign.

    The customer creates an encryption key

    To create the encryption key, the user's account must be assigned the Key Vault Crypto Officer role or another role that permits creation of a key.

    1. On the Key Vault properties page, select Keys.
    2. Select Generate/Import.
    3. On the Create a key screen, specify a name for the key. Leave the other values to their defaults.
    4. Select Create.
    5. Copy the key URI.

    The customer grants the service provider application access to the key vault

    Assign the Azure RBAC role Key Vault Crypto Service Encryption User to the service provider's registered application so that it can access the key vault.

    1. Navigate to your key vault and select Access Control (IAM) from the left pane.
    2. Under Grant access to this resource, select Add role assignment.
    3. Search for and select Key Vault Crypto Service Encryption User.
    4. Under Members, select User, group, or service principal.
    5. Select Members and search for the application name of the application you installed from the service provider.
    6. Select Review + Assign.

    Now you can configure customer-managed keys with the key vault URI and key.

    The service provider configures customer-managed keys for an existing storage account

    Up to this point, you configured the multitenant application on the ISV's tenant, installed the application on the customer's tenant, and configured the key vault and key on the customer's tenant. Next, you can configure customer-managed keys on an existing storage account with the key from the customer's tenant.

    The following examples show how to configure customer-managed keys on an existing storage account by using a user-assigned managed identity to authorize access to the key vault. You can also use a system-assigned managed identity to configure customer-managed keys on an existing storage account. In either case, the managed identity must have appropriate permissions to access the key vault. For more information, see Authenticate to Azure Key Vault.

    When you configure encryption with customer-managed keys for an existing storage account, you can choose to automatically update the key version used for encryption whenever a new version is available in the associated key vault. To enable this feature, omit the key version from the key URI. Alternatively, you can explicitly specify a key version to be used for encryption until the key version is manually updated. Including the key version on the key URI configures customer-managed keys for manual updating of the key version.

    To configure cross-tenant customer-managed keys for an existing storage account in the Azure portal, follow these steps:

    1. Go to your storage account.

    2. Under Security + networking, select Encryption. By default, key management is set to Microsoft-managed keys.

    3. Select the Customer-managed keys option.

    4. Choose the Select from Key Vault option.

    5. Select Enter key URI, and specify the key URI. Omit the key version from the URI if you want Azure Files to automatically check for a new key version and update it.

    6. Select the subscription that contains the key vault and key.

    7. In the Identity type field, select User-assigned, then specify the managed identity with the federated identity credential that you created previously.

    8. Expand the Advanced section, and select the multitenant registered application that you previously created in the ISV's tenant.

      Screenshot showing how to configure cross-tenant customer-managed keys for an existing storage account in Azure portal.

    9. Save your changes.

    After you specify the key from the key vault in the customer's tenant, the Azure portal indicates that customer-managed keys are configured with that key. It also indicates that automatic updating of the key version is enabled, and displays the key version currently in use for encryption. The portal also displays the type of managed identity used to authorize access to the key vault, the principal ID for the managed identity, and the application ID of the multitenant application.

    Screenshot showing cross-tenant customer-managed key configuration.

    The service provider creates a new storage account encrypted with the customer's key

    You can also create a new storage account on the ISV's tenant and configure customer-managed keys with the key from the customer's tenant.

    You must use an existing user-assigned managed identity to authorize access to the key vault when you configure customer-managed keys while creating the storage account. The user-assigned managed identity must have appropriate permissions to access the key vault. For more information, see Authenticate to Azure Key Vault.

    When you configure encryption with customer-managed keys for a new storage account, you can choose to automatically update the key version used for encryption whenever a new version is available in the associated key vault. To do so, omit the key version from the key URI. Alternately, you can explicitly specify a key version to be used for encryption until the key version is manually updated. Including the key version on the key URI configures customer-managed keys for manual updating of the key version.

    To configure cross-tenant customer-managed keys for a new storage account in the Azure portal, follow these steps:

    1. In the Azure portal, go to the Storage accounts page in the ISV's tenant, and select the Create button to create a new account.

    2. Follow the steps outlined in Create a classic file share to fill out the fields on the Basics, Advanced, Networking, and Data Protection tabs.

    3. On the Encryption tab, indicate for which services you want to enable support for customer-managed keys in the Enable support for customer-managed keys field.

    4. In the Encryption type field, select Customer-managed keys (CMK).

    5. In the Encryption key field, choose Enter key from key vault, and specify the key URI. Omit the key version from the URI if you want Azure Files to automatically check for a new key version and update it.

    6. For the User-assigned identity field, search for the user-assigned managed identity that you created previously in the ISV's tenant.

    7. Expand the Advanced section, and select the multitenant registered application that you previously created in the ISV's tenant.

      Screenshot showing how to configure cross-tenant customer-managed keys for a new storage account in Azure portal.

    8. Select the Review button to validate and create the account.

    You can also configure customer-managed keys with manual updating of the key version when you create a new storage account. To do so, include the key version when you specify the key URI.

    To rotate or change the key, revoke access, or switch back to Microsoft-managed keys, use the steps in the following sections. These steps are the same for cross-tenant customer-managed keys.

    Key rotation

    Regularly rotating your encryption key limits the exposure if a key is ever compromised. There are two ways to rotate encryption for a storage account that uses customer-managed keys:

    • Rotate the key version - Create a new version of the same key in the key vault. The key name stays the same, but the version changes.
    • Change the key - Switch the storage account to use an entirely different key (with a different name) in the same or a different key vault.

    Important

    Azure checks the key vault for a new key version only once daily. After rotating a key, wait 24 hours before disabling the previous key version.

    Rotate the key version

    For security best practices, rotate the key version at least once every two years.

    If you configure customer-managed keys without specifying a key version (the default), Azure automatically checks for new key versions daily. If you create a new version of the key in key vault, Azure picks it up within 24 hours. You can also configure automatic key rotation in Azure Key Vault to generate new key versions on a schedule.

    Manual key version rotation

    If you specify a key version when you configure customer-managed keys, Azure uses that specific version and doesn't automatically check for new versions. You must manually update the storage account configuration to point to the new key version.

    To manually rotate the key version by using the Azure portal, follow these steps:

    1. Go to your key vault. From the service menu, under Objects, select Keys.
    2. Select the key, and then select the new key version. Copy the value of Key Identifier. The value includes the key version.
    3. Go to your storage account. From the service menu, under Security + networking, select Encryption.
    4. Select Change key.
    5. For Encryption key, select Enter key URI, and then paste the key identifier into Key URI.
    6. Select Save.

    Change the key

    To switch the storage account to use an entirely different key, create or import a new key in your key vault (see Create or import an encryption key), and then update the storage account encryption configuration to use the new key.

    To change the key by using the Azure portal, follow these steps:

    1. Go to your storage account.
    2. From the service menu, under Security + networking, select Encryption.
    3. Select Change key.
    4. Select Select a key vault and key. For Key store type, select Key vault. Choose your key vault and new key, and then choose Select.
    5. Select Save.

    Revoke access to file share data by disabling the key

    You can block access to encrypted file share data by disabling or deleting the customer-managed key. Access isn't blocked immediately. It can take several minutes after you disable the key for data plane operations to start failing. While the key is disabled, all Azure Files data plane operations fail with HTTP 403 (Forbidden), including:

    • List directories and files
    • Create, get, or set directory or file
    • Get or set file metadata
    • Put range, copy file, rename file

    To revoke access to your file share data, disable the key in key vault by using the Azure portal, Azure PowerShell, or Azure CLI. Re-enable the key to restore access.

    To disable the key by using the Azure portal, follow these steps:

    1. Go to your key vault in the Azure portal.
    2. From the service menu, under Objects, select Keys.
    3. Right-click the key and select Disable.

    Switch back to Microsoft-managed keys

    If you no longer need customer-managed keys, you can switch the storage account back to using Microsoft-managed keys for encryption by using the Azure portal, Azure PowerShell, or Azure CLI.

    To switch back to Microsoft-managed keys by using the Azure portal, follow these steps:

    1. Go to your storage account in the Azure portal.
    2. From the service menu, under Security + networking, select Encryption.
    3. Change Encryption type to Microsoft-managed keys.
    4. Select Save.