GSP698

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

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 les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de 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 (recommandé) ou de navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
- Vous disposez d'un temps limité. N'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Utilisez uniquement le compte de participant pour cet atelier. Si vous utilisez un autre compte Google Cloud, des frais peuvent être facturés à ce compte.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, une boîte de dialogue 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 Cloud"
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
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.
-
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}}
Vous trouverez également le nom d'utilisateur dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}}
Vous trouverez également le mot de passe dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud.
Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
-
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 à des essais sans frais.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour accéder aux produits et services Google Cloud, cliquez sur le menu de navigation ou saisissez le nom du service ou du produit dans le champ Recherche.
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.
-
Cliquez sur Activer Cloud Shell
en haut de la console Google Cloud.
-
Passez les fenêtres suivantes :
- Accédez à la fenêtre d'informations de Cloud Shell.
- Autorisez Cloud Shell à utiliser vos identifiants pour effectuer des appels d'API 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 l'ID_PROJET pour cette session :
Your Cloud Platform project in this session is set to {{{project_0.project_id | "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.
- (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
- Cliquez sur Autoriser.
Résultat :
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project
Résultat :
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
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
- 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
- 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
- Activez l'API Cloud Asset dans votre projet :
gcloud services enable cloudasset.googleapis.com \
--project $GOOGLE_PROJECT
- 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
- 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
- Clonez la bibliothèque de stratégies :
git clone https://github.com/forseti-security/policy-library.git
- 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/
- 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.
- 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.
- 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
- 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
- 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
- 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
- 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
.
- 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)")
- 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
- 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.
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 : 12 avril 2024
Dernier test de l'atelier : 12 avril 2024
Copyright 2025 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.