Premiers pas avec Software Delivery Shield

Ce document explique comment activer les API pour Software Delivery Shield et obtenir les autorisations requises pour afficher les insights sur la sécurité. Software Delivery Shield est une solution de sécurité de la chaîne d'approvisionnement logicielle entièrement gérée sur Google Cloud.

Activer les API requises pour les insights

Pour collecter et afficher des insights sur la chaîne d'approvisionnement logicielle, les API suivantes sont requises:

  • API Container Analysis pour stocker les métadonnées générées et utilisées par d'autres services Google Cloud
  • API Container Scanning pour analyser les images de conteneurs stockées dans Artifact Registry afin d'identifier les failles et d'autres métadonnées. L'activation de cette API active automatiquement l'API Container Analysis.
  • Artifact Registry pour stocker vos artefacts de compilation 1
  • Cloud Build pour générer des métadonnées de provenance de compilation
  • (GKE uniquement) API Container Security pour analyser les charges de travail en cours d'exécution afin de détecter les failles d'OS.

Vous devez exécuter l'API Container Scanning dans le même projet Google Cloud qu'Artifact Registry. Vous pouvez exécuter d'autres services Google Cloud qui utilisent le registre dans des projets distincts.

1 Container Registry est activé automatiquement par l'API Container Scanning. Software Delivery Shield ne fournit que des données limitées pour les fonctionnalités existantes et n'est pas compatible avec certaines fonctionnalités de l'aperçu privé. Si vous utilisez actuellement Container Registry, envisagez de passer à Artifact Registry.

Pour activer les API requises pour générer et afficher des insights:

Console

Utiliser tous les services d'un même projet

Activez ensemble les API requises.

Activer les API

Utiliser des projets distincts

  1. Activez Container Scanning et Artifact Registry dans le projet où vous souhaitez exécuter Artifact Registry.

    Activer les API

  2. activer l'API Cloud Build dans les projets dans lesquels vous exécutez Cloud Build ;

    Activer Cloud Build

  3. Activez l'API Container Security dans les projets où vous exécutez GKE.

    Activer la sécurité des conteneurs

Google Cloud CLI

Utiliser tous les services d'un même projet

Activez ensemble les API requises.

gcloud services enable containerscanning.googleapis.com \
    cloudbuild.googleapis.com \
    artifactregistry.googleapis.com \
    containersecurity.googleapis.com

Utiliser des projets distincts

  1. Activez Container Scanning et Artifact Registry dans le projet où vous souhaitez exécuter Artifact Registry. Remplacez AR_PROJECT par l'ID de projet Google Cloud approprié.

    gcloud services enable containerscanning.googleapis.com \
        artifactregistry.googleapis.com \
        --project=AR_PROJECT
    
  2. activer l'API Cloud Build dans les projets dans lesquels vous exécutez Cloud Build ; Remplacez BUILD_PROJECT par l'ID de projet Google Cloud approprié.

    gcloud services enable cloudbuild.googleapis.com \
        --project=BUILD_PROJECT
    
  3. Activez l'API Container Security dans les projets où vous exécutez GKE. Remplacez GKE_PROJECT par l'ID de projet Google Cloud approprié.

    gcloud services enable containersecurity.googleapis.com \
         --project=BUILD_PROJECT
    

Vous avez activé les API minimales requises pour générer et afficher des insights dans les panneaux Software Delivery Shield et le tableau de bord de sécurité de GKE dans Google Cloud Console.

Vous pouvez activer des API pour d'autres services à partir de la bibliothèque d'API ou de la commande gcloud services Enable.

Accorder des autorisations pour afficher les insights

Pour afficher les insights du bouclier de diffusion des logiciels dans Google Cloud Console, vous devez disposer des rôles suivants ou d'un rôle doté d'autorisations équivalentes:

Ces autorisations donnent accès à des insights, mais ne permettent pas d'effectuer d'autres actions telles que l'exécution de compilations dans Cloud Build.

  • Pour en savoir plus sur les autorisations requises pour un service spécifique, consultez la documentation de ce service.
  • Pour savoir comment accorder des autorisations, consultez la documentation Identity and Access Management sur l'octroi d'autorisations à des projets.

Par défaut, de nombreux services disposent d'autorisations par défaut pour d'autres services du même projet, mais ne peuvent pas accéder aux ressources d'un autre projet. Si vous exécutez des services dans différents projets Google Cloud, ou si vous utilisez des rôles IAM ou des comptes de service personnalisés, vous devez accorder vous-même les autorisations appropriées.

Exemple 1

Cloud Build, Artifact Registry, Container Analysis et Cloud Run s'exécutent tous dans le même projet. Chaque service utilise le compte de service par défaut pour agir pour le compte du service, et les autorisations par défaut restent inchangées. Les services peuvent tous fonctionner ensemble sans modification des autorisations, mais vous devez accorder des autorisations aux utilisateurs qui ont besoin de voir les insights du projet.

Autorisations entre les services

Aucune modification n'est requise:

  • Le compte de service Cloud Build par défaut est autorisé à importer et à télécharger des données avec Artifact Registry, ainsi qu'à lire les données des insights à partir de Container Analysis. Le service peut ainsi signer des images de conteneurs avec la provenance de compilation et les transférer vers Artifact Registry.
  • Les révisions Cloud Run utilisent le compte de service Compute Engine par défaut pour les déploiements, qui est autorisé à télécharger des images à partir d'Artifact Registry et à lire les données des insights à partir de Container Analysis.
Autorisations utilisateur pour afficher les insights

Pour afficher les insights, vous devez attribuer aux utilisateurs de Cloud Build et Cloud Run les rôles requis.

Exemple 2

Lorsque Artifact Registry et Container Analysis s'exécutent dans un projet distinct de ceux d'autres services Google Cloud, vous devez explicitement accorder des autorisations pour toutes les activités multiprojets. Prenons l'exemple de configuration de projet suivant:

  • Cloud Build s'exécute dans le projet A.
  • Artifact Registry et Container Analysis sont exécutés dans le projet B
  • Cloud Run s'exécute dans le projet C
Autorisations entre les services

Cloud Build et Cloud Run ne peuvent pas accéder aux ressources d'autres projets sans accorder explicitement l'accès aux comptes de service qui agissent au nom de ces services. Vous devez accorder les autorisations Artifact Registry et Container Analysis appropriées dans le projet B, où les artefacts et les métadonnées d'artefact sont stockés.

Pour Cloud Build, vous devez attribuer les rôles suivants dans le projet B:

  • Le rédacteur Artifact Registry (roles/artifactregistry.writer) accorde les autorisations d'importation et de téléchargement.
  • Le lecteur d'occurrences d'analyse de conteneurs (roles/containeranalysis.occurrences.viewer) autorise l'affichage des insights.

Pour Cloud Run, vous devez attribuer les rôles suivants dans le projet B:

  • Le lecteur Artifact Registry (roles/artifactregistry.reader) autorise le téléchargement pour les déploiements.
  • Le lecteur d'occurrences d'analyse de conteneurs (roles/containeranalysis.occurrences.viewer) autorise l'affichage des insights.
Autorisations utilisateur pour afficher les insights

Dans le projet B, vous devez attribuer aux utilisateurs de Cloud Build et Cloud Run les rôles requis pour la vue.

Étapes suivantes