Présentation de l'autorisation binaire

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

L'autorisation binaire est un service Google Cloud qui fournit une sécurité sur la chaîne d'approvisionnement logicielle pour les applications basées sur des conteneurs. Elle vous permet de configurer une stratégie que le service applique en cas de tentative de déploiement d'une image de conteneur sur l'une des plates-formes compatibles avec les conteneurs.

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.
  • Container Analysis fournit des informations sur les failles que vous pouvez utiliser avec l'autorisation binaire pour contrôler le déploiement. Par ailleurs, Container 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.
  • Google 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 elle-même, qui autorise ou bloque le déploiement d'images en fonction de la stratégie que vous configurez.

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

Contexte

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.

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.

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, sauf si cela satisfait 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.

Cycle de vie

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 Container 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.
  • Une 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, Continuous Validation) est une fonctionnalité de l'autorisation binaire qui vérifie régulièrement les images de conteneur 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.

Étape suivante