GCP - Compute Instances

Soutenir HackTricks

Informations de base

Les instances de calcul Google Cloud sont des machines virtuelles personnalisables sur l'infrastructure cloud de Google, offrant une puissance de calcul évolutive et à la demande pour une large gamme d'applications. Elles fournissent des fonctionnalités telles que le déploiement mondial, le stockage persistant, des choix de systèmes d'exploitation flexibles, et de fortes intégrations réseau et sécurité, ce qui en fait un choix polyvalent pour héberger des sites web, traiter des données et exécuter des applications efficacement dans le cloud.

VM Confidentielle

Les VM confidentielles utilisent des fonctionnalités de sécurité basées sur le matériel offertes par la dernière génération de processeurs AMD EPYC, qui incluent le chiffrement de la mémoire et la virtualisation chiffrée sécurisée. Ces fonctionnalités permettent à la VM de protéger les données traitées et stockées à l'intérieur d'elle-même, même contre le système d'exploitation hôte et l'hyperviseur.

Pour exécuter une VM confidentielle, il peut être nécessaire de changer des éléments comme le type de la machine, l'interface réseau, l'image de disque de démarrage.

Disque et Chiffrement de Disque

Il est possible de sélectionner le disque à utiliser ou d'en créer un nouveau. Si vous sélectionnez un nouveau, vous pouvez :

  • Sélectionner la taille du disque

  • Sélectionner le système d'exploitation

  • Indiquer si vous souhaitez supprimer le disque lorsque l'instance est supprimée

  • Chiffrement : Par défaut, une clé gérée par Google sera utilisée, mais vous pouvez également sélectionner une clé de KMS ou indiquer une clé brute à utiliser.

Déployer un Conteneur

Il est possible de déployer un conteneur à l'intérieur de la machine virtuelle. Il est possible de configurer l'image à utiliser, de définir la commande à exécuter à l'intérieur, les arguments, de monter un volume, et des variables d'environnement (informations sensibles ?) et de configurer plusieurs options pour ce conteneur comme exécuter en tant que privilégié, stdin et pseudo TTY.

Compte de Service

Par défaut, le compte de service par défaut de Compute Engine sera utilisé. L'email de ce compte de service est comme : <proj-num>-compute@developer.gserviceaccount.com Ce compte de service a le rôle d'éditeur sur l'ensemble du projet (hauts privilèges).

Et les portées d'accès par défaut sont les suivantes :

  • https://www.googleapis.com/auth/devstorage.read_only -- Accès en lecture aux buckets :)

  • https://www.googleapis.com/auth/logging.write

  • https://www.googleapis.com/auth/monitoring.write

  • https://www.googleapis.com/auth/servicecontrol

  • https://www.googleapis.com/auth/service.management.readonly

  • https://www.googleapis.com/auth/trace.append

Cependant, il est possible de l'accorder cloud-platform d'un clic ou de spécifier des personnalisées.

Pare-feu

Il est possible de permettre le trafic HTTP et HTTPS.

Réseau

  • Transfert IP : Il est possible de permettre le transfert IP dès la création de l'instance.

  • Nom d'hôte : Il est possible de donner à l'instance un nom d'hôte permanent.

  • Interface : Il est possible d'ajouter une interface réseau.

Sécurité Supplémentaire

Ces options augmenteront la sécurité de la VM et sont recommandées :

  • Démarrage sécurisé : Le démarrage sécurisé aide à protéger vos instances de VM contre les malwares et rootkits au niveau du démarrage et du noyau.

  • Activer vTPM : Le module de plateforme de confiance virtuel (vTPM) valide l'intégrité de pré-démarrage et de démarrage de votre VM invitée, et offre génération et protection de clés.

  • Supervision de l'intégrité : La surveillance de l'intégrité vous permet de surveiller et de vérifier l'intégrité de démarrage en cours d'exécution de vos instances de VM protégées à l'aide des rapports Stackdriver. Nécessite que vTPM soit activé.

Accès à la VM

La manière courante d'activer l'accès à la VM est de permettre à certaines clés SSH publiques d'accéder à la VM. Cependant, il est également possible d'activer l'accès à la VM via le service os-config en utilisant IAM. De plus, il est possible d'activer l'authentification à deux facteurs pour accéder à la VM en utilisant ce service. Lorsque ce service est activé, l'accès via clés SSH est désactivé.

Métadonnées

Il est possible de définir l'automatisation (userdata dans AWS) qui sont des commandes shell qui seront exécutées chaque fois que la machine s'allume ou redémarre.

Il est également possible d'ajouter des valeurs de métadonnées supplémentaires clé-valeur qui seront accessibles depuis le point de terminaison des métadonnées. Ces informations sont couramment utilisées pour les variables d'environnement et les scripts de démarrage/arrêt. Cela peut être obtenu en utilisant la méthode describe d'une commande dans la section d'énumération, mais cela pourrait également être récupéré de l'intérieur de l'instance en accédant au point de terminaison des métadonnées.

# view project metadata
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"

# view instance metadata
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"

De plus, le jeton d'authentification pour le compte de service attaché et les informations générales sur l'instance, le réseau et le projet seront également disponibles à partir de l'endpoint de métadonnées. Pour plus d'informations, consultez :

Chiffrement

Une clé de chiffrement gérée par Google est utilisée par défaut, mais une clé de chiffrement gérée par le client (CMEK) peut être configurée. Vous pouvez également configurer ce qu'il faut faire lorsque le CMEK utilisé est révoqué : rien ou éteindre la VM.

Support HackTricks

Last updated