Présentation de l'autorisation binaire

Cette page propose une présentation de l'autorisation binaire.

Qu'est-ce que l'autorisation binaire ?

L'autorisation binaire est un produit Google Cloud qui vous permet de mettre en œuvre des mesures de sécurité de la chaîne d'approvisionnement logicielle lorsque vous développez et déployez des applications basées sur des conteneurs.

À quoi sert l'autorisation binaire ?

Vous pouvez utiliser l'autorisation binaire pour effectuer les opérations suivantes :

Quelles plates-formes sont compatibles avec l'autorisation binaire ?

L'autorisation binaire est compatible avec les plates-formes suivantes :

L'autorisation binaire fait partie d'une architecture de déploiement comprenant les produits associés suivants :

  • Artifact Registry, Container Registry et d'autres registres qui stockent les images que vous souhaitez déployer.
  • Artifact Analysis fournit des informations sur les failles que vous pouvez utiliser avec l'autorisation binaire pour contrôler le déploiement. Par ailleurs, Artifact Analysis stocke les métadonnées de confiance utilisées dans le processus d'autorisation.
  • La surveillance de la sécurité, un tableau de bord qui vous permet d'évaluer la stratégie de sécurité de votre application sur les produits Google Cloud interdépendants, y compris l'autorisation binaire.
  • Cloud Build, qui génère des attestations et des informations de provenance que l'autorisation binaire peut utiliser pour l'application et la surveillance.
  • Cloud Deploy est un service de diffusion continue géré qui automatise la diffusion d'applications dans une série d'environnements cibles dans un ordre défini.

L'autorisation binaire est basée sur la solution Kritis, qui fait partie du projet Open Source Grafeas.

Expérience

La sécurité de la chaîne d'approvisionnement logicielle vise à s'assurer que les logiciels sont provisionnés, créés, testés, publiés et déployés conformément aux bonnes pratiques internes et aux standards.

Les architectures basées sur des conteneurs permettent aux équipes de développer des systèmes hautement dissociés, tels que ceux basés sur des architectures de microservices, et encourage l'utilisation de pratiques de développement tout au long du cycle de vie, y compris l'intégration continue (CI) et le déploiement continu (CD, Continuous Deployment).

Dans un environnement de développement basé sur des conteneurs, les images peuvent être déployées sur une succession de clusters, tels que les tests, la préproduction et la publication, qui font partie de la chaîne d'approvisionnement logicielle.

L'autorisation binaire vise à réduire le risque de déployer des logiciels défectueux, vulnérables ou non autorisés dans ce type d'environnement. À l'aide de ce service, vous pouvez empêcher le déploiement d'images, à moins de respecter une stratégie que vous avez définie.

Bien que l'autorisation binaire n'impose pas de processus internes ni de bonnes pratiques, elle vous aide à appliquer vos propres pratiques en empêchant le déploiement d'images qui ont échoué aux vérifications requises.

Lifecycle

Un cycle de vie de déploiement pour les images peut comporter les étapes suivantes, où la réalisation d'une étape est une condition préalable à la progression vers la suivante ; par exemple :

  1. Compilation et tests unitaires.
  2. Déploiement dans un environnement de développement où les utilisateurs ne sont pas affectés.
  3. Déploiement dans un environnement de contrôle qualité où seuls les utilisateurs internes sont affectés.
  4. Déploiement dans un environnement Canary, où seule une petite partie des utilisateurs externes est affectée.
  5. Déploiement en production.

Chaque étape peut posséder son propre environnement de déploiement, par exemple un cluster GKE ou un projet Google Cloud, et ses propres critères qui doivent être remplis pour qu'une image puisse passer à l'étape suivante. L'autorisation binaire vous permet de définir les règles par lesquelles une image passe d'une étape à l'autre et fournit les moyens de les appliquer.

Attestations

Les cas d'utilisation les plus courants de l'autorisation binaire impliquent des attestations. Une attestation certifie qu'une image spécifique a terminé une étape précédente, comme décrit précédemment. Vous configurez la stratégie d'autorisation binaire pour valider l'attestation avant d'autoriser le déploiement de l'image. Au moment du déploiement, au lieu de reprendre les activités terminées au cours des étapes précédentes, l'autorisation binaire ne doit vérifier que l'attestation.

Voici quelques cas d'utilisation impliquant des attestations :

  • La validation de compilation, dans laquelle l'autorisation binaire utilise des attestations pour vérifier qu'une image a été créée par un système de compilation ou un pipeline d'intégration continue (CI) spécifique.

    Pour apprendre à configurer un pipeline CI, basé sur Cloud Build, qui peut créer une attestation, consultez la page Intégration avec Cloud Build.

  • L'analyse des failles, dans laquelle l'image créée par la CI a également été analysée par Artifact Analysis. Dans ce cas, l'attestation n'est créée que si des failles identifiées répondent aux règles de signature des failles.

    Découvrez comment configurer un pipeline CI d'analyse des failles avec Voucher ou Kritis Signer.

  • La vérification manuelle, où une personne, par exemple un représentant de l'assurance qualité, crée manuellement l'attestation.

    Pour savoir comment créer manuellement une attestation, consultez la page Créer des attestations.

Pour découvrir un tutoriel de bout en bout sur les attestations, consultez la page Premiers pas avec Google Cloud Console.

Fonctionnalités

L'autorisation binaire fournit les fonctionnalités suivantes :

  • Un modèle de stratégie qui vous permet de décrire les contraintes sous lesquelles des images peuvent être déployées.
  • Un modèle d'attestation qui vous permet de définir des autorités de confiance pouvant attester ou valider que les processus requis dans votre environnement sont terminés avant le déploiement.
  • Un outil d'application de déploiement qui empêche le déploiement d'images qui ne respectent pas la stratégie

Modèle de stratégie

L'autorisation binaire met en œuvre un modèle de stratégie, dans lequel une stratégie est un ensemble de règles régissant le déploiement d'images de conteneurs. Les règles d'une stratégie fournissent des critères spécifiques qu'une image doit remplir pour pouvoir être déployée.

Pour en savoir plus sur le modèle de stratégie de l'autorisation binaire et d'autres concepts, consultez la page Concepts clés.

Prérequis

Pour configurer l'autorisation binaire, vous devez d'abord activer le service pour les projets Google Cloud qui composent votre pipeline de déploiement et d'autorisation.

Vous définissez ensuite la stratégie spécifiant les contraintes selon lesquelles les images de conteneurs peuvent être déployées. Si votre stratégie nécessite des attestations avant le déploiement, vous devez également configurer des certificateurs qui peuvent valider les attestations avant d'autoriser le déploiement des images associées.

Pour configurer l'autorisation binaire, consultez les guides suivants :

Autorisation

Avant de pouvoir déployer une image, tous les signataires requis doivent créer une attestation qui vérifie que l'image est prête à passer à l'étape de déploiement suivante. L'attestation est un enregistrement contenant le chemin d'accès au registre et le condensé de l'image, qui a été signée numériquement à l'aide de la clé cryptographique privée du signataire.

Pour en savoir plus sur les autorisations, consultez la page Utiliser des attestations.

Application

Lorsque vous déployez une image, l'autorisation binaire vérifie la stratégie et applique toute règle trouvée qui régit son déploiement.

Si l'image respecte les contraintes définies dans la stratégie, l'autorisation binaire autorise son déploiement. Dans le cas contraire, le service bloque le déploiement et écrit dans Cloud Audit Logs un message expliquant pourquoi l'image n'est pas conforme.

Pour afficher les événements d'application de l'autorisation binaire dans Cloud Audit Logs, consultez les guides suivants :

Pour en savoir plus sur le déploiement, consultez les guides suivants :

Validation continue

La validation continue (CV) avec des règles de plate-forme basées sur les vérifications est une fonctionnalité de l'autorisation binaire qui vérifie régulièrement les métadonnées des images de conteneurs associées aux pods en cours d'exécution pour assurer la conformité avec les règles.

En savoir plus sur la CV

Sécuriser l'autorisation binaire avec VPC Service Controls

VPC Service Controls vous aide à limiter les risques de copie ou de transfert non autorisé de données à partir de vos ressources et services gérés par Google.

Pour en savoir plus sur la sécurisation des ressources liées à l'autorisation binaire, consultez la page Sécuriser avec VPC Service Controls.

Software Delivery Shield

L'autorisation binaire fait partie de la solution Software Delivery Shield. Software Delivery Shield est une solution de sécurité de chaîne d'approvisionnement logicielle entièrement gérée de bout en bout, qui vous permet d'améliorer la stratégie de sécurité des workflows et des outils des développeurs, des dépendances logicielles et des systèmes CI/CD utilisés pour créer et déployer vos logiciels et environnements d'exécution, tels que Google Kubernetes Engine et Cloud Run. Pour savoir comment utiliser l'autorisation binaire avec d'autres composants de Software Delivery Shield pour améliorer la stratégie de sécurité de votre chaîne d'approvisionnement logicielle, consultez la page Présentation de Software Delivery Shield.

Étapes suivantes