Skip to content
This repository was archived by the owner on Jan 20, 2022. It is now read-only.

Commit fcb8a65

Browse files
vahldiekDmitrii Kuvaiskii
authored and
Dmitrii Kuvaiskii
committed
[Docs] Update Azure Confidential Compute VM deployment description
1 parent f6f363d commit fcb8a65

File tree

1 file changed

+8
-28
lines changed

1 file changed

+8
-28
lines changed

Documentation/cloud-deployment.rst

+8-28
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,7 @@ Azure confidential computing VMs
1818
generally available and provide access to VMs with Intel SGX enabled in `DCsv2
1919
VM instances
2020
<https://docs.microsoft.com/en-us/azure/virtual-machines/dcv2-series>`__. The
21-
description below uses a VM running Ubuntu 18.04 with a the preinstalled `Intel
22-
SGX DCAP driver
23-
<https://github.com/intel/SGXDataCenterAttestationPrimitives/tree/LD_1.22>`__
24-
(version ``LD_1.22``). To use a different Intel SGX driver, please follow the
25-
instructions to uninstall the driver.
21+
description below uses a VM running Ubuntu 18.04.
2622

2723
Prerequisites
2824
^^^^^^^^^^^^^
@@ -33,6 +29,10 @@ Update and install the required packages for Graphene::
3329
sudo apt install -y build-essential autoconf gawk bison python3-protobuf \
3430
libprotobuf-c-dev protobuf-c-compiler libcurl4 python3
3531

32+
Graphene requires the kernel to support FSGSBASE x86 instructions. Older Azure
33+
Confidential Compute VMs may not contain the required kernel patches and need to
34+
be updated.
35+
3636
Building
3737
^^^^^^^^
3838

@@ -42,40 +42,20 @@ Building
4242
cd graphene
4343
git submodule update --init -- Pal/src/host/Linux-SGX/sgx-driver/
4444

45-
#. Prepare the signing keys and Graphene kernel driver::
45+
#. Prepare the signing keys::
4646

4747
openssl genrsa -3 -out enclave-key.pem 3072
4848
cp enclave-key.pem Pal/src/host/Linux-SGX/signer
49-
cd Pal/src/host/Linux-SGX/sgx-driver
50-
ISGX_DRIVER_PATH=/usr/src/linux-azure-headers-`uname -r`/arch/x86/ make
51-
# WARNING: read "Security Implications" section before running this command
52-
sudo insmod gsgx.ko
53-
cd -
5449

5550
#. Build Graphene::
5651

57-
ISGX_DRIVER_PATH=/usr/src/linux-azure-headers-`uname -r`/arch/x86/ make SGX=1
52+
ISGX_DRIVER_PATH=/usr/src/linux-headers-`uname -r`/arch/x86/ make SGX=1
5853

5954
#. Build and run :program:`helloworld`::
6055

6156
cd LibOS/shim/test/native
6257
make SGX=1 sgx-tokens
63-
SGX=1 ./pal_loader helloworld
64-
65-
66-
Security implications
67-
^^^^^^^^^^^^^^^^^^^^^
68-
69-
Note that this guide assumes that you deploy Graphene on an untrusted cloud VM.
70-
One step in this guide significantly weakens the security of the cloud VM's
71-
Linux kernel: ``sudo insmod gsgx.ko`` introduces a local privilege escalation
72-
vulnerability. This kernel module enables the FSGSBASE processor feature
73-
without proper enabling in the host Linux kernel. Please refer to the
74-
documentation under ``Pal/src/host/Linux-SGX/sgx-driver`` for more information.
75-
76-
This step is a temporary workaround and will not be required in the future
77-
(starting from Linux 5.9). Be aware that the current guide must not be used to
78-
set up production environments.
58+
SGX=1 ../../../../Runtime/pal_loader helloworld
7959

8060
Azure Kubernetes Services (AKS)
8161
-------------------------------

0 commit comments

Comments
 (0)