Contrôler l'accès et protéger les artefacts

Cette page décrit les services et fonctionnalités de Google Cloud qui vous aident à protéger vos artefacts.

Chiffrement au repos

Par défaut, Google Cloud chiffre automatiquement les données au repos à l'aide de clés de chiffrement gérées par Google. Si vous avez des exigences réglementaires ou de conformité spécifiques concernant les clés qui protègent vos données, vous pouvez créer des dépôts chiffrés avec des clés de chiffrement gérées par le client (CMEK).

Contrôle des accès

Par défaut, tous les dépôts sont privés. Suivez le principe de sécurité du moindre privilège et n'accordez que les autorisations minimales requises par les utilisateurs et les comptes de service.

Restreindre les téléchargements d'artefacts

Vous pouvez restreindre les téléchargements d'artefacts à l'aide de règles de téléchargement. Les règles de téléchargement vous permettent d'autoriser ou de refuser les téléchargements d'artefacts à partir de vos dépôts et packages. Vous pouvez également définir des conditions pour que la règle s'applique à des balises ou versions spécifiques.

Pour chaque dépôt de votre projet, vous pouvez définir une règle de téléchargement au niveau du dépôt et une règle de téléchargement par package. Lorsqu'un client tente de télécharger un artefact, Artifact Registry recherche d'abord une règle de téléchargement sur le package de l'artefact. Si aucune règle n'existe ou si les conditions de la règle ne s'appliquent pas à l'artefact, Artifact Registry recherche une règle dans le dépôt.

Par exemple, vous pouvez créer une règle pour votre dépôt afin d'interdire tous les téléchargements, puis créer une règle pour un package afin d'autoriser les téléchargements à partir de ce package particulier. La règle au niveau du package prévaut, et seuls les artefacts appartenant à ce package peuvent être téléchargés à partir du dépôt.

Les règles de téléchargement sont disponibles pour tous les modes de dépôt et pour les formats de dépôt suivants:

  • Docker
  • Go
  • Maven
  • npm
  • Python

Prévenez l'exfiltration de données

Pour empêcher l'exfiltration de données, vous pouvez utiliser VPC Service Controls pour placer Artifact Registry et d'autres services Google Cloud dans un périmètre de sécurité réseau.

Analyse des failles

Artifact Analysis peut rechercher les failles de sécurité dans les images de conteneurs en se basant sur des packages surveillés publiquement.

Les options suivantes sont disponibles :

Analyse automatique des failles
Lorsque cette fonctionnalité est activée, elle identifie les failles de package dans vos images de conteneurs. Les images sont analysées lors de leur importation dans Artifact Registry, et les données sont surveillées en permanence pour détecter de nouvelles failles pendant un maximum de 30 jours après le transfert de l'image.
API On-Demand Scanning
Lorsque cette option est activée, vous pouvez analyser manuellement les images locales ou les images stockées dans Artifact Registry. Cette fonctionnalité vous permet de détecter et de corriger les failles dès le début de votre pipeline de compilation. Par exemple, vous pouvez utiliser Cloud Build pour analyser une image après sa création, puis bloquer l'importation dans Artifact Registry si l'analyse détecte des failles à un niveau de gravité spécifié. Si vous avez également activé l'analyse automatique des failles, Artifact Analysis analyse aussi les images que vous importez dans le registre.

Stratégie de déploiement

Vous pouvez utiliser l'autorisation binaire pour configurer une stratégie que le service applique lorsqu'une tentative de déploiement d'une image de conteneur est effectuée dans l'un des environnements Google Cloud compatibles.

Par exemple, vous pouvez configurer l'autorisation binaire pour n'autoriser les déploiements que si une image est signée pour se conformer à une règle d'analyse des failles.

Supprimer les images inutilisées

Supprimez les images de conteneur inutilisées pour réduire les coûts de stockage et atténuer les risques liés à l'utilisation de logiciels plus anciens. Plusieurs outils sont disponibles pour vous aider à accomplir cette tâche, y compris gcr-cleaner. L'outil gcr-cleaner n'est pas un produit Google officiel.

Intégrer la sécurité dès le départ

Intégrer les objectifs de sécurité de l'information dans le travail quotidien peut contribuer à améliorer les performances de livraison des logiciels et à créer des systèmes plus sécurisés. Cette approche est également connue sous le nom de shifting left (déplacement à gauche), car les préoccupations, y compris de sécurité, sont traitées plus tôt dans le cycle de développement logiciel (c'est-à-dire situées à gauche sur un planning d'exécution de gauche à droite). Le virage à gauche pour la sécurité est l'une des capacités DevOps identifiées dans le programme de recherche sur l'état du DevOps, mené par l'équipe DevOps Research and Assessment (DORA).

Pour en savoir plus :

Éléments à prendre en compte pour les dépôts publics

Réfléchissez attentivement aux cas suivants:

  • Utilisation d'artefacts provenant de sources publiques
  • Rendre publics vos propres dépôts Artifact Registry

Utiliser des artefacts provenant de sources publiques

Les sources publiques d'artefacts suivantes fournissent des outils que vous pouvez utiliser ou des dépendances pour vos builds et déploiements:

Toutefois, votre organisation peut avoir des contraintes qui affectent votre utilisation des artefacts publics. Exemple :

  • Vous souhaitez contrôler le contenu de votre chaîne d'approvisionnement logicielle.
  • Vous ne voulez pas dépendre d'un dépôt externe.
  • Vous souhaitez maîtriser strictement les failles de votre environnement de production.
  • Vous voulez le même système d'exploitation de base dans chaque image.

Voici quelques approches à envisager pour sécuriser votre chaîne d'approvisionnement logicielle:

  • Configurez des compilations automatiques afin que vos artefacts aient un contenu cohérent et connu. Vous pouvez utiliser des déclencheurs de compilation Cloud Build ou d'autres outils d'intégration continue.
  • Utilisez des images de base standardisées. Google fournit des images de base que vous pouvez utiliser.
  • Résolvez les failles de vos artefacts. Vous pouvez utiliser l'API On-Demand Scanning pour rechercher les failles des images de conteneurs avant de les stocker dans Artifact Registry. Artifact Analysis peut également analyser les conteneurs que vous transférez vers Artifact Registry.

Dépôts publics Artifact Registry

Pour rendre public un dépôt Artifact Registry, attribuez le rôle de lecteur Artifact Registry à l'identité allUsers.

Si tous vos utilisateurs disposent de comptes Google Cloud , vous pouvez limiter l'accès aux utilisateurs authentifiés avec l'identité allAuthenticatedUsers.

Tenez compte des consignes suivantes avant de rendre public un dépôt Artifact Registry:

  • Vérifiez que tous les artefacts que vous stockez dans le dépôt peuvent être partagés publiquement et qu'ils n'exposent pas d'identifiants, de données personnelles ni de données confidentielles.
  • Par défaut, les projets ont un quota par utilisateur illimité. Pour éviter tout abus, limitez le quota par utilisateur dans votre projet.
  • Le transfert de données réseau vous est facturé lorsque les utilisateurs téléchargent des artefacts. Si vous prévoyez un trafic de téléchargement Internet important, tenez compte des coûts associés.

Conseils pour les applications Web

  • Le Top 10 de l'OWASP liste les principaux risques de sécurité pour les applications Web, selon le projet OWASP (Open Web Application Security Project).

Conseils pour les conteneurs

  • Le CIS (Center for Internet Security) dispose d'un benchmark Docker permettant d'évaluer la sécurité d'un conteneur Docker.

    Docker fournit un script Open Source appelé Docker Bench for Security. Vous pouvez exécuter ce script pour vérifier qu'un conteneur Docker en cours d'exécution respecte certains critères du benchmark Docker du CIS.

    Le script Docker Bench for Security vous permet de vérifier de nombreux éléments dans le benchmark Docker du CIS. Cependant, tous les éléments ne sont pas vérifiables avec le script. Par exemple, le script ne peut pas vérifier si l'hôte du conteneur est renforcé ou si l'image du conteneur inclut des données à caractère personnel. Examinez tous les éléments du benchmark et identifiez ceux qui peuvent nécessiter une validation supplémentaire.

Étape suivante

En savoir plus sur la gestion des dépendances