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/confidential-computing/skr-flow-confidential-vm-sev-snp.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: Secure Key Release with Azure Key Vault and application on Confidential VM's with AMD SEV-SNP
2
+
title: Secure Key Release with Azure Key Vault and application on Confidential VMs with AMD SEV-SNP
3
3
description: Learn how to build an application that securely gets the key from AKV to a Confidential VM attested environment and in an Azure Kubernetes Service cluster
4
4
author: ThomVanL
5
5
ms.service: virtual-machines
@@ -12,7 +12,7 @@ ms.author: amgowda
12
12
13
13
# Secure Key Release with Confidential VMs How To Guide
14
14
15
-
The below article describes how to perform a Secure Key Release from Azure Key Value when your applications are running with an AMD SEV-SNP confidential. To learn more about Secure Key Release and Azure Confidential Computing, [go here](./concept-skr-attestation.md).
15
+
The below article describes how to perform a Secure Key Release from Azure Key Value when your applications are running with an AMD SEV-SNP confidential. To learn more about Secure Key Release and Azure Confidential Computing, [go here.](./concept-skr-attestation.md).
16
16
17
17
SKR requires that an application performing SKR shall go through a remote guest attestation flow using Microsoft Azure Attestation (MAA) as described [here](guest-attestation-confidential-vms.md).
18
18
@@ -23,9 +23,9 @@ To allow Azure Key Vault to release a key to an attested confidential virtual ma
23
23
1. Assign a managed identity to the confidential virtual machine. System-assigned managed identity or a user-assigned managed identity are allowed.
24
24
1. Set a Key Vault access policy to grant the managed identity the "release" key permission. A policy allows the confidential virtual machine to access the Key Vault and perform the release operation. If using Key Vault Managed HSM, assign "Managed HSM Crypto Service Release User" role membership.
25
25
1. Create a Key Vault key that is marked as exportable and has an associated release policy. Key release policy associates the key to an attested confidential virtual machine and that the key can only be used for the desired purpose.
26
-
1. To perform the release, send an HTTP request to the Key Vault from the confidential virtual machine. HTTP request must include the Confidential VM's attested platform report in the request body. The attested platform report is used to verify the trustworthiness of the state of the Trusted Execution Environment-enabled platform, such as the Confidential VM. The Microsoft Azure Attestation service can be used to create the attested platform report and include it in the request.
26
+
1. To perform the release, send an HTTP request to the Key Vault from the confidential virtual machine. HTTP request must include the Confidential VMs attested platform report in the request body. The attested platform report is used to verify the trustworthiness of the state of the Trusted Execution Environment-enabled platform, such as the Confidential VM. The Microsoft Azure Attestation service can be used to create the attested platform report and include it in the request.
27
27
28
-

28
+

29
29
30
30
## Deploying an Azure Key Vault
31
31
@@ -83,7 +83,7 @@ To enable system-assigned managed identity on a CVM, your account needs the [Vir
83
83
84
84
### [Bicep 1](#tab/bicep)
85
85
86
-
1. Whether you sign in to Azure locally or via the Azure portal, use an account that is associated with the Azure subscription that contains the VM.
86
+
1. Whether you sign in to Azure locally or via the Azure Portal, use an account that is associated with the Azure subscription that contains the VM.
87
87
88
88
2. To enable system-assigned managed identity, load the template into an editor, locate the `Microsoft.Compute/virtualMachines` resource of interest and add the `"identity"` property at the same level as the `name: vmName` property. Use the following syntax:
89
89
@@ -118,7 +118,7 @@ To enable system-assigned managed identity on a CVM, your account needs the [Vir
We can verify that Key Vault has created a new, __HSM-backed__, key and that it contains our secure key __release policy__ by navigating to the Azure Portal and selecting our key. The intended key will be marked as "__exportable__".
359
359
360
-

360
+

361
361
362
362
## Guest attestation client
363
363
364
-
Attestation helps us to _cryptographically assess_ that something is running in the intended operating state. It is the process by which one party, the verifier, assesses the trustworthiness of a potentially untrusted peer, the attester.With remote guest attestation, the trusted execution environment offers a platform that allows you to run an entire operating system inside of it.
364
+
Attestation helps us to _cryptographically assess_ that something is running in the intended operating state. It is the process by which one party, the verifier, assesses the trustworthiness of a potentially untrusted peer, the attester.With remote guest attestation, the trusted execution environment offers a platform that allows you to run an entire operating system inside of it.
365
365
366
366
> [!IMPORTANT]
367
367
> Microsoft offers a C/C++ library, for both [Windows](https://www.nuget.org/packages/Microsoft.Azure.Security.GuestAttestation) and [Linux](https://packages.microsoft.com/repos/azurecore/pool/main/a/azguestattestation1/) that can help your development efforts. The library makes it easy to acquire a __a SEV-SNP platform report__ from the hardware and to also have it attested by an instance of Azure Attestation service. The Azure Attestation service can either be one hosted by Microsoft (shared) or your own private instance.
@@ -432,7 +432,7 @@ The result from the Guest Attestation client simply is a base64 encoded string!
432
432
eyJhbGciO...
433
433
```
434
434
435
-
The header contains a `jku`, aka [JWK Set URI](https://www.rfc-editor.org/rfc/rfc7515#section-4.1.2) which links to a set of JSON-encoded public keys. One of which corresponds to the key used to digitally sign the JWS. The `kid` indicates which key was used to sign the JWS.
435
+
The header contains a `jku`, also knows as [JWK Set URI](https://www.rfc-editor.org/rfc/rfc7515#section-4.1.2) which links to a set of JSON-encoded public keys. One of which corresponds to the key used to digitally sign the JWS. The `kid` indicates which key was used to sign the JWS.
436
436
437
437
```json
438
438
{
@@ -443,7 +443,7 @@ The header contains a `jku`, aka [JWK Set URI](https://www.rfc-editor.org/rfc/rf
443
443
}
444
444
```
445
445
446
-
The body of the guest attestation response will get validated by Azure Key Vault as input to test against the key release policy. As reviously notes, Azure Key Vault uses the "`TpmEphemeralEncryptionKey`" as the key-encryption key.
446
+
The body of the guest attestation response will get validated by Azure Key Vault as input to test against the key release policy. As reviously noted, Azure Key Vault uses the "`TpmEphemeralEncryptionKey`" as the key-encryption key.
447
447
448
448
```json
449
449
{
@@ -550,9 +550,9 @@ The documentation for Microsoft Azure Attestation service has an extensive list
550
550
551
551
## Performing the key release operation
552
552
553
-
We can use any scripting or programming language to receive an attested platform report using the AttestationClient binary. Since the virtual machine we deployed in a previous step has managed identity enabled, we should get an __AAD token for Key Vault__ from the instance metadata service (__IMDS__).
553
+
We can use any scripting or programming language to receive an attested platform report using the AttestationClient binary. Since the virtual machine we deployed in a previous step has managed identity enabled, we should get an __Azure AD token for Key Vault__ from the instance metadata service (__IMDS__).
554
554
555
-
By configuring the attested platform report as the body payload and the AAD token in our __authorization header__, you have everything needed to perform the key `release` operation.
555
+
By configuring the attested platform report as the body payload and the Azure AD token in our __authorization header__, you have everything needed to perform the key `release` operation.
0 commit comments