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 que vous pouvez utiliser pour implémenter 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:
Surveiller: vous pouvez configurer la validation continue (CV) avec des règles de plate-forme basées sur les vérifications (preview) pour surveiller régulièrement la conformité des images de conteneurs associées aux pods en cours d'exécution à une règle que vous définissez. Si les images ne respectent pas la règle, la validation continue génère des entrées de journal dans Cloud Logging.
Application : vous pouvez configurer l'application de l'autorisation binaire pour exiger que les images déployées sur l'une des plates-formes compatibles avec les conteneurs soient conformes à une stratégie que vous définissez. Les images conformes à la stratégie peuvent être déployées. Sinon, elles demeurent dans l'interdiction être déployées.
Quelles plates-formes sont compatibles avec l'autorisation binaire ?
L'autorisation binaire est compatible avec les plates-formes suivantes :
- Google Kubernetes Engine (GKE) : exécute les images dans les clusters hébergés sur Google Cloud.
- Cloud Run : exécute des applications en conteneur sur une plate-forme sans serveur entièrement gérée.
- Cloud Service Mesh : gère un maillage de services fiable sur site ou sur Google Cloud.
- Logiciel Google Distributed Cloud : exécute les images dans les clusters GKE que vous hébergez sur votre propre matériel.
Produits liés à l'autorisation binaire
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 produit des attestations et une 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.
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 :
- Compilation et tests unitaires.
- Déploiement dans un environnement de développement où les utilisateurs ne sont pas affectés.
- Déploiement dans un environnement de contrôle qualité où seuls les utilisateurs internes sont affectés.
- Déploiement dans un environnement Canary, où seule une petite partie des utilisateurs externes est affectée.
- 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 :
- Configurer l'autorisation binaire sur GKE.
- Configurer l'autorisation binaire sur Distributed Cloud
- Configurer l'autorisation binaire sur Cloud Run (bêta)
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 :
- Afficher les journaux d'audit (GKE)
- Afficher les journaux d'audit (Cloud Run)
- Afficher les journaux d'audit (Distributed Cloud)
Pour en savoir plus sur le déploiement, consultez les guides suivants :
- Déployer des conteneurs (GKE)
- Déployer des conteneurs (exemple de Distributed Cloud)
- Utiliser l'autorisation binaire avec Cloud Run
Validation continue
La validation continue (CV, Continuous Validation) 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 conteneur associées aux pods en cours d'exécution pour assurer la conformité avec les règles.
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.
Sécurité sur la chaîne d'approvisionnement logicielle
L'autorisation binaire est l'un des composants Google Cloud que vous pouvez utiliser pour protéger votre chaîne d'approvisionnement logicielle. Vous pouvez utiliser l'autorisation binaire avec d'autres produits et fonctionnalités Google Cloud pour améliorer la posture de sécurité des outils et des workflows de développement, des dépendances logicielles, des systèmes CI/CD utilisés pour créer et déployer votre logiciel, ainsi que des environnements d'exécution tels que Google Kubernetes Engine et Cloud Run. Pour en savoir plus, consultez la page Sécurité de la chaîne d'approvisionnement logicielle.
Étape suivante
- Pour accéder à des tutoriels complets de bout en bout, consultez les pages suivantes :
- Configurez une stratégie d'autorisation binaire pour Cloud Service Mesh à l'aide de la console Google Cloud ou de l'outil de ligne de commande.