Ce principe du pilier de sécurité du framework d'architectureGoogle Cloud fournit des recommandations pour intégrer des fonctionnalités, des contrôles et des pratiques de sécurité robustes dans la conception de vos applications, services et plates-formes cloud. De l'idéation aux opérations, la sécurité est plus efficace lorsqu'elle est intégrée à chaque étape de votre processus de conception.
Présentation des principes
Comme expliqué dans la section Présentation de l'engagement de Google en faveur de la sécurité par conception, les termes sécurisé par défaut et sécurisé par conception sont souvent utilisés de manière interchangeable, mais ils représentent des approches distinctes pour créer des systèmes sécurisés. Les deux approches visent à minimiser les failles et à renforcer la sécurité, mais elles diffèrent en termes de champ d'application et d'implémentation:
- Sécurité par défaut: vise à s'assurer que les paramètres par défaut d'un système sont définis sur un mode sécurisé, ce qui réduit au minimum la nécessité pour les utilisateurs ou les administrateurs de prendre des mesures pour sécuriser le système. Cette approche vise à fournir un niveau de sécurité de référence pour tous les utilisateurs.
- Conception sécurisée: met l'accent sur l'intégration proactive de considérations de sécurité tout au long du cycle de développement d'un système. Cette approche consiste à anticiper les menaces et les failles potentielles à un stade précoce et à faire des choix de conception qui atténuent les risques. Cette approche implique d'utiliser des pratiques de codage sécurisé, de procéder à des examens de sécurité et d'intégrer la sécurité tout au long du processus de conception. L'approche de sécurité par conception est une philosophie globale qui guide le processus de développement et permet de s'assurer que la sécurité n'est pas une réflexion après coup, mais qu'elle fait partie intégrante de la conception d'un système.
Recommandations
Pour implémenter le principe de sécurité par conception pour vos charges de travail cloud, tenez compte des recommandations des sections suivantes:
- Choisir des composants système qui contribuent à sécuriser vos charges de travail
- Créer une approche multicouche de la sécurité
- Utiliser une infrastructure et des services renforcés et certifiés
- Chiffrer les données au repos et en transit
Choisir des composants système qui contribuent à sécuriser vos charges de travail
Cette recommandation s'applique à tous les domaines d'action.
La sélection de composants système robustes (matériels et logiciels) qui constituent votre plate-forme, votre solution ou votre service est une décision fondamentale pour une sécurité efficace. Pour réduire la surface d'attaque de la sécurité et limiter les dommages potentiels, vous devez également examiner attentivement les modèles de déploiement de ces composants et leurs configurations.
Dans le code de votre application, nous vous recommandons d'utiliser des bibliothèques, des abstractions et des frameworks d'application simples, sûrs et fiables afin d'éliminer des classes de failles. Pour rechercher des failles dans les bibliothèques logicielles, vous pouvez utiliser des outils tiers. Vous pouvez également utiliser le logiciel Open Source Assured, qui permet de réduire les risques liés à votre chaîne d'approvisionnement logicielle en utilisant des packages logiciels Open Source (OSS) que Google utilise et sécurise.
Votre infrastructure doit utiliser des options de mise en réseau, de stockage et de calcul qui permettent un fonctionnement sécurisé et qui correspondent à vos exigences de sécurité et à vos niveaux d'acceptation des risques. La sécurité de l'infrastructure est importante à la fois pour les charges de travail internes et celles exposées à Internet.
Pour en savoir plus sur les autres solutions Google compatibles avec cette recommandation, consultez la section Implémenter la sécurité à gauche.
Créer une approche multicouche de la sécurité
Cette recommandation s'applique aux axes d'action suivants:
- Sécurité de l'IA et du ML
- Sécurité de l'infrastructure
- Gestion de l'authentification et des accès
- Sécurité des données
Nous vous recommandons d'implémenter la sécurité à chaque couche de votre application et de votre pile d'infrastructure en appliquant une approche de défense en profondeur.
Utilisez les fonctionnalités de sécurité de chaque composant de votre plate-forme. Pour limiter l'accès et identifier les limites de l'impact potentiel (c'est-à-dire le rayon d'impact) en cas d'incident de sécurité, procédez comme suit:
- Simplifiez la conception de votre système pour plus de flexibilité.
- Documentez les exigences de sécurité de chaque composant.
- Intégrez un mécanisme sécurisé et robuste pour répondre aux exigences de résilience et de reprise après sinistre.
Lorsque vous concevez les couches de sécurité, effectuez une évaluation des risques pour déterminer les fonctionnalités de sécurité dont vous avez besoin pour répondre aux exigences de sécurité internes et aux exigences réglementaires externes. Nous vous recommandons d'utiliser un framework d'évaluation des risques standard dans l'industrie, qui s'applique aux environnements cloud et qui est pertinent pour vos exigences réglementaires. Par exemple, la Cloud Security Alliance (CSA) fournit la matrice des contrôles cloud (CCM). L'évaluation des risques vous fournit un catalogue des risques et des contrôles de sécurité correspondants pour les atténuer.
Lorsque vous effectuez l'évaluation des risques, n'oubliez pas que vous avez un accord de responsabilité partagée avec votre fournisseur cloud. Par conséquent, les risques dans un environnement cloud diffèrent de ceux dans un environnement sur site. Par exemple, dans un environnement sur site, vous devez limiter les failles de votre pile matérielle. En revanche, dans un environnement cloud, le fournisseur cloud supporte ces risques. N'oubliez pas non plus que les limites des responsabilités partagées diffèrent entre les services IaaS, PaaS et SaaS pour chaque fournisseur de services cloud.
Après avoir identifié les risques potentiels, vous devez concevoir et créer un plan d'atténuation qui utilise des contrôles techniques, administratifs et opérationnels, ainsi que des protections contractuelles et des attestations tierces. En outre, une méthode de modélisation des menaces, telle que la méthode de modélisation des menaces d'application OWASP, vous aide à identifier les lacunes potentielles et à suggérer des actions pour les combler.
Utiliser une infrastructure et des services renforcés et certifiés
Cette recommandation s'applique à tous les domaines d'action.
Un programme de sécurité mature corrige les nouvelles failles, comme décrit dans les bulletins de sécurité. Le programme de sécurité doit également fournir des mesures correctives pour corriger les failles des déploiements existants et sécuriser vos images de VM et de conteneur. Vous pouvez utiliser des guides de renforcement spécifiques à l'OS et à l'application de vos images, ainsi que des benchmarks comme celui fourni par le Center of Internet Security (CIS).
Si vous utilisez des images personnalisées pour vos VM Compute Engine, vous devez appliquer vous-même les correctifs. Vous pouvez également utiliser les images d'OS sélectionnées fournies par Google, qui sont corrigées régulièrement. Pour exécuter des conteneurs sur des VM Compute Engine, utilisez des images de système d'exploitation optimisées pour les conteneurs sélectionnées par Google. Google corrige et met régulièrement à jour ces images.
Si vous utilisez GKE, nous vous recommandons d'activer la mise à niveau automatique des nœuds pour que Google mette à jour vos nœuds de cluster en appliquant les derniers correctifs. Google gère les plans de contrôle GKE, qui sont automatiquement mis à jour et corrigés. Pour réduire davantage la surface d'attaque de vos conteneurs, vous pouvez utiliser des images distroless. Les images distroless sont idéales pour les applications sensibles à la sécurité, les microservices et les situations où il est essentiel de réduire la taille de l'image et la surface d'attaque.
Pour les charges de travail sensibles, utilisez une VM protégée, qui empêche le chargement de code malveillant pendant le cycle de démarrage de la VM. Les instances de VM protégées offrent une sécurité au démarrage, surveillent l'intégrité et utilisent le module vTPM (Virtual Trusted Platform Module).
Pour sécuriser l'accès SSH, OS Login permet à vos employés de se connecter à vos VM en utilisant des autorisations IAM en tant que source de vérité plutôt que des clés SSH. Vous n'avez donc pas besoin de gérer les clés SSH dans votre organisation. OS Login permet de lier l'accès administrateur au cycle de vie de l'employé. Ainsi, lorsque les employés changent de rôle ou quittent votre organisation, leur accès est révoqué avec leur compte. OS Login est également compatible avec l'authentification à deux facteurs Google, qui ajoute une couche de sécurité supplémentaire contre les attaques par piratage de compte.
Dans GKE, les instances d'application s'exécutent dans des conteneurs Docker. Pour activer un profil de risque défini et empêcher les employés de modifier les conteneurs, assurez-vous que vos conteneurs sont sans état et immuables. Le principe d'immuabilité signifie que vos employés ne peuvent pas modifier le conteneur ni y accéder de manière interactive. Si le conteneur doit être modifié, vous devez créer une nouvelle image et la redéployer. N'activez l'accès SSH aux conteneurs sous-jacents que dans des scénarios de débogage spécifiques.
Pour sécuriser globalement les configurations de votre environnement, vous pouvez utiliser des règles d'administration afin de définir des contraintes ou des garde-fous sur les ressources qui affectent le comportement de vos composants cloud. Par exemple, vous pouvez définir les règles d'administration suivantes et les appliquer de manière globale à l'ensemble d'une Google Cloud organisation ou de manière sélective au niveau d'un dossier ou d'un projet:
- Désactivez l'allocation d'adresses IP externes aux VM.
- Limitez la création de ressources à des emplacements géographiques spécifiques.
- Désactivez la création de comptes de service ou de leurs clés.
Chiffrer les données au repos et en transit
Cette recommandation s'applique aux axes d'action suivants:
- Sécurité de l'infrastructure
- Sécurité des données
Le chiffrement des données est un contrôle de base pour protéger les informations sensibles. Il constitue un élément clé de la gouvernance des données. Une stratégie de protection des données efficace comprend le contrôle des accès, la segmentation des données et la résidence géographique, l'audit, et l'implémentation du chiffrement basée sur une évaluation minutieuse des exigences.
Par défaut, Google Cloud chiffre les données client stockées au repos, sans aucune action requise de votre part. En plus du chiffrement par défaut,Google Cloud propose des options de chiffrement encapsulé et de gestion des clés de chiffrement. Vous devez identifier les solutions les plus adaptées à vos exigences en termes de génération, de stockage et de rotation des clés, que ce soit pour des charges de travail de stockage, de calcul ou de big data. Par exemple, vous pouvez créer des clés de chiffrement gérées par le client (CMEK) dans Cloud Key Management Service (Cloud KMS). Les CMEK peuvent être basées sur des logiciels ou protégées par un HSM pour répondre à vos exigences réglementaires ou de conformité, comme la nécessité de faire tourner régulièrement les clés de chiffrement. Cloud KMS Autokey vous permet d'automatiser le provisionnement et l'attribution des CMEK. De plus, vous pouvez apporter vos propres clés provenant d'un système de gestion de clés tiers à l'aide de Cloud External Key Manager (Cloud EKM).
Nous vous recommandons vivement de chiffrer les données en transit. Google chiffre et authentifie les données en transit sur une ou plusieurs couches réseau lorsque des données sont transférées en dehors des limites physiques qui ne sont pas contrôlées par ou pour le compte de Google. Tout le trafic de VM à VM au sein d'un réseau VPC et entre des réseaux VPC appairés est chiffré. Vous pouvez utiliser MACsec pour chiffrer le trafic via les connexions Cloud Interconnect. IPsec fournit le chiffrement du trafic via les connexions Cloud VPN. Vous pouvez protéger le trafic d'application à application dans le cloud à l'aide de fonctionnalités de sécurité telles que les configurations TLS et mTLS dans Apigee et Cloud Service Mesh pour les applications conteneurisées.
Par défaut, Google Cloud chiffre les données au repos et en transit sur le réseau. Toutefois, les données ne sont pas chiffrées par défaut lorsqu'elles sont utilisées en mémoire. Si votre organisation gère des données confidentielles, vous devez limiter les menaces qui compromettent la confidentialité et l'intégrité de l'application ou des données stockées dans la mémoire système. Pour atténuer ces menaces, vous pouvez utiliser le calcul confidentiel, qui fournit un environnement d'exécution sécurisé pour vos charges de travail de calcul. Pour en savoir plus, consultez la page Présentation de Confidential VM.