Skip to content

Commit 60f5e7c

Browse files
authored
Merge pull request #66191 from bscott-rh/OSDOCS-8132
OSDOCS-8132 Confidential VMs and trusted launch for Azure
2 parents 5c84b3d + b326e25 commit 60f5e7c

9 files changed

+221
-0
lines changed

installing/installing_azure/installing-azure-customizations.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ include::modules/installation-azure-tested-machine-types.adoc[leveloffset=+2]
4949

5050
include::modules/installation-azure-arm-tested-machine-types.adoc[leveloffset=+2]
5151

52+
include::modules/installation-azure-trusted-launch.adoc[leveloffset=+2]
53+
include::modules/installation-azure-confidential-vms.adoc[leveloffset=+2]
54+
5255
include::modules/installation-azure-config-yaml.adoc[leveloffset=+2]
5356

5457
include::modules/installation-configure-proxy.adoc[leveloffset=+2]

installing/installing_azure/installing-azure-government-region.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ include::modules/installation-minimum-resource-requirements.adoc[leveloffset=+2]
5151

5252
include::modules/installation-azure-tested-machine-types.adoc[leveloffset=+2]
5353

54+
include::modules/installation-azure-trusted-launch.adoc[leveloffset=+2]
55+
include::modules/installation-azure-confidential-vms.adoc[leveloffset=+2]
56+
5457
include::modules/installation-azure-config-yaml.adoc[leveloffset=+2]
5558

5659
include::modules/installation-configure-proxy.adoc[leveloffset=+2]

installing/installing_azure/installing-azure-network-customizations.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ include::modules/installation-azure-tested-machine-types.adoc[leveloffset=+2]
4747

4848
include::modules/installation-azure-arm-tested-machine-types.adoc[leveloffset=+2]
4949

50+
include::modules/installation-azure-trusted-launch.adoc[leveloffset=+2]
51+
include::modules/installation-azure-confidential-vms.adoc[leveloffset=+2]
52+
5053
include::modules/installation-azure-config-yaml.adoc[leveloffset=+2]
5154

5255
include::modules/installation-configure-proxy.adoc[leveloffset=+2]

installing/installing_azure/installing-azure-private.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ include::modules/installation-azure-tested-machine-types.adoc[leveloffset=+2]
4747

4848
include::modules/installation-azure-arm-tested-machine-types.adoc[leveloffset=+2]
4949

50+
include::modules/installation-azure-trusted-launch.adoc[leveloffset=+2]
51+
include::modules/installation-azure-confidential-vms.adoc[leveloffset=+2]
52+
5053
include::modules/installation-azure-config-yaml.adoc[leveloffset=+2]
5154

5255
include::modules/installation-configure-proxy.adoc[leveloffset=+2]

installing/installing_azure/installing-azure-vnet.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ include::modules/installation-azure-tested-machine-types.adoc[leveloffset=+2]
4141

4242
include::modules/installation-azure-arm-tested-machine-types.adoc[leveloffset=+2]
4343

44+
include::modules/installation-azure-trusted-launch.adoc[leveloffset=+2]
45+
include::modules/installation-azure-confidential-vms.adoc[leveloffset=+2]
46+
4447
include::modules/installation-azure-config-yaml.adoc[leveloffset=+2]
4548

4649
include::modules/installation-configure-proxy.adoc[leveloffset=+2]

installing/installing_azure/installing-restricted-networks-azure-installer-provisioned.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ include::modules/installation-azure-tested-machine-types.adoc[leveloffset=+2]
5454

5555
include::modules/installation-azure-arm-tested-machine-types.adoc[leveloffset=+2]
5656

57+
include::modules/installation-azure-trusted-launch.adoc[leveloffset=+2]
58+
include::modules/installation-azure-confidential-vms.adoc[leveloffset=+2]
59+
5760
include::modules/installation-azure-config-yaml.adoc[leveloffset=+2]
5861

5962
include::modules/installation-configure-proxy.adoc[leveloffset=+2]
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * installing/installing_azure/installing-azure-network-customizations
4+
5+
:_content-type: PROCEDURE
6+
[id="installation-azure-confidential-vms_{context}"]
7+
= Enabling confidential VMs
8+
9+
You can enable confidential VMs when installing your cluster. You can enable confidential VMs for compute nodes, control plane nodes, or all nodes.
10+
11+
:FeatureName: Using confidential VMs
12+
13+
include::snippets/technology-preview.adoc[]
14+
15+
//commenting out the second encryption option until https://issues.redhat.com/browse/OCPBUGS-18379 is resolved
16+
////
17+
Confidential VMs can operate in two modes:
18+
19+
* Only encrypting the virtual machine guest state storage, which contains the security state of the virtual machine
20+
* Encrypting the virtual machine guest state storage and the operating system storage
21+
22+
If you encrypt the operating system storage, you can use a platform-managed encryption key or a key you manage.
23+
////
24+
25+
You can use confidential VMs with the following VM sizes:
26+
27+
* DCasv5-series
28+
* DCadsv5-series
29+
* ECasv5-series
30+
* ECadsv5-series
31+
32+
33+
[IMPORTANT]
34+
====
35+
Confidential VMs are currently not supported on 64-bit ARM architectures.
36+
====
37+
38+
.Prerequisites
39+
* You have created an `install-config.yaml` file.
40+
41+
.Procedure
42+
43+
* Use a text editor to edit the `install-config.yaml` file prior to deploying your cluster and add the following stanza:
44+
+
45+
[source,yaml]
46+
----
47+
controlPlane: <1>
48+
platform:
49+
azure:
50+
settings:
51+
securityType: ConfidentialVM <2>
52+
confidentialVM:
53+
uefiSettings:
54+
secureBoot: Enabled <3>
55+
virtualizedTrustedPlatformModule: Enabled <4>
56+
osDisk:
57+
securityProfile:
58+
securityEncryptionType: VMGuestStateOnly <5>
59+
----
60+
<1> Specify `controlPlane.platform.azure` or `compute.platform.azure` to deploy confidential VMs on only control plane or compute nodes respectively. Specify `platform.azure.defaultMachinePlatform` to deploy confidential VMs on all nodes.
61+
<2> Enable confidential VMs.
62+
<3> Enable secure boot. For more information, see the Azure documentation about link:https://learn.microsoft.com/en-us/azure/virtual-machines/trusted-launch#secure-boot[secure boot].
63+
<4> Enable the virtualized Trusted Platform Module. For more information, see the Azure documentation about link:https://learn.microsoft.com/en-us/windows/security/hardware-security/tpm/trusted-platform-module-overview[virtualized Trusted Platform Modules].
64+
<5> Specify `VMGuestStateOnly` to encrypt the VM guest state.
65+
66+
// commenting out the second option until https://issues.redhat.com/browse/OCPBUGS-18379 is fixed
67+
////
68+
+
69+
.. To use confidential VMs that encrypt both the VM guest state and the OS disk:
70+
+
71+
[source,yaml]
72+
----
73+
controlPlane:
74+
platform:
75+
azure:
76+
settings:
77+
securityType: ConfidentialVM
78+
confidentialVM:
79+
uefiSettings:
80+
secureBoot: Enabled
81+
virtualizedTrustedPlatformModule: Enabled
82+
osDisk:
83+
securityProfile:
84+
securityEncryptionType: DiskWithVMGuestState <1>
85+
diskEncryptionSet: <2>
86+
resourceGroup: <your-resource-group-name>
87+
name: <your-des-name>
88+
subscriptionId: <subscription-uuid>
89+
----
90+
<1> Enable OS disk and VM guest state encryption.
91+
<2> Specify disk encryption set parameters for user-managed encryption, or omit the `diskEncryptionSet` stanza for platform-managed encryption.
92+
////
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * installing/installing_azure/installing-azure-network-customizations
4+
5+
:_content-type: PROCEDURE
6+
[id="installation-azure-trusted-launch_{context}"]
7+
= Enabling trusted launch for Azure VMs
8+
9+
You can enable two trusted launch features when installing your cluster on Azure: link:https://learn.microsoft.com/en-us/azure/virtual-machines/trusted-launch#secure-boot[secure boot] and link:https://learn.microsoft.com/en-us/windows/security/hardware-security/tpm/trusted-platform-module-overview[virtualized Trusted Platform Modules].
10+
11+
See the Azure documentation about link:https://learn.microsoft.com/en-us/azure/virtual-machines/trusted-launch#virtual-machines-sizes[virtual machine sizes] to learn what sizes of virtual machines support these features.
12+
13+
:FeatureName: Trusted launch
14+
15+
include::snippets/technology-preview.adoc[]
16+
17+
.Prerequisites
18+
* You have created an `install-config.yaml` file.
19+
20+
.Procedure
21+
22+
* Use a text editor to edit the `install-config.yaml` file prior to deploying your cluster and add the following stanza:
23+
+
24+
[source,yaml]
25+
----
26+
controlPlane: <1>
27+
platform:
28+
azure:
29+
settings:
30+
securityType: TrustedLaunch <2>
31+
trustedLaunch:
32+
uefiSettings:
33+
secureBoot: Enabled <3>
34+
virtualizedTrustedPlatformModule: Enabled <4>
35+
----
36+
<1> Specify `controlPlane.platform.azure` or `compute.platform.azure` to enable trusted launch on only control plane or compute nodes respectively. Specify `platform.azure.defaultMachinePlatform` to enable trusted launch on all nodes.
37+
<2> Enable trusted launch features.
38+
<3> Enable secure boot. For more information, see the Azure documentation about link:https://learn.microsoft.com/en-us/azure/virtual-machines/trusted-launch#secure-boot[secure boot].
39+
<4> Enable the virtualized Trusted Platform Module. For more information, see the Azure documentation about link:https://learn.microsoft.com/en-us/windows/security/hardware-security/tpm/trusted-platform-module-overview[virtualized Trusted Platform Modules].

modules/installation-configuration-parameters.adoc

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1044,6 +1044,54 @@ within link:https://azure.microsoft.com/en-us/global-infrastructure/regions[a re
10441044
|The availability zones where the installation program creates compute machines.
10451045
|String list
10461046

1047+
|`compute.platform.azure.settings.securityType`
1048+
|Enables confidential VMs or trusted launch for compute nodes. This option is not enabled by default.
1049+
|`ConfidentialVM` or `TrustedLaunch`.
1050+
1051+
|`compute.platform.azure.settings.confidentialVM.uefiSettings.secureBoot`
1052+
|Enables secure boot on compute nodes if you are using confidential VMs.
1053+
|`Enabled` or `Disabled`. The default is `Disabled`.
1054+
1055+
|`compute.platform.azure.settings.confidentialVM.uefiSettings.virtualizedTrustedPlatformModule`
1056+
|Enables the virtualized Trusted Platform Module (vTPM) feature on compute nodes if you are using confidential VMs.
1057+
|`Enabled` or `Disabled`. The default is `Disabled`.
1058+
1059+
|`compute.platform.azure.settings.trustedLaunch.uefiSettings.secureBoot`
1060+
|Enables secure boot on compute nodes if you are using trusted launch.
1061+
|`Enabled` or `Disabled`. The default is `Disabled`.
1062+
1063+
|`compute.platform.azure.settings.trustedLaunch.uefiSettings.virtualizedTrustedPlatformModule`
1064+
|Enables the vTPM feature on compute nodes if you are using trusted launch.
1065+
|`Enabled` or `Disabled`. The default is `Disabled`.
1066+
1067+
|`compute.platform.azure.osDisk.securityProfile.securityEncryptionType`
1068+
|Enables the encryption of the virtual machine guest state for compute nodes. This parameter can only be used if you use Confidential VMs.
1069+
|`VMGuestStateOnly` is the only supported value.
1070+
1071+
|`controlPlane.platform.azure.settings.securityType`
1072+
|Enables confidential VMs or trusted launch for control plane nodes. This option is not enabled by default.
1073+
|`ConfidentialVM` or `TrustedLaunch`.
1074+
1075+
|`controlPlane.platform.azure.settings.confidentialVM.uefiSettings.secureBoot`
1076+
|Enables secure boot on control plane nodes if you are using confidential VMs.
1077+
|`Enabled` or `Disabled`. The default is `Disabled`.
1078+
1079+
|`controlPlane.platform.azure.settings.confidentialVM.uefiSettings.virtualizedTrustedPlatformModule`
1080+
|Enables the vTPM feature on control plane nodes if you are using confidential VMs.
1081+
|`Enabled` or `Disabled`. The default is `Disabled`.
1082+
1083+
|`controlPlane.platform.azure.settings.trustedLaunch.uefiSettings.secureBoot`
1084+
|Enables secure boot on control plane nodes if you are using trusted launch.
1085+
|`Enabled` or `Disabled`. The default is `Disabled`.
1086+
1087+
|`controlPlane.platform.azure.settings.trustedLaunch.uefiSettings.virtualizedTrustedPlatformModule`
1088+
|Enables the vTPM feature on control plane nodes if you are using trusted launch.
1089+
|`Enabled` or `Disabled`. The default is `Disabled`.
1090+
1091+
|`controlPlane.platform.azure.osDisk.securityProfile.securityEncryptionType`
1092+
|Enables the encryption of the virtual machine guest state for control plane nodes. This parameter can only be used if you use Confidential VMs.
1093+
|`VMGuestStateOnly` is the only supported value.
1094+
10471095
|`controlPlane.platform.azure.type`
10481096
|Defines the Azure instance type for control plane machines.
10491097
|String
@@ -1052,6 +1100,30 @@ within link:https://azure.microsoft.com/en-us/global-infrastructure/regions[a re
10521100
|The availability zones where the installation program creates control plane machines.
10531101
|String list
10541102

1103+
|`platform.azure.defaultMachinePlatform.settings.securityType`
1104+
|Enables confidential VMs or trusted launch for all nodes. This option is not enabled by default.
1105+
|`ConfidentialVM` or `TrustedLaunch`.
1106+
1107+
|`platform.azure.defaultMachinePlatform.settings.confidentialVM.uefiSettings.secureBoot`
1108+
|Enables secure boot on all nodes if you are using confidential VMs.
1109+
|`Enabled` or `Disabled`. The default is `Disabled`.
1110+
1111+
|`platform.azure.defaultMachinePlatform.settings.confidentialVM.uefiSettings.virtualizedTrustedPlatformModule`
1112+
|Enables the virtualized Trusted Platform Module (vTPM) feature on all nodes if you are using confidential VMs.
1113+
|`Enabled` or `Disabled`. The default is `Disabled`.
1114+
1115+
|`platform.azure.defaultMachinePlatform.settings.trustedLaunch.uefiSettings.secureBoot`
1116+
|Enables secure boot on all nodes if you are using trusted launch.
1117+
|`Enabled` or `Disabled`. The default is `Disabled`.
1118+
1119+
|`platform.azure.defaultMachinePlatform.settings.trustedLaunch.uefiSettings.virtualizedTrustedPlatformModule`
1120+
|Enables the vTPM feature on all nodes if you are using trusted launch.
1121+
|`Enabled` or `Disabled`. The default is `Disabled`.
1122+
1123+
|`platform.azure.defaultMachinePlatform.osDisk.securityProfile.securityEncryptionType`
1124+
|Enables the encryption of the virtual machine guest state for all nodes. This parameter can only be used if you use Confidential VMs.
1125+
|`VMGuestStateOnly` is the only supported value.
1126+
10551127
|`platform.azure.defaultMachinePlatform.encryptionAtHost`
10561128
|Enables host-level encryption for compute machines. You can enable this encryption alongside user-managed server-side encryption. This feature encrypts temporary, ephemeral, cached, and un-managed disks on the VM host. This parameter is not a prerequisite for user-managed server-side encryption.
10571129
|`true` or `false`. The default is `false`.

0 commit comments

Comments
 (0)