arrow_back

Sécuriser Google Cloud avec CFT Scorecard

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Sécuriser Google Cloud avec CFT Scorecard

Lab 40 minutes universal_currency_alt 1 crédit show_chart Débutant
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP698

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

CFT Scorecard est un client de ligne de commande Open Source de Forseti Config Validator, qui fait partie du kit Cloud Foundation. Il offre une visibilité sur les erreurs de configuration et les problèmes de conformité avec un ensemble de normes établies pour des ressources, des projets, des dossiers ou même des organisations Google Cloud.

Il existe plus de 86 types de ressources Google Cloud, et ce chiffre ne fait qu'augmenter. Grâce à la transition vers le cloud public, fédérer les opérations cloud et le déploiement de ressources pour de nombreux utilisateurs n'a jamais été aussi simple. Cependant, en raison de la fédération et de la flexibilité des déploiements d'infrastructures, de ressources et de stratégies, les stratégies et les normes sont de plus en plus difficiles à gérer.

Dans cet atelier, vous allez configurer CFT Scorecard pour bénéficier d'une meilleure visibilité sur un projet Google Cloud et détecter les erreurs de configuration.

En quoi cet atelier consiste-t-il ?

Cet atelier met en avant les défis liés à l'utilisation du cloud par plusieurs utilisateurs simultanés. Vous allez activer CFT Scorecard avant d'étendre ses capacités de surveillance de la configuration des ressources et de détection des cas de non-conformité en y intégrant l'inventaire des éléments cloud et la bibliothèque de stratégies Open Source. Vous allez également configurer les outils conçus pour repérer les erreurs de configuration et les ressources surexposées tout en permettant à d'autres membres de votre équipe dans un premier temps, puis aux utilisateurs ayant accès au projet Google Cloud dans un second temps, de bénéficier de flexibilité par rapport aux stratégies établies.

Thèmes abordés

  • Configurer CFT Scorecard
  • Exécuter une évaluation CFT Scorecard
  • Ajouter une stratégie CFT Scorecard

Infographie des thèmes

Scénario

Supposons que vous dirigez une équipe technique composée de trois personnes. Alice et Emmanuel, vos collègues, collaborent étroitement avec vous à distance pour déployer de nombreuses ressources dans un même projet Google Cloud partagé. Après quelques semaines de collaboration, plusieurs signes vous alertent. Vous découvrez alors qu'Alice et Emmanuel ont tous les deux bâclé la configuration du projet. D'après vous, ils ont introduit des erreurs. L'une d'elles a entraîné l'exposition publique d'un bucket Cloud Storage. Vous n'avez détecté qu'une seule erreur de configuration, mais vous craignez qu'il y en ait bien plus.

Après avoir effectué une recherche Google rapide, vous découvrez l'utilitaire CLI Cloud Foundation Toolkit (CFT) Scorecard. Ce que vous lisez vous laisse penser que cette solution peut vous aider à administrer les stratégies au sein de votre environnement Google Cloud ainsi qu'à détecter les erreurs de configuration. Vous décidez donc de l'essayer.

Préparation

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :

    • Le bouton Ouvrir la console Google
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google. L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.

    Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.

    Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
  3. Si nécessaire, copiez le nom d'utilisateur inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue Se connecter. Cliquez sur Suivant.

  4. Copiez le mot de passe inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue de bienvenue. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis dans le panneau de gauche. Ne saisissez pas vos identifiants Google Cloud Skills Boost. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  5. Accédez aux pages suivantes :

    • Acceptez les conditions d'utilisation.
    • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
    • Ne vous inscrivez pas aux essais offerts.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Vous pouvez afficher le menu qui contient la liste des produits et services Google Cloud en cliquant sur le menu de navigation en haut à gauche. Icône du menu de navigation

Activer Cloud Shell

Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.

  1. Cliquez sur Activer Cloud Shell Icône Activer Cloud Shell en haut de la console Google Cloud.

Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Le résultat contient une ligne qui déclare YOUR_PROJECT_ID (VOTRE_ID_PROJET) pour cette session :

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  1. (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
  1. Cliquez sur Autoriser.

  2. Vous devez à présent obtenir le résultat suivant :

Résultat :

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project = <ID_Projet>

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.

Tâche 1 : Configurer l'environnement

  1. Pour commencer, ouvrez Cloud Shell et définissez deux variables d'environnement :
export GOOGLE_PROJECT=$DEVSHELL_PROJECT_ID export CAI_BUCKET_NAME=cai-$GOOGLE_PROJECT
  1. Après avoir lu la documentation, vous comprenez que CFT Scorecard possède deux dépendances :
  • Inventaire des éléments cloud
  • La bibliothèque de stratégies
  1. Activez l'API Cloud Asset dans votre projet :
gcloud services enable cloudasset.googleapis.com \ --project $GOOGLE_PROJECT
  1. Exécutez la commande ci-dessous afin de créer le compte de service Cloud Asset par défaut :
gcloud beta services identity create --service=cloudasset.googleapis.com --project=$GOOGLE_PROJECT
  1. Accordez le rôle storage admin au compte de service Cloud Asset :
gcloud projects add-iam-policy-binding ${GOOGLE_PROJECT} \ --member=serviceAccount:service-$(gcloud projects list --filter="$GOOGLE_PROJECT" --format="value(PROJECT_NUMBER)")@gcp-sa-cloudasset.iam.gserviceaccount.com \ --role=roles/storage.admin
  1. Clonez la bibliothèque de stratégies :
git clone https://github.com/forseti-security/policy-library.git
  1. Vous vous rendez compte que la bibliothèque de stratégies applique les stratégies situées dans le dossier dont le chemin d'accès est "policy-library/policies/constraints". Vous pouvez donc copier un exemple de stratégie du répertoire "samples" dans le répertoire "constraints".
cp policy-library/samples/storage_denylist_public.yaml policy-library/policies/constraints/
  1. Créez le bucket qui contiendra les données que l'inventaire des éléments cloud (CAI) exportera :
gsutil mb -l {{{project_0.default_region | REGION}}} -p $GOOGLE_PROJECT gs://$CAI_BUCKET_NAME

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer le bucket CAI

Tâche 2 : Collecter les données à l'aide de l'inventaire des éléments cloud (CAI)

Maintenant que vous avez configuré votre environnement, commencez à collecter des données pour CFT Scorecard.

Comme indiqué précédemment, vous devez transmettre à CFT Scorecard les données concernant les ressources, les données IAM ainsi que le dossier "policy-library".

Vous devrez utiliser CAI pour générer les informations sur les ressources et les stratégies IAM du projet.

  1. Exécutez la commande suivante pour créer ces données :
# Export resource data gcloud asset export \ --output-path=gs://$CAI_BUCKET_NAME/resource_inventory.json \ --content-type=resource \ --project=$GOOGLE_PROJECT # Export IAM data gcloud asset export \ --output-path=gs://$CAI_BUCKET_NAME/iam_inventory.json \ --content-type=iam-policy \ --project=$GOOGLE_PROJECT # Export org policy data gcloud asset export \ --output-path=gs://$CAI_BUCKET_NAME/org_policy_inventory.json \ --content-type=org-policy \ --project=$GOOGLE_PROJECT # Export access policy data gcloud asset export \ --output-path=gs://$CAI_BUCKET_NAME/access_policy_inventory.json \ --content-type=access-policy \ --project=$GOOGLE_PROJECT

Exemple de résultat :

Export in progress for root asset [projects/qwiklabs-gcp-01-68169ed6dd00]. Use [gcloud asset operations describe projects/97186664469/operations/ExportAssets/RESOURCE/2295255602305764396] to check the status of the operation. Export in progress for root asset [projects/qwiklabs-gcp-01-68169ed6dd00]. Use [gcloud asset operations describe projects/97186664469/operations/ExportAssets/IAM_POLICY/11771734913762837428] to check the status of the operation.
  1. Assurez-vous que CAI a terminé de collecter les données. Examinez le résultat de la commande précédente et utilisez la commande gcloud asset operations describe fournie dans le résultat des commandes ci-dessus pour vérifier que les opérations sont terminées. Cette vérification peut prendre un certain temps.

Cliquez sur Vérifier ma progression pour valider l'objectif. Vérifier que les fichiers CAI ont été créés

Tâche 3 : Analyser les données CAI avec CFT Scorecard

  1. Vous devez télécharger l'application CFT Scorecard et la rendre exécutable :
curl -o cft https://storage.googleapis.com/cft-cli/latest/cft-linux-amd64 # make executable chmod +x cft
  1. Maintenant que la configuration est terminée, vous pouvez exécuter l'application CFT Scorecard :
./cft scorecard --policy-path=policy-library/ --bucket=$CAI_BUCKET_NAME

Exemple de résultat :

Generating CFT scorecard 1 total issues found Operational Efficiency: 0 issues found ---------- Security: 1 issues found ---------- denylist_public_users: 1 issues - //storage.googleapis.com/fun-bucket-qwiklabs-gcp-00-2d8ed2a5cc0e is publicly accessable Reliability: 0 issues found ---------- Other: 0 issues found ----------

Il s'agit du bucket public que vous avez identifié plus tôt.

Tâche 4 : Ajouter davantage de contraintes à CFT Scorecard

  1. Vous avez oublié les autorisations IAM ! Ajoutez la contrainte suivante pour vous assurer de savoir qui, hormis l'utilisateur que vous avez inclus dans la liste d'autorisation, dispose du rôle roles/owner :
# Add a new policy to blacklist the IAM Owner Role cat > policy-library/policies/constraints/iam_allowlist_owner.yaml << EOF apiVersion: constraints.gatekeeper.sh/v1alpha1 kind: GCPIAMAllowedBindingsConstraintV3 metadata: name: allowlist_owner annotations: description: List any users granted Owner spec: severity: high match: target: ["organizations/**"] exclude: [] parameters: mode: allowlist assetType: cloudresourcemanager.googleapis.com/Project role: roles/owner members: - "serviceAccount:admiral@qwiklabs-services-prod.iam.gserviceaccount.com" EOF
  1. Réexécutez CFT Scorecard :
./cft scorecard --policy-path=policy-library/ --bucket=$CAI_BUCKET_NAME

Tout paraît en ordre, mais examinons également le rôle roles/editor.

  1. Définissez deux variables supplémentaires qui vous permettront de créer une autre contrainte :
export USER_ACCOUNT="$(gcloud config get-value core/account)" export PROJECT_NUMBER=$(gcloud projects describe $GOOGLE_PROJECT --format="get(projectNumber)")
  1. Créez la contrainte suivante pour ajouter tous les comptes valides à la liste d'autorisation :
# Add a new policy to allowlist the IAM Editor Role cat > policy-library/policies/constraints/iam_identify_outside_editors.yaml << EOF apiVersion: constraints.gatekeeper.sh/v1alpha1 kind: GCPIAMAllowedBindingsConstraintV3 metadata: name: identify_outside_editors annotations: description: list any users outside the organization granted Editor spec: severity: high match: target: ["organizations/**"] exclude: [] parameters: mode: allowlist assetType: cloudresourcemanager.googleapis.com/Project role: roles/editor members: - "user:$USER_ACCOUNT" - "serviceAccount:**$PROJECT_NUMBER**gserviceaccount.com" - "serviceAccount:$GOOGLE_PROJECT**gserviceaccount.com" EOF
  1. Réexécutez CFT Scorecard :
./cft scorecard --policy-path=policy-library/ --bucket=$CAI_BUCKET_NAME

Exemple de résultat :

Generating CFT scorecard 3 total issues found Reliability: 0 issues found ---------- Other: 2 issues found ---------- identify_outside_editors: 1 issues - IAM policy for //cloudresourcemanager.googleapis.com/projects/1044418630080 grants roles/editor to user:qwiklabs.lab.user@gmail.com Operational Efficiency: 0 issues found ---------- Security: 1 issues found ---------- denylist_public_users: 1 issues - //storage.googleapis.com/fun-bucket-qwiklabs-gcp-00-2d8ed2a5cc0e is publicly accessable

Vous devriez voir un éditeur qui ne fait pas partie de votre organisation. Il est temps de discuter avec Alice et Emmanuel.

Félicitations !

Vous avez appris à télécharger, à configurer et à utiliser CFT Scorecard pour analyser un projet Google Cloud.

Terminer votre quête

Cet atelier d'auto-formation fait partie de la quête Security & Identity Fundamentals. Une quête est une série d'ateliers associés qui constituent un parcours de formation. Si vous terminez cette quête, vous obtenez un badge attestant de votre réussite. Vous pouvez rendre publics les badges que vous recevez et ajouter leur lien dans votre CV en ligne ou sur vos comptes de réseaux sociaux. Inscrivez-vous à cette quête ou à une autre quête contenant cet atelier pour obtenir immédiatement les crédits associés. Découvrez toutes les quêtes disponibles dans le catalogue Google Cloud Skills Boost.

Atelier suivant

Continuez sur votre lancée en suivant l'atelier Appairage de réseaux VPC ou essayez les ateliers Google Cloud Skills Boost suivants :

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière mise à jour du manuel : 29 novembre 2023

Dernier test de l'atelier : 29 novembre 2023

Copyright 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.