You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/key-vault/keys/about-keys.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,13 +9,13 @@ tags: azure-resource-manager
9
9
ms.service: key-vault
10
10
ms.subservice: keys
11
11
ms.topic: overview
12
-
ms.date: 02/17/2021
12
+
ms.date: 01/24/2023
13
13
ms.author: mbaldwin
14
14
---
15
15
16
16
# About keys
17
17
18
-
Azure Key Vault provides two types of resources to store and manage cryptographic keys. Vaults support software-protected and HSM-protected (Hardware Security Module) keys. Managed HSMs only support HSM-protected keys.
18
+
Azure Key Vault provides two types of resources to store and manage cryptographic keys. Vaults support software-protected and HSM-protected (Hardware Security Module) keys. Managed HSMs only support HSM-protected keys.
19
19
20
20
|Resource type|Key protection methods|Data-plane endpoint base URL|
@@ -20,7 +19,7 @@ This document describes specifications for importing HSM-protected keys from cus
20
19
21
20
## Scenario
22
21
23
-
A Key Vault customer would like to securely transfer a key from their on-premises HSM outside Azure, into the HSM backing Azure Key Vault. The process of importing a key generated outside Key Vault is generally referred to as Bring Your Own Key (BYOK).
22
+
A Key Vault customer would like to securely transfer a key from their on-premises HSM outside Azure, into the HSM backing Azure Key Vault. The process of importing a key generated outside Key Vault is referred to as Bring Your Own Key (BYOK).
24
23
25
24
The following are the requirements:
26
25
* The key to be transferred never exists outside an HSM in plain text form.
@@ -31,7 +30,7 @@ The following are the requirements:
Wrapping Key|AES|Vendor HSM|An [ephemeral] AES key generated by HSM on-prem
33
+
Wrapping Key|AES|Vendor HSM|An [ephemeral] AES key generated by HSM on-premises
35
34
Target Key|RSA, EC, AES (Managed HSM only)|Vendor HSM|The key to be transferred to the Azure Key Vault HSM
36
35
37
36
**Key Exchange Key**: An HSM-backed key that customer generates in the key vault where the BYOK key will be imported. This KEK must have following properties:
@@ -51,20 +50,19 @@ To perform a key transfer, a user performs following steps:
51
50
52
51
Customers use the BYOK tool and documentation provided by HSM vendor to complete Steps 3. It produces a Key Transfer Blob (a ".byok" file).
53
52
54
-
55
53
## HSM constraints
56
54
57
55
Existing HSM may apply constraints on key that they manage, including:
58
56
* The HSM may need to be configured to allow key wrap-based export
59
57
* The target key may need to be marked CKA_EXTRACTABLE for the HSM to allow controlled export
60
-
* In some cases, the KEK and wrapping key may need to be marked as CKA_TRUSTED. This allows it to be used to wrap keys in the HSM.
58
+
* In some cases, the KEK and wrapping key may need to be marked as CKA_TRUSTED, which allows it to be used to wrap keys in the HSM.
61
59
62
60
The configuration of source HSM is, generally, outside the scope of this specification. Microsoft expects the HSM vendor to produce documentation accompanying their BYOK tool to include any such configuration steps.
63
61
64
62
> [!NOTE]
65
-
> Steps 1, 2, and 4 described below can be performed using other interfaces such as Azure PowerShell and Azure Portal. They can also be performed programmatically using equivalent functions in Key Vault SDK.
63
+
> Several of these steps can be performed using other interfaces such as Azure PowerShell and Azure Portal. They can also be performed programmatically using equivalent functions in Key Vault SDK.
66
64
67
-
### Step 1: Generate KEK
65
+
### Generate KEK
68
66
69
67
Use the **az keyvault key create** command to create KEK with key operations set to import. Note down the key identifier 'kid' returned from the below command.
> Services support different KEK lengths; Azure SQL, for instance, only supports key lengths of [2048 or 3072 bytes](/azure/azure-sql/database/transparent-data-encryption-byok-overview#requirements-for-configuring-customer-managed-tde). Consult the documentation for your service for specifics.
77
75
78
-
### Step 2: Retrieve the public key of the KEK
76
+
### Retrieve the public key of the KEK
79
77
80
78
Download the public key portion of the KEK and store it into a PEM file.
81
79
82
80
```azurecli
83
81
az keyvault key download --name KEKforBYOK --vault-name ContosoKeyVaultHSM --file KEKforBYOK.publickey.pem
84
82
```
85
83
86
-
### Steps 3: Generate key transfer blob using HSM vendor provided BYOK tool
84
+
### Generate key transfer blob using HSM vendor provided BYOK tool
87
85
88
86
Customer will use HSM Vendor provided BYOK tool to create a key transfer blob (stored as a ".byok" file). KEK public key (as a .pem file) will be one of the inputs to this tool.
89
87
@@ -121,16 +119,16 @@ If CKM_RSA_AES_KEY_WRAP_PAD is used, the JSON serialization of the transfer blob
121
119
122
120
* kid = key identifier of KEK. For Key Vault keys it looks like this: https://ContosoKeyVaultHSM.vault.azure.net/keys/mykek/eba63d27e4e34e028839b53fac905621
123
121
* alg = algorithm.
124
-
* dir = Direct mode, i.e. the referenced kid is used to directly protect the ciphertext which is an accurate representation of CKM_RSA_AES_KEY_WRAP
122
+
* dir = Direct mode, that is, the referenced kid is used to directly protect the ciphertext that is an accurate representation of CKM_RSA_AES_KEY_WRAP
125
123
* generator = an informational field that denotes the name and version of BYOK tool and the source HSM manufacturer and model. This information is intended for use in troubleshooting and support.
126
124
127
125
The JSON blob is stored in a file with a ".byok" extension so that the Azure PowerShell/CLI clients treats it correctly when ‘Add-AzKeyVaultKey’ (PSH) or ‘az keyvault key import’ (CLI) commands are used.
128
126
129
-
### Step 4: Upload key transfer blob to import HSM-key
127
+
### Upload key transfer blob to import HSM-key
130
128
131
129
Customer will transfer the Key Transfer Blob (".byok" file) to an online workstation and then run a **az keyvault key import** command to import this blob as a new HSM-backed key into Key Vault.
Copy file name to clipboardExpand all lines: articles/key-vault/keys/hsm-protected-keys-byok.md
+16-14Lines changed: 16 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,9 +21,9 @@ For added assurance when you use Azure Key Vault, you can import or generate a k
21
21
Use the information in this article to help you plan for, generate, and transfer your own HSM-protected keys to use with Azure Key Vault.
22
22
23
23
> [!NOTE]
24
-
> This functionality is not available for Azure China 21Vianet.
25
-
>
26
-
> This import method is available only for [supported HSMs](#supported-hsms).
24
+
> This functionality is not available for Azure China 21Vianet.
25
+
>
26
+
> This import method is available only for [supported HSMs](#supported-hsms).
27
27
28
28
For more information, and for a tutorial to get started using Key Vault (including how to create a key vault for HSM-protected keys), see [What is Azure Key Vault?](../general/overview.md).
29
29
@@ -34,7 +34,7 @@ Here's an overview of the process. Specific steps to complete are described late
34
34
* In Key Vault, generate a key (referred to as a *Key Exchange Key* (KEK)). The KEK must be an RSA-HSM key that has only the `import` key operation. Only Key Vault Premium and Managed HSM support RSA-HSM keys.
35
35
* Download the KEK public key as a .pem file.
36
36
* Transfer the KEK public key to an offline computer that is connected to an on-premises HSM.
37
-
* In the offline computer, use the BYOK tool provided by your HSM vendor to create a BYOK file.
37
+
* In the offline computer, use the BYOK tool provided by your HSM vendor to create a BYOK file.
38
38
* The target key is encrypted with a KEK, which stays encrypted until it is transferred to the Key Vault HSM. Only the encrypted version of your key leaves the on-premises HSM.
39
39
* A KEK that's generated inside a Key Vault HSM is not exportable. HSMs enforce the rule that no clear version of a KEK exists outside a Key Vault HSM.
40
40
* The KEK must be in the same key vault where the target key will be imported.
@@ -82,12 +82,12 @@ The following table lists prerequisites for using BYOK in Azure Key Vault:
82
82
83
83
To generate and transfer your key to a Key Vault Premium or Managed HSM:
84
84
85
-
*[Step 1: Generate a KEK](#step-1-generate-a-kek)
86
-
*[Step 2: Download the KEK public key](#step-2-download-the-kek-public-key)
87
-
*[Step 3: Generate and prepare your key for transfer](#step-3-generate-and-prepare-your-key-for-transfer)
88
-
*[Step 4: Transfer your key to Azure Key Vault](#step-4-transfer-your-key-to-azure-key-vault)
85
+
*[Step 1: Generate a KEK](#generate-a-kek)
86
+
*[Step 2: Download the KEK public key](#download-the-kek-public-key)
87
+
*[Step 3: Generate and prepare your key for transfer](#generate-and-prepare-your-key-for-transfer)
88
+
*[Step 4: Transfer your key to Azure Key Vault](#transfer-your-key-to-azure-key-vault)
89
89
90
-
### Step 1: Generate a KEK
90
+
### Generate a KEK
91
91
92
92
A KEK is an RSA key that's generated in a Key Vault Premium or Managed HSM. The KEK is used to encrypt the key you want to import (the *target* key).
93
93
@@ -99,7 +99,7 @@ The KEK must be:
99
99
> [!NOTE]
100
100
> The KEK must have 'import' as the only allowed key operation. 'import' is mutually exclusive with all other key operations.
101
101
102
-
Use the [az keyvault key create](/cli/azure/keyvault/key#az-keyvault-key-create) command to create a KEK that has key operations set to `import`. Record the key identifier (`kid`) that's returned from the following command. (You will use the `kid` value in [Step 3](#step-3-generate-and-prepare-your-key-for-transfer).)
102
+
Use the [az keyvault key create](/cli/azure/keyvault/key#az-keyvault-key-create) command to create a KEK that has key operations set to `import`. Record the key identifier (`kid`) that's returned from the following command. (You will use the `kid` value in [Step 3](#generate-and-prepare-your-key-for-transfer).)
Use [az keyvault key download](/cli/azure/keyvault/key#az-keyvault-key-download) to download the KEK public key to a .pem file. The target key you import is encrypted by using the KEK public key.
Transfer the KEKforBYOK.publickey.pem file to your offline computer. You will need this file in the next step.
128
128
129
-
### Step 3: Generate and prepare your key for transfer
129
+
### Generate and prepare your key for transfer
130
130
131
-
Refer to your HSM vendor's documentation to download and install the BYOK tool. Follow instructions from your HSM vendor to generate a target key, and then create a key transfer package (a BYOK file). The BYOK tool will use the `kid` from [Step 1](#step-1-generate-a-kek) and the KEKforBYOK.publickey.pem file you downloaded in [Step 2](#step-2-download-the-kek-public-key) to generate an encrypted target key in a BYOK file.
131
+
Refer to your HSM vendor's documentation to download and install the BYOK tool. Follow instructions from your HSM vendor to generate a target key, and then create a key transfer package (a BYOK file). The BYOK tool will use the `kid` from [Step 1](#generate-a-kek) and the KEKforBYOK.publickey.pem file you downloaded in [Step 2](#download-the-kek-public-key) to generate an encrypted target key in a BYOK file.
132
132
133
133
Transfer the BYOK file to your connected computer.
134
134
@@ -137,14 +137,16 @@ Transfer the BYOK file to your connected computer.
137
137
>
138
138
> **Known issue**: Importing an RSA 4K target key from Luna HSMs is only supported with firmware 7.4.0 or newer.
139
139
140
-
### Step 4: Transfer your key to Azure Key Vault
140
+
### Transfer your key to Azure Key Vault
141
141
142
142
To complete the key import, transfer the key transfer package (a BYOK file) from your disconnected computer to the internet-connected computer. Use the [az keyvault key import](/cli/azure/keyvault/key#az-keyvault-key-import) command to upload the BYOK file to the Key Vault HSM.
143
143
144
144
To import an RSA key use following command. Parameter --kty is optional and defaults to 'RSA-HSM'.
145
+
145
146
```azurecli
146
147
az keyvault key import --vault-name ContosoKeyVaultHSM --name ContosoFirstHSMkey --byok-file KeyTransferPackage-ContosoFirstHSMkey.byok
0 commit comments