Ce principe du pilier "Sécurité" du Google Cloud framework d'architecture 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 du principe
Comme expliqué dans Présentation de l'engagement de Google en faveur de la sécurité dès la conception, sécurité par défaut et sécurité dès la conception sont souvent utilisés de manière interchangeable, mais ils représentent des approches distinctes de la création de systèmes sécurisés. Les deux approches visent à minimiser les failles et à renforcer la sécurité, mais elles diffèrent en termes de portée et de mise en œuvre :
- Sécurité par défaut : consiste à s'assurer que les paramètres par défaut d'un système sont définis sur un mode sécurisé, ce qui minimise 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 base à tous les utilisateurs.
- Sécurité dès la conception : consiste à intégrer de manière proactive des 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 en amont et à faire des choix de conception qui atténuent les risques. Cette approche implique l'utilisation de pratiques de codage sécurisé, la réalisation d'examens de sécurité et l'intégration de la sécurité tout au long du processus de conception. L'approche de sécurité dès la 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 mettre en œuvre le principe de sécurité dès la 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 attesté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'intérêt.
Pour une sécurité efficace, il est essentiel de choisir des composants système robustes, y compris des composants matériels et logiciels, qui constituent votre plate-forme, votre solution ou votre service. Pour réduire la surface d'attaque de 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 les classes de failles. Pour rechercher les failles dans les bibliothèques logicielles, vous pouvez utiliser des outils tiers. Vous pouvez également utiliser Assured Open Source Software, qui permet de réduire les risques liés à votre chaîne d'approvisionnement logicielle en utilisant des packages de logiciels Open Source (OSS) que Google utilise et sécurise.
Votre infrastructure doit utiliser des options de réseau, de stockage et de calcul qui prennent en charge un fonctionnement sûr et qui correspondent à vos exigences de sécurité et à vos niveaux d'acceptation des risques. La sécurité de l'infrastructure est importante pour les charges de travail exposées à Internet et internes.
Pour en savoir plus sur les autres solutions Google qui prennent en charge cette recommandation, consultez Mettre en œuvre la sécurité "shift-left".
Créer une approche multicouche de la sécurité
Cette recommandation s'applique aux domaines d'intérêt 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 de mettre en œuvre la sécurité à chaque couche de votre pile d'applications et 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'explosion) 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). Votre é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, ces risques sont à la charge du fournisseur cloud. 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 cloud.
Une fois que vous avez 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 de tiers. 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 y remédier.
Utiliser une infrastructure et des services renforcés et attestés
Cette recommandation s'applique à tous les domaines d'intérêt.
Un programme de sécurité mature atténue les nouvelles failles, comme décrit dans les bulletins de sécurité. Le programme de sécurité doit également fournir des solutions pour corriger les failles dans les 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 tels que celui fourni par le Center of Internet Security (CIS).
Si vous utilisez des images personnalisées pour vos VM Compute Engine, vous devez les corriger vous-même. Vous pouvez également utiliser des 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 d'OS 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 les mises à niveau automatiques des nœuds afin que Google puisse mettre à 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 minimiser la taille de l'image et la surface d'attaque.
Pour les charges de travail sensibles, utilisez Shielded VM, qui empêche le chargement de code malveillant pendant le cycle de démarrage de la VM. Les instances Shielded VM 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 Identity and Access Management (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 de 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 ou y accéder de manière interactive. Si le conteneur doit être modifié, vous devez créer une nouvelle image et la dé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 dans votre environnement, vous pouvez utiliser des règles d'administration pour définir des contraintes ou des garde-fous sur les ressources qui affectent le comportement de vos actifs cloud. Par exemple, vous pouvez définir les règles d'administration suivantes et les appliquer globalement à une Google Cloud organisation ou de manière sélective au niveau d'un dossier ou d'un projet :
- Désactiver l'attribution d'adresses IP externes aux VM.
- Restreindre la création de ressources à des zones géographiques spécifiques.
- Désactiver 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 domaines d'intérêt suivants :
- Sécurité de l'infrastructure
- Sécurité des données
Le chiffrement des données est un contrôle fondamental pour protéger les informations sensibles et constitue un élément clé de la gouvernance des données. Une stratégie de protection des données efficace inclut le contrôle des accès, la segmentation des données et la résidence géographique, l'audit et la mise en œuvre du chiffrement en fonction d'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, les clés de chiffrement gérées par le client (CMEK) peuvent être créées dans Cloud Key Management Service (Cloud KMS). Les CMEK peuvent être basées sur des logiciels ou protégées par un module HSM pour répondre à vos exigences réglementaires ou de conformité, telles que la nécessité de faire pivoter régulièrement les clés de chiffrement. La fonctionnalité de clé automatique Cloud KMS vous permet d'automatiser le provisionnement et l'attribution des CMEK. Vous pouvez également 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 sur les connexions Cloud Interconnect. IPsec fournit le chiffrement du trafic sur les connexions Cloud VPN. Vous pouvez protéger le trafic d'application à application dans le cloud en utilisant des 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 l'informatique confidentielle, qui fournit un environnement d'exécution approuvé pour vos charges de travail de calcul. Pour en savoir plus, consultez la page Présentation de Confidential VM.