Découverte de Google Cloud Onboarding
Afin de faciliter la mise en place et l’utilisation de son Cloud, Google propose maintenant une procédure pas-à-pas pour simplifier la configuration d’une landing zone pour votre organisation. Cet assistant est disponible via la console Google Cloud à l’adresse suivante : https://console.cloud.google.com/cloud-setup
Cet article vous propose une présentation de cette procédure et des différentes étapes qu’elle couvre.
📝 Prérequis
- d’un nom de domaine
- d’une carte bancaire valide, même si rien ne vous sera facturé tant que vous restez dans les 14 jours de période d’essai de Cloud Identity et dans les 300$ de crédit Google Cloud offerts pour le démarrage.
Si vous souhaitez dérouler cette procédure, vous aurez besoin :
La première étape nécessaire est d’activer Cloud Identity et de paramétrer la base de votre organisation en indiquant le nom de domaine à utiliser.
De notre côté la totalité de la démarche nous a pris environ deux heures et nous a permis de configurer :
- Les groupes et utilisateurs de base
- Les groupes d’administration
- La facturation
- La hiérarchie des dossiers et projets
- Le réseau
- La centralisation des journaux et métriques
- La sécurité
- Le niveau d’assistance
🏗 Lancement
Une fois l’organisation créée, l’assistant vous propose de créer les groupes dédiés aux différentes tâches d’administration et d’utilisation de la plateforme. Une liste prédéfinie vous est suggérée, mais en vous offrant également la possibilité de créer vos propres groupes.
Lors de cette étape, vous pourrez également ajouter des utilisateurs dans chacun des groupes d’administration, mais dans tous les cas, c’est une action que vous pourrez également réaliser ultérieurement.
Par défaut, l’utilisateur “administrateur de l’organisation” créé et configuré précédemment a été ajouté à l’ensemble de ces groupes.
Une fois ces groupes créés et les membres ajoutés, il est nécessaire de leur affecter des rôles qui leur donneront des droits effectifs sur les services.
Notons que le fait de gérer ces droits au niveau des groupes, plutôt qu’au niveau des utilisateurs individuels, est une bonne pratique et une recommandation de Google.
Nous allons maintenant ajouter un compte de facturation à notre organisation. Encore une fois plusieurs options sont proposées afin de simplifier la démarche.
Il est maintenant temps de définir la structure de notre organisation. De cette structure découlent :
- La hiérarchie des dossiers et projets
- La topologie et la configuration des réseaux VPC
- La configuration des briques communes liés à l’exploitation de la plateforme (journalisation, surveillance et sécurité)
Comme vous pouvez le voir, les suggestions qui nous sont faites proposent une configuration compatible avec les bonnes pratiques et les recommandations de Google Cloud.
Néanmoins, un choix est proposé parmi 4 hiérarchies types afin d’identifier celle qui correspond le mieux à votre organisation.
Une fois le type de hiérarchie sélectionné, un aperçu du résultat nous est proposé. Vous pouvez voir qu’un dossier réservé aux éléments communs sera créé.
Ce dossier sera utilisé pour les projets porteurs :
- des VPC partagés (un pour chaque environnement)
- des workspaces de monitoring (un pour chaque environnement également)
- de la centralisation des logs
Les étapes suivantes vont justement vous permettre de configurer ces différents éléments, toujours à l’aide d’assistants.
D’abord la configuration du réseau avec quelques rappels sur les choix effectués ainsi qu’un aperçu de l’architecture retenue sous forme de diagramme.
Toujours pour la configuration du réseau, vous aurez ensuite à définir :
- Les règles de pare-feu par défaut
- Les sous-réseaux par régions, ainsi que les plages d’adresses utilisées
- La configuration du NAT si nécessaire
Pour conclure cette partie vous aurez un récapitulatif de ce qui sera créé.
Vient ensuite la configuration de la centralisation des journaux :
La configuration de la centralisation des métriques avec un workspace par environnement.
Enfin pour terminer et si vous le souhaitez, vous pouvez alors configurer Security Command Center et le niveau d’assistance que vous souhaitez.
Security Command Center, vous permettra de centraliser la gestion de la sécurité de votre organisation avec des services tels que :
- Inventaire des ressources
- Prévention et détection des menaces
Selon le niveau d’assistance que vous choisirez, vous avez accès à des niveaux de supports dédiés avec des garanties de temps de réponse, voire un interlocuteur dédié pour le plus haut niveau.
🚀Déploiement
Une fois que tout est configuré, vous avez alors deux possibilités :
- Déploiement direct
- Téléchargement de la description de l’infrastructure sous forme de fichier Terraform
Dans ce second cas, vous téléchargerez une archive .tar.gz qui contiendra :
- Un fichier README.md avec les instructions de déploiement à l’aide de Terraform
- Un fichier .tf par type de ressource (iam, projet, network, …)
Les fichiers proposés sont corrects et complets et s’appuient sur des modules publiés sur github par Google.
Extrait du fichier network.tf :
# VPC and Subnets
module "vpc-host-dev" {
source = "terraform-google-modules/network/google"
version = "~> 5.0"
project_id = module.vpc-host-dev-eu007-by430.project_id
network_name = "vpc-host-dev"
subnets = [
{
subnet_name = "subnet-dev-1"
subnet_ip = "10.0.0.0/24"
subnet_region = "europe-west9"
subnet_private_access = true
subnet_flow_logs = true
subnet_flow_logs_sampling = "0.5"
subnet_flow_logs_metadata = "INCLUDE_ALL_METADATA"
subnet_flow_logs_interval = "INTERVAL_10_MIN"
},
{
subnet_name = "subnet-dev-2"
subnet_ip = "10.0.1.0/24"
subnet_region = "europe-west8"
subnet_private_access = true
subnet_flow_logs = true
subnet_flow_logs_sampling = "0.5"
subnet_flow_logs_metadata = "INCLUDE_ALL_METADATA"
subnet_flow_logs_interval = "INTERVAL_10_MIN"
},
]
}
# Firewall Rules
resource "google_compute_firewall" "vpc-host-dev-allow-iap-ssh" {
name = "vpc-host-dev-allow-iap-ssh"
network = module.vpc-host-dev.network_name
project = module.vpc-host-dev-eu007-by430.project_id
direction = "INGRESS"
priority = 10000
log_config {
metadata = "INCLUDE_ALL_METADATA"
}
allow {
protocol = "tcp"
ports = ["22",]
}
source_ranges = [
"35.235.240.0/20",
]
}
Avant de conclure, si vous effectuez le même test de votre côté, à la fin, pensez à :
- Supprimer le compte de facturation Google Cloud
- Annuler l’essai Cloud Identity
👍 Conclusion
Les étapes de la démarche présentée ici ne sont pas nouvelles. En revanche, ce qui est nouveau et que nous apprécions, c’est le fait de pouvoir les réaliser en suivant une feuille de route.
Cette approche a plusieurs avantages :
- Respect des bonnes pratiques
- Moins de risque de passer à côté de quelque chose
- Ensemble de la démarche centralisée sur un seul outil
Enfin, la génération du résultat sous forme de fichiers terraform qui vous permettront de l’intégrer à vos processus et repository d’Infrastructure as Code.
⚠️ Attention toutefois, certaines étapes entraînent directement la création des ressources et celles-ci ne sont donc pas incluses dans les fichiers terraform.
Cet article a été co-rédigé avec Julien Landuré.