Un operador de cargas de trabajo puede pasar opciones a una VM de carga de trabajo de Confidential Space para determinar su comportamiento antes de que se ejecute. Si bien algunas marcas tienen valores obligatorios que no cambian, debes tomar las siguientes decisiones:
Si quieres basar la VM en una imagen de Confidential Space de producción o de depuración.
Si se debe usar la tecnología de procesamiento confidencial AMD SEV o Intel TDX.
Qué variables de metadatos de VM se deben pasar, lo que incluye detalles como qué imagen de contenedor de carga de trabajo se debe ejecutar, si se debe acceder a Cloud Logging y qué variables de entorno se deben configurar
Qué cuenta de servicio adjuntar a la VM para ejecutar la carga de trabajo y qué permisos necesita para acceder a datos confidenciales en otros proyectos y escribir los resultados en algún lugar.
La zona en la que se debe ejecutar la instancia de VM.
Este es un ejemplo que crea una Confidential VM en la zona us-west1-b
basada en la imagen de Confidential Space de producción más reciente y ejecuta un contenedor de Docker llamado WORKLOAD_CONTAINER_NAME:
gcloud compute instances create workload-vm-name \
--confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \
--machine-type=MACHINE_TYPE_NAME \
--maintenance-policy=MAINTENANCE_POLICY \
--shielded-secure-boot \
--image-project=confidential-space-images \
--image-family=IMAGE_FAMILY \
--metadata="^~^tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest" \
--service-account=WORKLOAD_SERVICE_ACCOUNT_NAME@WORKLOAD_OPERATOR_PROJECT_ID.iam.gserviceaccount.com \
--scopes=cloud-platform \
--zone=us-west1-b
En la siguiente tabla, se detallan las opciones que se usan en este ejemplo.
Marcar | Descripción |
---|---|
--confidential-compute-type |
Obligatorio. Le indica a Compute Engine qué tecnología de Confidential Computing usar cuando se crea una instancia de Confidential VM.
Reemplaza
La tecnología de procesamiento confidencial debe coincidir con la familia de imágenes que selecciones. |
--machine-type |
Opcional. Especifica un nombre de tipo de máquina de Confidential VM. Consulta Parámetros de configuración compatibles para conocer los tipos de máquinas que admiten AMD SEV y Intel TDX (versión preliminar). |
--maintenance-policy |
Para los tipos de máquinas N2D que usan SEV, configúralo como MIGRATE para admitir la migración en vivo. Para todos los demás tipos de máquinas, establece este valor en TERMINATE , ya que
no admiten la migración en vivo.
|
--shielded-secure-boot |
Obligatorio. Le indica a Compute Engine que use el inicio seguro para la instancia. |
--image-project=confidential-space-images |
Obligatorio. Le indica a Compute Engine que busque en el proyecto confidential-space-images la
imagen de Confidential Space.
|
|
Obligatorio. Le indica a Compute Engine que use la imagen de Confidential Space más reciente, que forma parte del proyecto
Para usar una imagen de producción con la carga de trabajo final que procesa datos confidenciales, reemplaza
Para usar la imagen de depuración para la
supervisión y depuración, reemplaza
La familia de imágenes que uses debe coincidir con la tecnología de procesamiento confidencial que selecciones. |
--metadata |
Obligatorio. Cambia el comportamiento de la VM de Confidential Space pasando variables. La clave y el valor de Para obtener los pares clave-valor disponibles, consulta Variables de metadatos. |
--service-account |
Opcional. La cuenta de servicio adjunta a la instancia de VM que ejecuta la carga de trabajo y suplanta las cuentas de servicio adjuntas a los grupos de identidades de cargas de trabajo en otros proyectos. Si no se especifica, se usa la cuenta de servicio predeterminada de Compute Engine. |
--scopes=cloud-platform |
Obligatorio. Establece el
permiso de acceso.
El permiso cloud-platform es un permiso de OAuth para
la mayoría de los servicios de Google Cloud y permite que la VM se comunique con el verificador de certificación.
|
--zone |
Obligatorio. La zona en la que se ejecuta la instancia de VM. Confidential Space requiere los siguientes servicios, que están disponibles en ubicaciones específicas: |
Cuenta de servicio adjunta
Se debe adjuntar una cuenta de servicio a la VM confidencial de una carga de trabajo para ejecutarla. La cuenta de servicio debe configurarse de la siguiente manera:
Con los siguientes roles:
roles/confidentialcomputing.workloadUser
para generar un token de certificación.roles/artifactregistry.reader
para recuperar una imagen de contenedor de carga de trabajo almacenada en Artifact Registry.roles/logging.logWriter
si deseas redireccionarSTDOUT
ySTDERR
a Cloud Logging.
Con acceso de lectura a los datos confidenciales que almacenan los colaboradores de datos, por ejemplo, un bucket de Cloud Storage o una tabla de BigQuery
Con acceso de escritura a la ubicación donde la carga de trabajo debe generar los datos, por ejemplo, un bucket de Cloud Storage. Los colaboradores de datos deben tener acceso de lectura a esta ubicación.
Además, los colaboradores de datos y los operadores de carga de trabajo deben configurar lo siguiente:
Los colaboradores de datos deben agregar la cuenta de servicio a su proveedor de grupos de identidad de carga de trabajo como una condición de atributo:
'WORKLOAD_SERVICE_ACCOUNT_NAME@DATA_COLLABORATOR_PROJECT_ID.iam.gserviceaccount.com' in assertion.google_service_accounts
El operador de carga de trabajo necesita el rol
roles/iam.serviceAccountUser
para apropiarse de la identidad de la cuenta de servicio. Esto le permite conectarlo a una VM de carga de trabajo para que pueda ejecutarla.
Variables de metadatos
Puedes cambiar el comportamiento de la VM de la carga de trabajo de Confidential Space pasando variables a la opción --metadata
cuando creas la VM.
Para pasar varias variables, primero establece el delimitador anteponiendo el valor --metadata
con ^~^
. Esto establece el delimitador en ~
, ya que ,
se usa en los valores de las variables.
Por ejemplo:
metadata="^~^tee-restart-policy=Always~tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest"
En la siguiente tabla, se detallan las variables de metadatos que puedes configurar para la VM de tu carga de trabajo.
Clave de metadatos | Tipo | Descripción y valores |
---|---|---|
Interactúa con lo siguiente:
|
String |
Obligatorio. Esto apunta a la ubicación del contenedor de la carga de trabajo. Ejemplo
|
Interactúa con lo siguiente:
|
Array de cadenas JSON |
Anula las instrucciones de CMD especificadas en el Ejemplo
|
Interactúa con lo siguiente:
|
Cadena definida |
Envía Los valores válidos son los siguientes:
Un volumen de registro alto en la consola en serie podría afectar el rendimiento de la carga de trabajo. Ejemplo
|
|
Entero |
Establece el tamaño en KB de la activación de la memoria compartida de Ejemplo
|
Interactúa con lo siguiente:
|
String |
Configura las variables de entorno en el contenedor de carga de trabajo. El autor de la carga de trabajo también debe agregar los nombres de variable de entorno a la política de lanzamiento de
Ejemplo
|
Interactúa con lo siguiente:
|
String |
Es una lista de cuentas de servicio que el operador de carga de trabajo puede usurpar. El operador de carga de trabajo debe tener la identidad de las cuentas de servicio. Se pueden enumerar varias cuentas de servicio, separadas por comas. Ejemplo
|
Interactúa con lo siguiente:
|
Booleano |
La configuración predeterminada es Ejemplo
|
Interactúa con lo siguiente:
|
String |
Es una lista de definiciones de activación separadas por punto y coma. Una definición de activación consiste en una lista de pares clave-valor separados por comas que requieren Ejemplo
|
Interactúa con lo siguiente:
|
Cadena definida |
La política de reinicio del selector de contenedores cuando se detiene la carga de trabajo Los valores válidos son los siguientes:
Esta variable solo es compatible con la imagen de Confidential Space de producción. Ejemplo
|
Interactúa con lo siguiente:
|
String |
Es una lista de repositorios de contenedores separados por comas que almacenan las firmas que genera Sigstore Cosign. Ejemplo
|
Escalamiento
Para el escalamiento y la alta disponibilidad de las cargas de trabajo de Confidential Space de producción, consulta Grupos de instancias administradas.