Un opérateur de charge de travail peut transmettre des options à une VM de charge de travail Confidential Space pour déterminer son comportement avant son exécution. Bien que certaines options aient des valeurs obligatoires qui ne changent pas, vous devez tout de même faire les choix suivants:
Indique si la VM doit être basée sur une image Confidential Space de production ou de débogage.
Indique si vous souhaitez utiliser la technologie d'informatique confidentielle AMD SEV ou Intel TDX.
Les variables de métadonnées de VM à transmettre, y compris des informations telles que l'image de conteneur de charge de travail à exécuter, l'enregistrement dans Cloud Logging et les variables d'environnement à définir.
Compte de service à associer à la VM pour exécuter la charge de travail, ainsi que les autorisations dont il a besoin pour accéder aux données confidentielles d'autres projets et écrire les résultats quelque part.
Zone dans laquelle l'instance de VM doit s'exécuter.
Voici un exemple qui crée une Confidential VM dans la zone us-west1-b
basée sur la dernière image Confidential Space de production et exécute un conteneur Docker appelé 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
Les options utilisées dans cet exemple sont détaillées dans le tableau suivant.
Option | Description |
---|---|
--confidential-compute-type |
Obligatoire. Indique à Compute Engine la technologie d'informatique confidentielle à utiliser lors de la création d'une instance de Confidential VM.
Remplacez
La technologie de calcul confidentiel doit correspondre à la famille d'images que vous sélectionnez. |
--machine-type |
Facultatif. Spécifie un nom de type de machine Confidential VM. Consultez la section Configurations compatibles pour connaître les types de machines compatibles avec AMD SEV et Intel TDX (version preview). |
--maintenance-policy |
Pour les types de machines N2D qui utilisent SEV, définissez cette valeur sur MIGRATE pour la prise en charge de la migration à chaud. Pour tous les autres types de machines, définissez cette valeur sur TERMINATE , car ils
ne sont pas compatibles avec la migration à chaud.
|
--shielded-secure-boot |
Obligatoire. Indique à Compute Engine d'utiliser le démarrage sécurisé pour l'instance. |
--image-project=confidential-space-images |
Obligatoire. Indique à Compute Engine de rechercher dans le projet confidential-space-images l'
image Confidential Space.
|
|
Obligatoire. Indique à Compute Engine d'utiliser la dernière image Confidential Space, qui fait partie du projet
Pour utiliser une image de production avec votre charge de travail finale qui traite les données confidentielles, remplacez
Pour utiliser l'image de débogage à des fins de
surveillance et de débogage, remplacez
La famille d'images que vous utilisez doit correspondre à la technologie de calcul confidentiel que vous sélectionnez. |
--metadata |
Obligatoire. Modifie le comportement de la Confidential VM en transmettant des variables. La clé et la valeur Pour connaître les paires clé/valeur disponibles, consultez la section Variables de métadonnées. |
--service-account |
Facultatif. Le compte de service associé à l'instance de VM qui exécute la charge de travail et qui imite les comptes de service associés aux pools d'identités de charge de travail dans d'autres projets. S'il n'est pas spécifié, le compte de service Compute Engine par défaut est utilisé. |
--scopes=cloud-platform |
Obligatoire. Définit le
niveau d'accès.
Le champ d'application cloud-platform est un champ d'application OAuth pour la
plupart des services Google Cloud et permet à la VM de communiquer avec l'outil de vérification d'attestation.
|
--zone |
Obligatoire. Zone dans laquelle l'instance de VM s'exécute. Confidential Space nécessite les services suivants, qui sont disponibles dans des emplacements spécifiques: |
Compte de service associé
Un compte de service doit être associé à la VM de charge de travail Confidential pour exécuter la charge de travail. Le compte de service doit être configuré comme suit:
avec les rôles suivants:
roles/confidentialcomputing.workloadUser
pour générer un jeton d'attestation.roles/artifactregistry.reader
pour récupérer une image de conteneur de charge de travail stockée dans Artifact Registry.roles/logging.logWriter
si vous souhaitez redirigerSTDOUT
etSTDERR
vers Cloud Logging.
avec un accès en lecture à l'emplacement où les collaborateurs stockent leurs données confidentielles (par exemple, un bucket Cloud Storage ou une table BigQuery) ;
Avoir un accès en écriture à l'emplacement où la charge de travail doit générer les données, par exemple un bucket Cloud Storage. Les collaborateurs sur les données doivent disposer d'un accès en lecture à cet emplacement.
De plus, les collaborateurs de données et les opérateurs de charge de travail doivent configurer les éléments suivants:
Les collaborateurs de données doivent ajouter le compte de service à leur fournisseur de pool d'identités de charge de travail en tant que condition d'attribut:
'WORKLOAD_SERVICE_ACCOUNT_NAME@DATA_COLLABORATOR_PROJECT_ID.iam.gserviceaccount.com' in assertion.google_service_accounts
L'opérateur de charge de travail a besoin du rôle
roles/iam.serviceAccountUser
pour usurper l'identité du compte de service. Cela leur permet de l'associer à une VM de charge de travail afin qu'elle puisse l'exécuter.
Variables de métadonnées
Vous pouvez modifier le comportement de la VM de charge de travail Confidential Space en transmettant des variables à l'option --metadata
lorsque vous créez la VM.
Pour transmettre plusieurs variables, commencez par définir le délimiteur en préfixant la valeur --metadata
avec ^~^
. Cela définit le délimiteur sur ~
, car ,
est utilisé dans les valeurs de variables.
Exemple :
metadata="^~^tee-restart-policy=Always~tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest"
Le tableau suivant détaille les variables de métadonnées que vous pouvez définir pour la VM de votre charge de travail.
Clé de métadonnée | Type | Description et valeurs |
---|---|---|
Interagit avec:
|
Chaîne |
Obligatoire. Il pointe vers l'emplacement du conteneur de la charge de travail. Exemple
|
Interagit avec:
|
Tableau de chaînes JSON |
Remplace les instructions CMD spécifiées dans le Exemple
|
Interagit avec:
|
Chaîne définie |
affiche Les valeurs valides sont les suivantes:
Un volume de journaux élevé dans la console série peut avoir un impact sur les performances de la charge de travail. Exemple
|
|
Integer |
Définit la taille en ko du montage de la mémoire partagée Exemple
|
Interagit avec:
|
Chaîne |
Définit les variables d'environnement dans le conteneur de charge de travail. L'auteur de la charge de travail doit également ajouter les noms des variables d'environnement à la règle de lancement
Exemple
|
Interagit avec:
|
Chaîne |
Liste des comptes de service dont l'identité peut être empruntée par l'opérateur de charge de travail. L'opérateur de charge de travail doit être autorisé à emprunter l'identité des comptes de service. Plusieurs comptes de service peuvent être répertoriés, séparés par une virgule. Exemple
|
Interagit avec:
|
Booléen |
La valeur par défaut est Exemple
|
Interagit avec:
|
Chaîne |
Liste des définitions de montage séparées par un point-virgule. Une définition de montage se compose d'une liste de paires clé-valeur séparées par une virgule, qui nécessite Exemple
|
Interagit avec:
|
Chaîne définie |
Règle de redémarrage du lanceur de conteneurs lorsque la charge de travail s'arrête Les valeurs valides sont les suivantes:
Cette variable n'est compatible qu'avec l'image de production Confidential Space. Exemple
|
Interagit avec:
|
Chaîne |
Liste de dépôts de conteneurs séparés par une virgule qui stockent les signatures générées par Cosign Sigstore. Exemple
|
Scaling
Pour découvrir comment faire évoluer et assurer la haute disponibilité des charges de travail Confidential Space de production, consultez la section Groupes d'instances gérés.