Skip to content

Commit 961c59d

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-security-docs-pr into deprecate-recommendation
2 parents d74d60d + 68ef820 commit 961c59d

192 files changed

Lines changed: 1339 additions & 1292 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

articles/attestation/private-endpoint-powershell.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Create a resource group with [New-AzResourceGroup](/powershell/module/az.resourc
3434
```azurepowershell-interactive
3535
## Create to your Azure account subscription and create a resource group in a desired location. ##
3636
Connect-AzAccount
37-
Set-AzSubscription "mySubscription"
37+
Set-AzSubscription "<subscription-name>"
3838
$rg = "CreateAttestationPrivateLinkTutorial-rg"
3939
$loc= "eastus"
4040
New-AzResourceGroup -Name $rg -Location $loc
@@ -109,7 +109,7 @@ $attestationProvider = New-AzAttestation -Name $attestationProviderName -Resourc
109109
$attestationProviderId = $attestationProvider.Id
110110
```
111111
## Access the attestation provider from local machine ##
112-
Enter `nslookup <provider-name>.attest.azure.net`. Replace **\<provider-name>** with the name of the attestation provider instance you created in the previous steps.
112+
Enter `nslookup <provider-name>.attest.azure.net`. Replace `<provider-name>` with the name of the attestation provider instance you created in the previous steps.
113113
```azurepowershell-interactive
114114
## Access the attestation provider from local machine ##
115115
nslookup myattestationprovider.eus.attest.azure.net
@@ -189,7 +189,7 @@ In this section, you'll use the virtual machine you created in the previous step
189189

190190
8. Open Windows PowerShell on the server after you connect.
191191

192-
9. Enter `nslookup <provider-name>.attest.azure.net`. Replace **\<provider-name>** with the name of the attestation provider instance you created in the previous steps:
192+
9. Enter `nslookup <provider-name>.attest.azure.net`. Replace `<provider-name>` with the name of the attestation provider instance you created in the previous steps:
193193

194194
```azurepowershell-interactive
195195
## Access the attestation provider from local machine ##

articles/attestation/quickstart-azure-cli.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,13 @@ Here are commands you can use to create and manage the attestation provider:
6868
1. Run the [az attestation create](/cli/azure/attestation#az-attestation-create) command to create an attestation provider without policy signing requirement:
6969

7070
```azurecli
71-
az attestation create --name "myattestationprovider" --resource-group "MyResourceGroup" --location westus
71+
az attestation create --name "<attestation-provider-name>" --resource-group "<resource-group>" --location westus
7272
```
7373

7474
1. Run the [az attestation show](/cli/azure/attestation#az-attestation-show) command to retrieve attestation provider properties such as status and AttestURI:
7575

7676
```azurecli
77-
az attestation show --name "myattestationprovider" --resource-group "MyResourceGroup"
77+
az attestation show --name "<attestation-provider-name>" --resource-group "<resource-group>"
7878
```
7979

8080
This command displays values like the following output:
@@ -94,7 +94,7 @@ Here are commands you can use to create and manage the attestation provider:
9494
You can delete an attestation provider by using the [az attestation delete](/cli/azure/attestation#az-attestation-delete) command:
9595

9696
```azurecli
97-
az attestation delete --name "myattestationprovider" --resource-group "sample-resource-group"
97+
az attestation delete --name "<attestation-provider-name>" --resource-group "<resource-group>"
9898
```
9999

100100
## Policy management
@@ -104,7 +104,7 @@ Use the commands described here to provide policy management for an attestation
104104
The [az attestation policy show](/cli/azure/attestation/policy#az-attestation-policy-show) command returns the current policy for the specified TEE:
105105

106106
```azurecli
107-
az attestation policy show --name "myattestationprovider" --resource-group "MyResourceGroup" --attestation-type SGX-IntelSDK
107+
az attestation policy show --name "<attestation-provider-name>" --resource-group "<resource-group>" --attestation-type SGX-IntelSDK
108108
```
109109

110110
> [!NOTE]
@@ -127,7 +127,7 @@ az attestation policy set --name testatt1 --resource-group testrg --attestation-
127127
To set policy in JWT format for a given kind of attestation type using file path:
128128

129129
```azurecli
130-
az attestation policy set --name "myattestationprovider" --resource-group "MyResourceGroup" \
130+
az attestation policy set --name "<attestation-provider-name>" --resource-group "<resource-group>" \
131131
--attestation-type SGX-IntelSDK -f "{file_path}" --policy-format JWT
132132
```
133133

articles/attestation/secure-attestation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn how to secure Azure Attestation, with best practices for netw
44
author: msmbaldwin
55
ms.author: mbaldwin
66
ms.service: security
7-
ms.topic: conceptual
7+
ms.topic: best-practice
88
ms.custom: horz-security
99

1010
ms.date: 03/28/2025

articles/cloud-hsm/authentication.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Authentication in Azure Cloud HSM
33
description: Learn about various authentication methods and best practices for securing and optimizing your Azure Cloud HSM deployment.
44
author: msmbaldwin
55
ms.service: azure-cloud-hsm
6-
ms.topic: conceptual
6+
ms.topic: feature-guide
77
ms.date: 03/20/2025
88
ms.author: mbaldwin
99
#customer intent: As a Cloud HSM administrator, I want to learn how to secure and optimize my Cloud HSM deployment so that I can ensure the highest level of security and performance.

articles/cloud-hsm/backup-restore.md

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ title: Back Up and Restore Azure Cloud HSM Resources
33
description: Learn how to back up and restore your Azure Cloud HSM resources, including prerequisites, configuration steps, and validation procedures.
44
author: msmbaldwin
55
ms.service: azure-cloud-hsm
6-
ms.topic: conceptual
7-
ms.date: 03/20/2025
6+
ms.topic: tutorial
7+
ms.date: 03/26/2026
88
ms.author: mbaldwin
99

1010
# Customer intent: As a security administrator, I need to back up and restore Azure Cloud HSM resources to ensure business continuity and facilitate disaster recovery.
@@ -49,10 +49,10 @@ Create a new user-assigned managed identity in your existing Azure Cloud HSM res
4949
```azurepowershell-interactive
5050
# Define parameters for the new managed identity
5151
$identity = @{
52-
Location = "<RegionName>"
53-
ResourceName = "<ManagedIdentityName>"
54-
ResourceGroupName = "<ResourceGroupName>"
55-
SubscriptionID = "<SubscriptionID>"
52+
Location = "<location>"
53+
ResourceName = "<managed-identity-name>"
54+
ResourceGroupName = "<resource-group>"
55+
SubscriptionID = "<subscription-id>"
5656
}
5757
5858
# Create a new user-assigned managed identity in the specified resource group and location
@@ -71,21 +71,21 @@ Each Cloud HSM cluster can have only one managed identity. You can use the same
7171
```azurepowershell-interactive
7272
# Define the parameters for the source Cloud HSM resource
7373
$sourceCloudHSM = @{
74-
Location = "<RegionName>"
74+
Location = "<location>"
7575
Sku = @{ "family" = "B"; "Name" = "Standard_B1" }
76-
ResourceName = "<SourceCloudHSMName>"
76+
ResourceName = "<source-hsm-name>"
7777
ResourceType = "microsoft.hardwaresecuritymodules/cloudHsmClusters"
78-
ResourceGroupName = "<SourceResourceGroupName>"
78+
ResourceGroupName = "<source-resource-group>"
7979
Force = $true
8080
}
8181
8282
# Define the parameters for the destination Cloud HSM resource
8383
$destinationCloudHSM = @{
84-
Location = "<RegionName>"
84+
Location = "<location>"
8585
Sku = @{ "family" = "B"; "Name" = "Standard_B1" }
86-
ResourceName = "<DestinationCloudHSMName>"
86+
ResourceName = "<destination-hsm-name>"
8787
ResourceType = "microsoft.hardwaresecuritymodules/cloudHsmClusters"
88-
ResourceGroupName = "<DestinationResourceGroupName>"
88+
ResourceGroupName = "<destination-resource-group>"
8989
Force = $true
9090
}
9191
@@ -95,11 +95,11 @@ $chsmMSIPatch = '{
9595
"Family": "B",
9696
"Name": "Standard_B1"
9797
},
98-
"Location": "<RegionName>",
98+
"Location": "<location>",
9999
"Identity": {
100100
"type": "UserAssigned",
101101
"userAssignedIdentities": {
102-
"/subscriptions/<SubscriptionID>/resourcegroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<ManagedIdentityName>": {}
102+
"/subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>": {}
103103
}
104104
}
105105
}'
@@ -138,37 +138,37 @@ Read/write access is granted for both the source and the destination.
138138
139139
```azurepowershell-interactive
140140
# Define the subscription ID
141-
$subscriptionId = "<SubscriptionID>"
141+
$subscriptionId = "<subscription-id>"
142142
143143
# Define storage account parameters
144144
$storageAccount = @{
145-
Location = "<RegionName>"
146-
ResourceGroupName = "<BackupResourceGroupName>"
147-
AccountName = "<ResourceName>" # Name of the storage account
148-
SkuName = "<StorageAccountSKU>" # Storage account tier (example: Standard_LRS)
149-
Kind = "<StorageAccountType>" #Type of storage account (example: StorageV2)
145+
Location = "<location>"
146+
ResourceGroupName = "<backup-resource-group>"
147+
AccountName = "<storage-account-name>" # Name of the storage account
148+
SkuName = "<storage-sku>" # Storage account tier (example: Standard_LRS)
149+
Kind = "<storage-type>" #Type of storage account (example: StorageV2)
150150
}
151151
152152
# Define the blob container parameters
153153
$container = @{
154154
ResourceGroupName = $storageAccount.ResourceGroupName # Resource group name where the storage account is located
155155
StorageAccountName = $storageAccount.AccountName # Name of the storage account
156-
ContainerName = "<StorageContainerName>" # Name of the blob container
156+
ContainerName = "<container-name>" # Name of the blob container
157157
}
158158
159159
# Define the private endpoint parameters
160160
# Storage accounts are publicly accessible, so put it behind a private virtual network
161161
$privateEndpoint = @{
162-
Name = "<PrivateEndpointName>"
163-
VnetName = "<ExistingVNetName>" # Name of the existing virtual network
164-
SubnetName = "<ExistingSubnetName>" # Name of the existing subnet within the virtual network
165-
ResourceGroupName = "<ResourceGroupName>" # Resource group for private virtual network and subnet (example: CHSM-CLIENT-RG)
162+
Name = "<private-endpoint-name>"
163+
VnetName = "<vnet-name>" # Name of the existing virtual network
164+
SubnetName = "<subnet-name>" # Name of the existing subnet within the virtual network
165+
ResourceGroupName = "<resource-group>" # Resource group for private virtual network and subnet (example: CHSM-CLIENT-RG)
166166
}
167167
168168
# Define the role assignment parameters
169169
$roleAssignment = @{
170170
RoleDefinitionName = "Storage Blob Data Contributor" # Minimum RBAC role required
171-
PrincipalId = "<PrincipalId>" # The ID of the managed identity or user to assign the role to
171+
PrincipalId = "<principal-id>" # The ID of the managed identity or user to assign the role to
172172
Scope = "/subscriptions/$($subscriptionId)/resourceGroups/$($storageAccount.ResourceGroupName)/providers/Microsoft.Storage/storageAccounts/$($storageAccount.AccountName)"
173173
}
174174

articles/cloud-hsm/key-management.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Comprehensive Guide to Key Management in Azure Cloud HSM
33
description: Learn best practices and recommendations for key management in Azure Cloud HSM, including storage limits, key wrapping security, and caching strategies.
44
author: msmbaldwin
55
ms.service: azure-cloud-hsm
6-
ms.topic: conceptual
6+
ms.topic: best-practice
77
ms.date: 03/20/2025
88
ms.author: mbaldwin
99

articles/cloud-hsm/network-security.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Network Security for Azure Cloud HSM
33
description: Learn how to secure your network configuration for Azure Cloud HSM to prevent unauthorized access and enhance overall security.
44
author: msmbaldwin
55
ms.service: azure-cloud-hsm
6-
ms.topic: conceptual
6+
ms.topic: best-practice
77
ms.date: 03/20/2025
88
ms.author: mbaldwin
99
#customer intent: As a security administrator, I need to understand how to secure my network configuration for Azure Cloud HSM so that I can prevent unauthorized access and enhance overall security.

articles/cloud-hsm/pkcs-api-certificate-storage.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: keithp
55
manager: keithp
66
ms.service: azure-cloud-hsm
77
ms.topic: tutorial
8-
ms.date: 03/20/2025
8+
ms.date: 03/26/2026
99
ms.author: keithp
1010
ms.custom: pkcs11, certificate-management, x509-certificates, azure-cloud-hsm
1111

@@ -118,7 +118,7 @@ The following attributes are applicable to X.509 public key certificates.
118118
119119
### C_DestroyObject
120120
121-
The C_DestroyObject API takes a session handle, and the object handle associated with the certificate you want to delete. Invoking this function removes the specified certificate from the Azure Blob Storage Account by deleting the corresponding JWS blob named pkcs11_certificate_<cert_handle>.
121+
The C_DestroyObject API takes a session handle, and the object handle associated with the certificate you want to delete. Invoking this function removes the specified certificate from the Azure Blob Storage Account by deleting the corresponding JWS blob named `pkcs11_certificate_<cert-handle>`.
122122
123123
Below is a code snippet demonstrating how to call C_DestroyObject for certificates (the same approach applies to keys).
124124
@@ -349,7 +349,7 @@ Azure Cloud HSM includes sample application code to help validate certificate st
349349

350350
### Verify certificates in storage
351351

352-
After a successful call to the C_CreateObject() API, the newly created certificate object will appear in your Azure Blob Storage account, as specified in the azcloudhsm_application.cfg file. The blob will be named using the format pkcs11_certificate_\<ObjectHandle\>, as shown below. Certificate objects are assigned object handles ranging from 0xFFF00000 to 0xFFFFFFFF (decimal range: 4,293,918,720 to 4,294,967,295), allowing support for up to 1,048,575 certificates.
352+
After a successful call to the C_CreateObject() API, the newly created certificate object will appear in your Azure Blob Storage account, as specified in the azcloudhsm_application.cfg file. The blob will be named using the format `pkcs11_certificate_<object-handle>`, as shown below. Certificate objects are assigned object handles ranging from 0xFFF00000 to 0xFFFFFFFF (decimal range: 4,293,918,720 to 4,294,967,295), allowing support for up to 1,048,575 certificates.
353353

354354
From both Azure portal as well as from your Azure VM you can see the certificates stored.
355355

articles/cloud-hsm/quickstart-powershell.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: keithp
55
manager: keithp
66
ms.service: azure-cloud-hsm
77
ms.topic: quickstart
8-
ms.date: 03/20/2025
8+
ms.date: 03/26/2026
99
ms.author: keithp
1010

1111
#customer intent: As an IT pro decision-maker, I'm looking for key storage capability within the Azure cloud platform that meets FIPS 140-3 Level 3 certification and that gives me exclusive access to a dedicated hardware security module.
@@ -36,11 +36,11 @@ The following example code creates a resource group and a Cloud HSM instance. Yo
3636
```azurepowershell-interactive
3737
# Define variables for your Cloud HSM deployment
3838
$server = @{
39-
Location = "<RegionName>"
39+
Location = "<location>"
4040
Sku = @{"family" = "B"; "Name" = "Standard_B1" }
41-
ResourceName = "<HSMName>"
41+
ResourceName = "<hsm-name>"
4242
ResourceType = "microsoft.hardwaresecuritymodules/cloudHsmClusters"
43-
ResourceGroupName = "<ResourceGroupName>"
43+
ResourceGroupName = "<resource-group>"
4444
Force = $true
4545
}
4646
@@ -63,9 +63,9 @@ If you plan to use backup and restore functionality, you can create and configur
6363
```azurepowershell-interactive
6464
# Define parameters for the new managed identity
6565
$identity = @{
66-
Location = "<RegionName>"
67-
ResourceName = "<ManagedIdentityName>"
68-
ResourceGroupName = "<ResourceGroupName>"
66+
Location = "<location>"
67+
ResourceName = "<managed-identity-name>"
68+
ResourceGroupName = "<resource-group>"
6969
}
7070
7171
# Create a new user-assigned managed identity
@@ -105,7 +105,7 @@ For production environments, we strongly recommend that you configure a private
105105
```azurepowershell-interactive
106106
# Define private endpoint parameters
107107
$privateEndpoint = @{
108-
Name = "<PrivateEndpointName>"
108+
Name = "<private-endpoint-name>"
109109
ResourceGroupName = $server.ResourceGroupName
110110
Location = $server.Location
111111
Subnet = $subnet # You need to have $subnet defined with your subnet configuration
@@ -128,10 +128,10 @@ New-AzPrivateEndpoint @privateEndpoint
128128
When you run the `New-AzResource` command with the `-AsJob` parameter, it creates a background job to deploy your Cloud HSM resource. You can check the status of the deployment by running:
129129

130130
```azurepowershell-interactive
131-
Get-Job -Id <JobId> | Receive-Job
131+
Get-Job -Id <job-id> | Receive-Job
132132
```
133133

134-
In the preceding command, `<JobId>` is the ID that the system returned when you ran the `New-AzResource` command.
134+
In the preceding command, `<job-id>` is the ID that the system returned when you ran the `New-AzResource` command.
135135

136136
The deployment is complete when you see a successful result from the job or when you can verify that the resource exists in your Azure subscription.
137137

articles/cloud-hsm/secure-cloud-hsm.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Best Practices for Securing Microsoft Azure Cloud HSM
33
description: Learn the best practices for securing and managing Microsoft Azure Cloud HSM to help protect cryptographic keys and sensitive workloads.
44
author: msmbaldwin
55
ms.service: azure-cloud-hsm
6-
ms.topic: conceptual
6+
ms.topic: best-practice
77
ms.date: 09/26/2025
88
ai-usage: ai-assisted
99
ms.custom: horz-security

0 commit comments

Comments
 (0)