Skip to content

Commit 03b9841

Browse files
committed
Updates
1 parent ff19ad2 commit 03b9841

10 files changed

+59
-57
lines changed

articles/key-vault/general/common-error-codes.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ tags: azure-resource-manager
88
ms.service: key-vault
99
ms.subservice: general
1010
ms.topic: reference
11-
ms.date: 09/29/2020
11+
ms.date: 01/12/2023
1212
ms.author: mbaldwin
1313

1414
#Customer intent: As an Azure Key Vault administrator, I want to react to soft-delete being turned on for all key vaults.
@@ -25,7 +25,7 @@ The error codes listed in the following table may be returned by an operation on
2525
| VaultNameNotValid | The vault name should be string of 3 to 24 characters and can contain only numbers (0-9), letters (a-z, A-Z), and hyphens (-) |
2626
| AccessDenied | You may be missing permissions in access policy to do that operation. |
2727
| ForbiddenByFirewall | Client address isn't authorized and caller isn't a trusted service. |
28-
| ConflictError | You're requesting multiple operations on the same item, e.g., Key Vault, secret, key, certificate, or common components within a Key Vault like VNET. It's recommended to sequence operations or to implement retry logic. |
28+
| ConflictError | You're requesting multiple operations on the same item, for example, Key Vault, secret, key, certificate, or common components within a Key Vault like VNET. It's recommended to sequence operations or to implement retry logic. |
2929
| RegionNotSupported | Specified Azure region isn't supported for this resource. |
3030
| SkuNotSupported | Specified SKU type isn't supported for this resource. |
3131
| ResourceNotFound | Specified Azure resource isn't found. |

articles/key-vault/general/common-parameters-and-headers.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ tags: azure-resource-manager
88
ms.service: key-vault
99
ms.subservice: general
1010
ms.topic: conceptual
11-
ms.date: 01/07/2019
11+
ms.date: 01/11/2023
1212
ms.author: mbaldwin
1313

1414
---

articles/key-vault/general/customer-data.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ tags: azure-resource-manager
77

88
ms.service: key-vault
99
ms.topic: reference
10-
ms.date: 01/07/2019
10+
ms.date: 01/11/2023
1111
ms.author: mbaldwin
1212

1313
---
@@ -35,7 +35,7 @@ The following information identifies customer data within Azure Key Vault:
3535

3636
The same REST APIs, Portal experience, and SDKs used to create vaults, keys, secrets, certificates, and managed storage accounts, are also able to update and delete these objects.
3737

38-
Soft-delete allows you to recover deleted data for 90 days after deletion. When using soft-delete, the data may be permanently deleted prior to the 90 days retention period expires by performing a purge operation. If the vault or subscription has been configured to block purge operations, it is not possible to permanently delete data until the scheduled retention period has passed.
38+
Soft-delete allows you to recover deleted data for 90 days after deletion. When using soft-delete, the data may be permanently deleted prior to the 90 days retention period expires by performing a purge operation. If the vault or subscription has been configured to block purge operations, it isn't possible to permanently delete data until the scheduled retention period has passed.
3939

4040
## Exporting customer data
4141

articles/key-vault/general/event-grid-logicapps.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ tags: azure-resource-manager
88
ms.service: key-vault
99
ms.subservice: general
1010
ms.topic: how-to
11-
ms.date: 11/11/2019
11+
ms.date: 01/11/2023
1212
ms.author: mbaldwin
1313

1414
---
1515
# Use Logic Apps to receive email about status changes of key vault secrets
1616

17-
In this guide you will learn how to respond to Azure Key Vault events that are received via [Azure Event Grid](../../event-grid/index.yml) by using [Azure Logic Apps](../../logic-apps/index.yml). By the end, you will have an Azure logic app set up to send a notification email every time a secret is created in Azure Key Vault.
17+
In this guide, you will learn how to respond to Azure Key Vault events that are received via [Azure Event Grid](../../event-grid/index.yml) by using [Azure Logic Apps](../../logic-apps/index.yml). By the end, you will have an Azure logic app set up to send a notification email every time a secret is created in Azure Key Vault.
1818

1919
For an overview of Azure Key Vault / Azure Event Grid integration, see [Monitoring Key Vault with Azure Event Grid](event-grid-overview.md).
2020

@@ -27,16 +27,16 @@ For an overview of Azure Key Vault / Azure Event Grid integration, see [Monitori
2727

2828
## Create a Logic App via Event Grid
2929

30-
First, create Logic App with event grid handler and subscribe to Azure Key Vault "SecretNewVersionCreated" events.
30+
First, create Logic App with Event Grid handler and subscribe to Azure Key Vault "SecretNewVersionCreated" events.
3131

3232
To create an Azure Event Grid subscription, follow these steps:
3333

34-
1. In the Azure portal, go to your key vault, select **Events > Get Started** and click **Logic Apps**
34+
1. In the Azure portal, go to your key vault, select **Events > Get Started** and select **Logic Apps**
3535

3636

3737
![Key Vault - events page](../media/eventgrid-logicapps-kvsubs.png)
3838

39-
1. On **Logic Apps Designer** validate the connection and click **Continue**
39+
1. On **Logic Apps Designer** validate the connection and select **Continue**
4040

4141
![Logic App Designer - connection](../media/eventgrid-logicappdesigner1.png)
4242

@@ -61,8 +61,8 @@ To create an Azure Event Grid subscription, follow these steps:
6161

6262
![Logic App Designer - email body](../media/eventgrid-logicappdesigner4.png)
6363

64-
8. Click **Save as**.
65-
9. Enter a **name** for new logic app and click **Create**.
64+
8. Select **Save as**.
65+
9. Enter a **name** for new logic app and select **Create**.
6666

6767
![Logic App Designer - create](../media/eventgrid-logicappdesigner5.png)
6868

articles/key-vault/general/event-grid-overview.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
---
2-
title: 'Monitoring Key Vault with Azure Event Grid'
3-
description: 'Use Azure Event Grid to subscribe to Key Vault events'
2+
title: Monitoring Key Vault with Azure Event Grid
3+
description: Use Azure Event Grid to subscribe to Key Vault events
44
services: key-vault
55
author: msmbaldwin
66

77
ms.service: key-vault
88
ms.subservice: general
99
ms.topic: conceptual
10-
ms.date: 11/12/2019
10+
ms.date: 01/11/2023
1111
ms.author: mbaldwin
1212
---
1313

@@ -19,7 +19,7 @@ Applications can react to these events using modern serverless architectures, wi
1919

2020
## Key Vault events and schemas
2121

22-
Event grid uses [event subscriptions](../../event-grid/concepts.md#event-subscriptions) to route event messages to subscribers. Key Vault events contain all the information you need to respond to changes in your data. You can identify a Key Vault event because the eventType property starts with "Microsoft.KeyVault".
22+
Event Grid uses [event subscriptions](../../event-grid/concepts.md#event-subscriptions) to route event messages to subscribers. Key Vault events contain all the information you need to respond to changes in your data. You can identify a Key Vault event because the eventType property starts with "Microsoft.KeyVault".
2323

2424
For more information, see the [Key Vault event schema](../../event-grid/event-schema-key-vault.md).
2525

@@ -30,8 +30,8 @@ For more information, see the [Key Vault event schema](../../event-grid/event-sc
3030

3131
Applications that handle Key Vault events should follow a few recommended practices:
3232

33-
* Multiple subscriptions can be configured to route events to the same event handler. It is important not to assume events are from a particular source, but to check the topic of the message to ensure that it comes from the key vault you are expecting.
34-
* Similarly, check that the eventType is one you are prepared to process, and do not assume that all events you receive will be the types you expect.
33+
* Multiple subscriptions can be configured to route events to the same event handler. It's important not to assume events are from a particular source, but to check the topic of the message to ensure that it comes from the key vault you're expecting.
34+
* Similarly, check that the eventType is one you're prepared to process, and do not assume that all events you receive will be the types you expect.
3535
* Ignore fields you don't understand. This practice will help keep you resilient to new features that might be added in the future.
3636
* Use the "subject" prefix and suffix matches to limit events to a particular event.
3737

articles/key-vault/general/event-grid-tutorial.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ tags: azure-resource-manager
88
ms.service: key-vault
99
ms.subservice: general
1010
ms.topic: how-to
11-
ms.date: 10/25/2019
11+
ms.date: 01/11/2023
1212
ms.author: mbaldwin
1313

1414
---
@@ -52,7 +52,7 @@ After your Automation account is ready, create a runbook.
5252

5353
![Create a runbook UI](../media/event-grid-tutorial-3.png)
5454

55-
1. Select the Automation account you just created.
55+
1. Select the Automation account you created.
5656

5757
1. Select **Runbooks** under **Process Automation**.
5858

@@ -94,7 +94,7 @@ write-Error "No input data found."
9494

9595
Create a webhook to trigger your newly created runbook.
9696

97-
1. Select **Webhooks** from the **Resources** section of the runbook you just published.
97+
1. Select **Webhooks** from the **Resources** section of the runbook you published.
9898

9999
1. Select **Add Webhook**.
100100

@@ -107,7 +107,7 @@ Create a webhook to trigger your newly created runbook.
107107
> [!IMPORTANT]
108108
> You can't view the URL after you create it. Make sure you save a copy in a secure location where you can access it for the remainder of this guide.
109109
110-
1. Select **Parameters and run settings** and then select **OK**. Don't enter any parameters. This will enable the **Create** button.
110+
1. Select **Parameters and run settings** and then select **OK**. Don't enter any parameters. The **Create** button will be enabled.
111111

112112
1. Select **OK** and then select **Create**.
113113

articles/key-vault/general/manage-with-cli2.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ author: msmbaldwin
77
ms.service: key-vault
88
ms.subservice: general
99
ms.topic: tutorial
10-
ms.date: 08/12/2019
10+
ms.date: 01/11/2023
1111
ms.author: mbaldwin
1212
ms.custom: devx-track-azurecli
1313

@@ -143,15 +143,15 @@ If you have an existing key in a .pem file, you can upload it to Azure Key Vault
143143
az keyvault key import --vault-name "ContosoKeyVault" --name "ContosoFirstKey" --pem-file "./softkey.pem" --pem-password "hVFkk965BuUv" --protection software
144144
```
145145

146-
You can now reference the key that you created or uploaded to Azure Key Vault, by using its URI. Use `https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey` to always get the current version. Use https://[keyvault-name].vault.azure.net/keys/[keyname]/[key-unique-id] to get this specific version. For example, `https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87`.
146+
You can now reference the key that you created or uploaded to Azure Key Vault, by using its URI. Use `https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey` to always get the current version. Use `https://<keyvault-name>.vault.azure.net/keys/<keyname>/<key-unique-id>` to get this specific version. For example, `https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87`.
147147

148-
Add a secret to the vault, which is a password named SQLPassword, and that has the value of "hVFkk965BuUv" to Azure Key Vaults.
148+
Add a secret to the vault, which is a password named SQLPassword, and that has the value of "hVFkk965BuUv" to Azure Key Vaults.
149149

150150
```azurecli
151151
az keyvault secret set --vault-name "ContosoKeyVault" --name "SQLPassword" --value "hVFkk965BuUv "
152152
```
153153

154-
Reference this password by using its URI. Use **https://ContosoVault.vault.azure.net/secrets/SQLPassword** to always get the current version, and https://[keyvault-name].vault.azure.net/secret/[secret-name]/[secret-unique-id] to get this specific version. For example, **https://ContosoVault.vault.azure.net/secrets/SQLPassword/90018dbb96a84117a0d2847ef8e7189d**.
154+
Reference this password by using its URI. Use **https://ContosoVault.vault.azure.net/secrets/SQLPassword** to always get the current version, and `https://<keyvault-name>.vault.azure.net/secret/<secret-name>/<secret-unique-id>` to get this specific version. For example, `https://ContosoVault.vault.azure.net/secrets/SQLPassword/90018dbb96a84117a0d2847ef8e7189d`.
155155

156156
Import a certificate to the vault using a .pem or .pfx.
157157

@@ -161,19 +161,19 @@ az keyvault certificate import --vault-name "ContosoKeyVault" --file "c:\cert\ce
161161

162162
Let's view the key, secret, or certificate that you created:
163163

164-
* To view your keys, type:
164+
* To view your keys, type:
165165

166166
```azurecli
167167
az keyvault key list --vault-name "ContosoKeyVault"
168168
```
169169

170-
* To view your secrets, type:
170+
* To view your secrets, type:
171171

172172
```azurecli
173173
az keyvault secret list --vault-name "ContosoKeyVault"
174174
```
175175

176-
* To view certificates, type:
176+
* To view certificates, type:
177177

178178
```azurecli
179179
az keyvault certificate list --vault-name "ContosoKeyVault"
@@ -215,7 +215,7 @@ To authorize the same application to read secrets in your vault, type the follow
215215
az keyvault set-policy --name "ContosoKeyVault" --spn 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed --secret-permissions get
216216
```
217217

218-
## <a name="bkmk_KVperCLI"></a> Setting key vault advanced access policies
218+
## Setting key vault advanced access policies
219219

220220
Use [az keyvault update](/cli/azure/keyvault#az-keyvault-update) to enable advanced policies for the key vault.
221221

articles/key-vault/general/overview-throttling.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ author: msmbaldwin
77
ms.service: key-vault
88
ms.subservice: general
99
ms.topic: conceptual
10-
ms.date: 12/02/2019
10+
ms.date: 01/11/2023
1111
ms.author: mbaldwin
1212

1313
---
@@ -20,19 +20,19 @@ Throttling limits vary based on the scenario. For example, if you are performing
2020

2121
## How does Key Vault handle its limits?
2222

23-
Service limits in Key Vault prevent misuse of resources and ensure quality of service for all of Key Vault's clients. When a service threshold is exceeded, Key Vault limits any further requests from that client for a period of time, returns HTTP status code 429 (Too many requests), and the request fails. Failed requests that return a 429 do not count towards the throttle limits tracked by Key Vault.
23+
Service limits in Key Vault prevent misuse of resources and ensure quality of service for all of Key Vault's clients. When a service threshold is exceeded, Key Vault limits any further requests from that client, returns HTTP status code 429 (Too many requests), and the request fails. Failed requests that return a 429 do not count towards the throttle limits tracked by Key Vault.
2424

25-
Key Vault was originally designed to be used to store and retrieve your secrets at deployment time. The world has evolved, and Key Vault is being used at run-time to store and retrieve secrets, and often apps and services want to use Key Vault like a database. Current limits do not support high throughput rates.
25+
Key Vault was originally designed to store and retrieve your secrets at deployment time. The world has evolved, and Key Vault is being used at run-time to store and retrieve secrets, and often apps and services want to use Key Vault like a database. Current limits do not support high throughput rates.
2626

2727
Key Vault was originally created with the limits specified in [Azure Key Vault service limits](service-limits.md). To maximize your Key Vault throughput rates, here are some recommended guidelines/best practices for maximizing your throughput:
28-
1. Ensure you have throttling in place. Client must honor exponential back-off policies for 429's and ensure you are doing retries as per the guidance below.
28+
1. Ensure you have throttling in place. Client must honor exponential back-off policies for 429s and ensure you are doing retries as per the guidance below.
2929
1. Divide your Key Vault traffic amongst multiple vaults and different regions. Use a separate vault for each security/availability domain. If you have five apps, each in two regions, then we recommend 10 vaults each containing the secrets unique to app and region. A subscription-wide limit for all transaction types is five times the individual key vault limit. For example, HSM-other transactions per subscription are limited to 5,000 transactions in 10 seconds per subscription. Consider caching the secret within your service or app to also reduce the RPS directly to key vault and/or handle burst based traffic. You can also divide your traffic amongst different regions to minimize latency and use a different subscription/vault. Do not send more than the subscription limit to the Key Vault service in a single Azure region.
3030
1. Cache the secrets you retrieve from Azure Key Vault in memory, and reuse from memory whenever possible. Re-read from Azure Key Vault only when the cached copy stops working (e.g. because it got rotated at the source).
31-
1. Key Vault is designed for your own services secrets. If you are storing your customers' secrets (especially for high-throughput key storage scenarios), consider putting the keys in a database or storage account with encryption, and storing just the master key in Azure Key Vault.
31+
1. Key Vault is designed for your own services secrets. If you are storing your customers' secrets (especially for high-throughput key storage scenarios), consider putting the keys in a database or storage account with encryption, and storing just the primary key in Azure Key Vault.
3232
1. Encrypt, wrap, and verify public-key operations can be performed with no access to Key Vault, which not only reduces risk of throttling, but also improves reliability (as long as you properly cache the public key material).
3333
1. If you use Key Vault to store credentials for a service, check if that service supports Azure AD Authentication to authenticate directly. This reduces the load on Key Vault, improves reliability and simplifies your code since Key Vault can now use the Azure AD token. Many services have moved to using Azure AD Auth. See the current list at [Services that support managed identities for Azure resources](../../active-directory/managed-identities-azure-resources/services-support-managed-identities.md#azure-services-that-support-managed-identities-for-azure-resources).
3434
1. Consider staggering your load/deployment over a longer period of time to stay under the current RPS limits.
35-
1. If your app comprises multiple nodes that need to read the same secret(s), then consider using a fan out pattern, where one entity reads the secret from Key Vault, and fans out to all nodes. Cache the retrieved secrets only in memory.
35+
1. If your app comprises multiple nodes that need to read the same secret(s), then consider using a fan-out pattern, where one entity reads the secret from Key Vault, and fans out to all nodes. Cache the retrieved secrets only in memory.
3636

3737

3838
## How to throttle your app in response to service limits
@@ -45,7 +45,8 @@ The following are **best practices** you should implement when your service is t
4545

4646
When you implement your app's error handling, use the HTTP error code 429 to detect the need for client-side throttling. If the request fails again with an HTTP 429 error code, you are still encountering an Azure service limit. Continue to use the recommended client-side throttling method, retrying the request until it succeeds.
4747

48-
Code that implements exponential backoff is shown below.
48+
Here is code that implements exponential backoff:
49+
4950
```
5051
SecretClientOptions options = new SecretClientOptions()
5152
{

0 commit comments

Comments
 (0)