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.
Utiliser des projets distincts
Activez Container Scanning et Artifact Registry dans le projet où vous souhaitez exécuter Artifact Registry.
activer l'API Cloud Build dans les projets dans lesquels vous exécutez Cloud Build ;
Activez l'API Container Security dans les projets où vous exécutez GKE.
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
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
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
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:
- Lecteur Cloud Build (
roles/cloudbuild.builds.viewer
): affichez les insights d'un build. - Lecteur d'occurrences d'analyse de conteneurs (
roles/containeranalysis.occurrences.viewer
): affichez les failles, la provenance des builds et d'autres informations sur les dépendances. - Lecteur Cloud Run (
roles/run.viewer
): affichez les insights d'une révision Cloud Run. - Lecteur de cluster Kubernetes Engine (
roles/container.clusterViewer
) : affichez les insights d'un cluster GKE.
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.
- Le rédacteur Artifact Registry (
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.
- Le lecteur Artifact Registry (
- 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
- Pour en savoir plus sur les services Software Shield, consultez la présentation.
- Découvrez les pratiques de sécurité de la chaîne d'approvisionnement logicielle et comment Software Delivery Shield peut vous aider à les implémenter.