Message ID | 20210113235811.1909610-10-david@gibson.dropbear.id.au (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Generalize memory encryption models | expand |
On Thu, 14 Jan 2021 10:58:07 +1100 David Gibson <david@gibson.dropbear.id.au> wrote: > Now that we've implemented a generic machine option for configuring various > confidential guest support mechanisms: > 1. Update docs/amd-memory-encryption.txt to reference this rather than > the earlier SEV specific option > 2. Add a docs/confidential-guest-support.txt to cover the generalities of > the confidential guest support scheme > > Signed-off-by: David Gibson <david@gibson.dropbear.id.au> > --- LGTM Reviewed-by: Greg Kurz <groug@kaod.org> > docs/amd-memory-encryption.txt | 2 +- > docs/confidential-guest-support.txt | 43 +++++++++++++++++++++++++++++ > 2 files changed, 44 insertions(+), 1 deletion(-) > create mode 100644 docs/confidential-guest-support.txt > > diff --git a/docs/amd-memory-encryption.txt b/docs/amd-memory-encryption.txt > index 80b8eb00e9..145896aec7 100644 > --- a/docs/amd-memory-encryption.txt > +++ b/docs/amd-memory-encryption.txt > @@ -73,7 +73,7 @@ complete flow chart. > To launch a SEV guest > > # ${QEMU} \ > - -machine ...,memory-encryption=sev0 \ > + -machine ...,confidential-guest-support=sev0 \ > -object sev-guest,id=sev0,cbitpos=47,reduced-phys-bits=1 > > Debugging > diff --git a/docs/confidential-guest-support.txt b/docs/confidential-guest-support.txt > new file mode 100644 > index 0000000000..2790425b38 > --- /dev/null > +++ b/docs/confidential-guest-support.txt > @@ -0,0 +1,43 @@ > +Confidential Guest Support > +========================== > + > +Traditionally, hypervisors such as qemu have complete access to a > +guest's memory and other state, meaning that a compromised hypervisor > +can compromise any of its guests. A number of platforms have added > +mechanisms in hardware and/or firmware which give guests at least some > +protection from a compromised hypervisor. This is obviously > +especially desirable for public cloud environments. > + > +These mechanisms have different names and different modes of > +operation, but are often referred to as Secure Guests or Confidential > +Guests. We use the term "Confidential Guest Support" to distinguish > +this from other aspects of guest security (such as security against > +attacks from other guests, or from network sources). > + > +Running a Confidential Guest > +---------------------------- > + > +To run a confidential guest you need to add two command line parameters: > + > +1. Use "-object" to create a "confidential guest support" object. The > + type and parameters will vary with the specific mechanism to be > + used > +2. Set the "confidential-guest-support" machine parameter to the ID of > + the object from (1). > + > +Example (for AMD SEV):: > + > + qemu-system-x86_64 \ > + <other parameters> \ > + -machine ...,confidential-guest-support=sev0 \ > + -object sev-guest,id=sev0,cbitpos=47,reduced-phys-bits=1 > + > +Supported mechanisms > +-------------------- > + > +Currently supported confidential guest mechanisms are: > + > +AMD Secure Encrypted Virtualization (SEV) > + docs/amd-memory-encryption.txt > + > +Other mechanisms may be supported in future.
On Thu, 14 Jan 2021 10:58:07 +1100 David Gibson <david@gibson.dropbear.id.au> wrote: > Now that we've implemented a generic machine option for configuring various > confidential guest support mechanisms: > 1. Update docs/amd-memory-encryption.txt to reference this rather than > the earlier SEV specific option > 2. Add a docs/confidential-guest-support.txt to cover the generalities of > the confidential guest support scheme > > Signed-off-by: David Gibson <david@gibson.dropbear.id.au> > --- > docs/amd-memory-encryption.txt | 2 +- > docs/confidential-guest-support.txt | 43 +++++++++++++++++++++++++++++ > 2 files changed, 44 insertions(+), 1 deletion(-) > create mode 100644 docs/confidential-guest-support.txt > > diff --git a/docs/amd-memory-encryption.txt b/docs/amd-memory-encryption.txt > index 80b8eb00e9..145896aec7 100644 > --- a/docs/amd-memory-encryption.txt > +++ b/docs/amd-memory-encryption.txt > @@ -73,7 +73,7 @@ complete flow chart. > To launch a SEV guest > > # ${QEMU} \ > - -machine ...,memory-encryption=sev0 \ > + -machine ...,confidential-guest-support=sev0 \ > -object sev-guest,id=sev0,cbitpos=47,reduced-phys-bits=1 > > Debugging > diff --git a/docs/confidential-guest-support.txt b/docs/confidential-guest-support.txt > new file mode 100644 > index 0000000000..2790425b38 > --- /dev/null > +++ b/docs/confidential-guest-support.txt Maybe make this a proper .rst from the start and hook this up into the system guide? It is already almost there. > @@ -0,0 +1,43 @@ > +Confidential Guest Support > +========================== > + > +Traditionally, hypervisors such as qemu have complete access to a s/qemu/QEMU/ ? > +guest's memory and other state, meaning that a compromised hypervisor > +can compromise any of its guests. A number of platforms have added > +mechanisms in hardware and/or firmware which give guests at least some > +protection from a compromised hypervisor. This is obviously > +especially desirable for public cloud environments. > + > +These mechanisms have different names and different modes of > +operation, but are often referred to as Secure Guests or Confidential > +Guests. We use the term "Confidential Guest Support" to distinguish > +this from other aspects of guest security (such as security against > +attacks from other guests, or from network sources). > + > +Running a Confidential Guest > +---------------------------- > + > +To run a confidential guest you need to add two command line parameters: > + > +1. Use "-object" to create a "confidential guest support" object. The > + type and parameters will vary with the specific mechanism to be > + used > +2. Set the "confidential-guest-support" machine parameter to the ID of > + the object from (1). > + > +Example (for AMD SEV):: > + > + qemu-system-x86_64 \ > + <other parameters> \ > + -machine ...,confidential-guest-support=sev0 \ > + -object sev-guest,id=sev0,cbitpos=47,reduced-phys-bits=1 > + > +Supported mechanisms > +-------------------- > + > +Currently supported confidential guest mechanisms are: > + > +AMD Secure Encrypted Virtualization (SEV) > + docs/amd-memory-encryption.txt > + > +Other mechanisms may be supported in future. LGTM.
On Fri, Jan 15, 2021 at 04:36:46PM +0100, Cornelia Huck wrote: > On Thu, 14 Jan 2021 10:58:07 +1100 > David Gibson <david@gibson.dropbear.id.au> wrote: > > > Now that we've implemented a generic machine option for configuring various > > confidential guest support mechanisms: > > 1. Update docs/amd-memory-encryption.txt to reference this rather than > > the earlier SEV specific option > > 2. Add a docs/confidential-guest-support.txt to cover the generalities of > > the confidential guest support scheme > > > > Signed-off-by: David Gibson <david@gibson.dropbear.id.au> > > --- > > docs/amd-memory-encryption.txt | 2 +- > > docs/confidential-guest-support.txt | 43 +++++++++++++++++++++++++++++ > > 2 files changed, 44 insertions(+), 1 deletion(-) > > create mode 100644 docs/confidential-guest-support.txt > > > > diff --git a/docs/amd-memory-encryption.txt b/docs/amd-memory-encryption.txt > > index 80b8eb00e9..145896aec7 100644 > > --- a/docs/amd-memory-encryption.txt > > +++ b/docs/amd-memory-encryption.txt > > @@ -73,7 +73,7 @@ complete flow chart. > > To launch a SEV guest > > > > # ${QEMU} \ > > - -machine ...,memory-encryption=sev0 \ > > + -machine ...,confidential-guest-support=sev0 \ > > -object sev-guest,id=sev0,cbitpos=47,reduced-phys-bits=1 > > > > Debugging > > diff --git a/docs/confidential-guest-support.txt b/docs/confidential-guest-support.txt > > new file mode 100644 > > index 0000000000..2790425b38 > > --- /dev/null > > +++ b/docs/confidential-guest-support.txt > > Maybe make this a proper .rst from the start and hook this up into the > system guide? It is already almost there. Hrm. I considered it, but didn't really want to spend the time integrating it into the overall structure of the system guide. I kind of want to get this dang thing wrapped up. > > > @@ -0,0 +1,43 @@ > > +Confidential Guest Support > > +========================== > > + > > +Traditionally, hypervisors such as qemu have complete access to a > > s/qemu/QEMU/ ? Fixed. > > > +guest's memory and other state, meaning that a compromised hypervisor > > +can compromise any of its guests. A number of platforms have added > > +mechanisms in hardware and/or firmware which give guests at least some > > +protection from a compromised hypervisor. This is obviously > > +especially desirable for public cloud environments. > > + > > +These mechanisms have different names and different modes of > > +operation, but are often referred to as Secure Guests or Confidential > > +Guests. We use the term "Confidential Guest Support" to distinguish > > +this from other aspects of guest security (such as security against > > +attacks from other guests, or from network sources). > > + > > +Running a Confidential Guest > > +---------------------------- > > + > > +To run a confidential guest you need to add two command line parameters: > > + > > +1. Use "-object" to create a "confidential guest support" object. The > > + type and parameters will vary with the specific mechanism to be > > + used > > +2. Set the "confidential-guest-support" machine parameter to the ID of > > + the object from (1). > > + > > +Example (for AMD SEV):: > > + > > + qemu-system-x86_64 \ > > + <other parameters> \ > > + -machine ...,confidential-guest-support=sev0 \ > > + -object sev-guest,id=sev0,cbitpos=47,reduced-phys-bits=1 > > + > > +Supported mechanisms > > +-------------------- > > + > > +Currently supported confidential guest mechanisms are: > > + > > +AMD Secure Encrypted Virtualization (SEV) > > + docs/amd-memory-encryption.txt > > + > > +Other mechanisms may be supported in future. > > LGTM. >
diff --git a/docs/amd-memory-encryption.txt b/docs/amd-memory-encryption.txt index 80b8eb00e9..145896aec7 100644 --- a/docs/amd-memory-encryption.txt +++ b/docs/amd-memory-encryption.txt @@ -73,7 +73,7 @@ complete flow chart. To launch a SEV guest # ${QEMU} \ - -machine ...,memory-encryption=sev0 \ + -machine ...,confidential-guest-support=sev0 \ -object sev-guest,id=sev0,cbitpos=47,reduced-phys-bits=1 Debugging diff --git a/docs/confidential-guest-support.txt b/docs/confidential-guest-support.txt new file mode 100644 index 0000000000..2790425b38 --- /dev/null +++ b/docs/confidential-guest-support.txt @@ -0,0 +1,43 @@ +Confidential Guest Support +========================== + +Traditionally, hypervisors such as qemu have complete access to a +guest's memory and other state, meaning that a compromised hypervisor +can compromise any of its guests. A number of platforms have added +mechanisms in hardware and/or firmware which give guests at least some +protection from a compromised hypervisor. This is obviously +especially desirable for public cloud environments. + +These mechanisms have different names and different modes of +operation, but are often referred to as Secure Guests or Confidential +Guests. We use the term "Confidential Guest Support" to distinguish +this from other aspects of guest security (such as security against +attacks from other guests, or from network sources). + +Running a Confidential Guest +---------------------------- + +To run a confidential guest you need to add two command line parameters: + +1. Use "-object" to create a "confidential guest support" object. The + type and parameters will vary with the specific mechanism to be + used +2. Set the "confidential-guest-support" machine parameter to the ID of + the object from (1). + +Example (for AMD SEV):: + + qemu-system-x86_64 \ + <other parameters> \ + -machine ...,confidential-guest-support=sev0 \ + -object sev-guest,id=sev0,cbitpos=47,reduced-phys-bits=1 + +Supported mechanisms +-------------------- + +Currently supported confidential guest mechanisms are: + +AMD Secure Encrypted Virtualization (SEV) + docs/amd-memory-encryption.txt + +Other mechanisms may be supported in future.
Now that we've implemented a generic machine option for configuring various confidential guest support mechanisms: 1. Update docs/amd-memory-encryption.txt to reference this rather than the earlier SEV specific option 2. Add a docs/confidential-guest-support.txt to cover the generalities of the confidential guest support scheme Signed-off-by: David Gibson <david@gibson.dropbear.id.au> --- docs/amd-memory-encryption.txt | 2 +- docs/confidential-guest-support.txt | 43 +++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 docs/confidential-guest-support.txt