Les charges de travail GKE doivent accéder aux API GCP sans gérer les clés de compte de service.
Activer et configurer Workload Identity sur le cluster GKE. Mapper les comptes de service Kubernetes (KSA) aux comptes de service Google (GSA).
Pourquoi: Ălimine le risque de fuite des clĂ©s de compte de service en utilisant des identifiants de courte durĂ©e, automatiquement renouvelĂ©s et dĂ©rivĂ©s des tokens KSA.
Référence
Fournir un accÚs aux applications web internes depuis n'importe quel réseau, basé sur l'identité de l'utilisateur et la posture de l'appareil, sans VPN.
Utiliser Identity-Aware Proxy (IAP) avec Access Context Manager. Définir les niveaux d'accÚs basés sur l'IP, l'état de l'appareil (via Endpoint Verification) et l'identité de l'utilisateur.
Pourquoi: Déplace le contrÎle d'accÚs du périmÚtre réseau vers les utilisateurs et appareils individuels, appliquant les principes du zéro-trust.
Référence
Une pipeline CI/CD (par exemple, GitHub Actions, GitLab) doit accéder aux ressources GCP sans identifiants de longue durée.
Utiliser Workload Identity Federation. Créer un pool de fournisseurs pour l'IdP externe (par exemple, GitHub OIDC) et configurer des conditions d'attribut pour restreindre l'accÚs à des dépÎts ou branches spécifiques.
Pourquoi: Authentification sans clé pour les charges de travail externes. Le systÚme externe fournit son propre token, qui est échangé contre un token GCP de courte durée.
Appliquer des politiques de sécurité IAM à l'échelle de l'organisation, telles que la prévention de la création de clés de compte de service ou la restriction des autorisations IAM à des domaines spécifiques.
Utiliser les contraintes de politique d'organisation telles que `iam.disableServiceAccountKeyCreation` et `iam.allowedPolicyMemberDomains`.
Pourquoi: Les politiques d'organisation sont hĂ©ritĂ©es et ne peuvent pas ĂȘtre outrepassĂ©es par les propriĂ©taires de projets, garantissant une posture de sĂ©curitĂ© cohĂ©rente.
Un utilisateur a besoin d'un accĂšs administratif temporaire, auditable et soumis Ă approbation Ă un environnement de production pour un incident.
Utiliser Privileged Access Manager (PAM) pour un accÚs juste-à -temps (JIT). L'utilisateur demande un rÎle spécifique pour une durée limitée, ce qui passe par un flux de travail d'approbation.
Pourquoi: Ălimine les privilĂšges permanents, un risque de sĂ©curitĂ© majeur. L'accĂšs est limitĂ© dans le temps, justifiĂ© et entiĂšrement auditĂ©.
Plusieurs équipes partagent un cluster GKE. Chaque équipe doit uniquement gérer les ressources au sein de son propre namespace.
Accorder le rÎle IAM `roles/container.clusterViewer` au niveau du projet. Utiliser les `Role` et `RoleBinding` RBAC de Kubernetes au sein de chaque namespace pour accorder des permissions spécifiques (par exemple, éditer, visualiser).
Pourquoi: Sépare l'authentification au niveau du cluster (IAM) de l'autorisation au niveau du namespace (Kubernetes RBAC), offrant un contrÎle multi-locataire granulaire.
Les API doivent ĂȘtre appelĂ©es Ă l'aide d'identifiants de courte durĂ©e au lieu de clĂ©s statiques.
Utiliser l'usurpation d'identité de compte de service. Accorder à un principal le rÎle `roles/iam.serviceAccountTokenCreator` sur un compte de service cible pour générer des tokens d'accÚs OAuth 2.0 de courte durée.
Pourquoi: Ăvite de distribuer et de gĂ©rer des clĂ©s de longue durĂ©e. Les tokens expirent automatiquement (par dĂ©faut 1 heure), rĂ©duisant les risques en cas de compromission.
Un contractuel a besoin d'accéder à des ressources spécifiques, mais l'accÚs doit expirer automatiquement aprÚs 30 jours.
Accorder le rÎle IAM nécessaire avec une condition IAM basée sur le temps, par exemple, `request.time < timestamp("YYYY-MM-DDTHH:MM:SSZ")`.
Pourquoi: Automatise la révocation de l'accÚs, évitant le nettoyage manuel et garantissant que l'accÚs n'est pas prolongé par inadvertance.
Autoriser uniquement les images conteneur signĂ©es par la pipeline CI/CD Ă ĂȘtre dĂ©ployĂ©es sur les clusters GKE de production.
Implémenter Binary Authorization. Créer une attestation dans la pipeline CI pour signer les images. Configurer une politique Binary Authorization sur le cluster GKE pour exiger cette attestation.
Pourquoi: Applique une chaĂźne d'approvisionnement logicielle sĂ©curisĂ©e en empĂȘchant les images non vĂ©rifiĂ©es ou altĂ©rĂ©es de s'exĂ©cuter en production.
Référence
Accorder des permissions aux ressources basées sur leurs tags attribués, et non sur des noms de ressources individuels.
Utiliser les conditions IAM avec des expressions de tag de ressource, comme `resource.matchTag("123456789/env", "prod")`.
Pourquoi: Permet un contrÎle d'accÚs basé sur les attributs (ABAC) évolutif. Les permissions sont dynamiques et s'appliquent automatiquement à mesure que les ressources sont taguées.
Permettre à un projet de service de déployer des VM dans un projet hÎte Shared VPC sans accorder de droits d'administrateur réseau.
Dans le projet hÎte, accorder au compte de service du projet de service le rÎle `roles/compute.networkUser` sur le ou les sous-réseaux spécifiques qu'il doit utiliser.
Pourquoi: Suit le principe du moindre privilÚge. Les projets de service peuvent utiliser le réseau mais ne peuvent pas le modifier (par exemple, changer les rÚgles de pare-feu), celui-ci restant géré de maniÚre centralisée.
Un utilisateur avec `storage.admin` ne peut pas créer de bucket. Vous devez identifier la cause premiÚre.
Vérifier l'existence d'une politique de refus IAM à un niveau supérieur (dossier, organisation) qui refuse la permission `storage.buckets.create`.
Pourquoi: Les politiques de refus IAM outrepassent toujours toutes les politiques d'autorisation. C'est un outil puissant pour faire respecter des limites de sécurité non négociables.
Activer l'SSO pour les utilisateurs d'Active Directory sur site afin qu'ils accĂšdent Ă la console Google Cloud.
Utiliser Google Cloud Directory Sync (GCDS) pour synchroniser les identités vers Cloud Identity. Configurer la fédération (SAML) entre Cloud Identity et AD FS (ou un autre IdP).
Pourquoi: Maintient AD comme source de vérité pour les identités tout en offrant une expérience SSO fédérée et transparente aux utilisateurs.