Bonnes pratiques pour CMEK Apigee

Cette page décrit les bonnes pratiques à suivre pour utiliser CMEK avec Apigee.

Prévention des risques

Actuellement, Apigee accepte un ensemble limité de fonctionnalités de clé de chiffrement gérée par le client. Pour éviter la suppression accidentelle de clés CMEK ou de versions de clés, nous vous recommandons d'implémenter les éléments suivants :

  • Renforcez les contrôles d'accès : limitez le rôle roles/cloudkms.admin ou les autorisations de destruction/mise à jour de clés aux seuls administrateurs de confiance ou aux membres de l'équipe senior.
  • Auditez régulièrement les autorisations : assurez-vous que les autorisations ne sont pas étendues par inadvertance au fil du temps.
  • Suppression automatique des clés : ne configurez pas de suppression/désactivation automatiques des clés.

Configurer la durée avant destruction et la rotation des clés

  • Pensez à prolonger la durée avant destruction par défaut : la période de destruction programmée par défaut est de 30 jours. Définir une durée de destruction personnalisée lors de la création de la clé ou appliquer une durée plus longue via les règles de l'organisation peut vous laisser plus de temps pour la restaurer en cas de suppression accidentelle. Si vous pensez que des durées de destruction plus longues impliquent plus de risques, notez que cela vous empêche également de supprimer accidentellement la clé. Vous pouvez trouver le juste équilibre entre les avantages et les risques pour déterminer la durée qui vous convient le mieux.
  • Exiger la désactivation des clés avant leur destruction  : nous vous recommandons de désactiver les versions de clé avant de les programmer pour destruction. Cela permet de vérifier que la clé n'est pas utilisée activement et constitue une étape importante pour déterminer s'il est possible de détruire une version de clé.
  • Implémenter la rotation des clés : la rotation régulière des clés limite l'impact d'un éventuel compromis. En cas de clé compromise, la rotation régulière limite le nombre de messages susceptibles d'être compromis.

Rotation des clés dans Apigee

La rotation des clés a pour objectif principal de réduire la quantité de données chiffrées avec une seule clé, et non de remplacer complètement l'ancienne version de la clé. Pour les clés d'environnement d'exécution et les clés du plan de contrôle, la version de clé d'origine reste associée à la ressource à partir du moment où elle a été créée.

Exemples illustratifs

  • Une instance Apigee utilise toujours la version principale de la clé CMEK qui était active au moment de sa création, même après la rotation des clés.
  • Un groupe de proxys continue d'utiliser la version principale de la clé CMEK qui était active lors de sa création. Toutefois, si ce groupe de proxys est modifié après la rotation des clés, toutes les nouvelles données qu'il contient seront chiffrées avec la nouvelle version de la clé principale.

Limite actuelle : pas de rechiffrement automatique

Il est important de noter qu'Apigee ne prend actuellement pas en charge le rechiffrement automatique des données existantes lors de la rotation d'une clé. Seule une quantité limitée de nouvelles données sera chiffrée avec la nouvelle version de la clé principale. La majorité de vos données, telles que les données d'analyse, les données de disque d'exécution et les anciennes révisions de proxy, seront toujours chiffrées avec l'ancienne version de clé.

Désactivation de la clé

La désactivation ou la destruction des clés perturbe le fonctionnement d'Apigee. Si vous désactivez d'abord la clé, vous pouvez la réactiver s'il s'agit d'une fausse alerte.

Si vous pensez qu'une clé (ou une version de clé) est compromise :

  • Scénario à risque élevé:si vous pensez que vos données Apigee sont sensibles et qu'un pirate a de fortes chances de les exploiter, désactivez immédiatement la clé et révoquez les accès à celle-ci. Vous devez d'abord désactiver la clé avant de recréer une instance apigee et une organisation apigee.
  • Scénario à faible risque : si la réduction des temps d'arrêt est plus importante que le risque potentiel, vous devez recréer l'instance apigee et l'organisation apigee avant de désactiver/supprimer la clé CMEK. Découvrez ci-dessous comment prévenir de manière proactive les temps d'arrêt en investissant dans la sauvegarde/restauration.
  • Contacter l'assistance : nous vous recommandons de contacter Google Cloud Customer Care lorsque vous pensez qu'une clé est compromise et que vous devez la désactiver.

Vérifiez l'impact de la désactivation/révocation/destruction d'une clé ci-dessous. Après avoir désactivé la clé, vous devrez recréer vos organisation/instances apigee. Consultez les bonnes pratiques.

  • Clé CMEK d'exécution compromise : créez des instances avec une nouvelle clé CMEK, puis supprimez les instances d'origine ainsi que l'ancienne clé CMEK d'exécution une fois le trafic migré.
  • Toutes les clés CMEK compromises : créez une organisation apigee avec une nouvelle clé CMEK, répliquez votre configuration, déplacez le trafic, puis fermez l'ancienne organisation et désactivez/supprimez votre clé CMEK d'origine.
  • Contacter Google Cloud Customer Care : si l'API de suppression/recréation d'instances ou d'organisation apigee prend beaucoup de temps, contactez Google Cloud Customer Care.

Impact de la désactivation/révocation/destruction de la clé

Si vous désactivez, révoquez ou supprimez la clé, Apigee ne fonctionnera pas correctement. Les conséquences sont les suivantes :

  • Désactivation/révocation/destruction de la clé entière : les API Apigee destinées aux clients cesseront immédiatement de fonctionner. Les systèmes internes échouent en quelques minutes, ce qui a un impact sur le déploiement des proxys, le trafic d'exécution, les analyses et la sécurité des API. L'instance ne pourra plus être démarrée pendant quelques semaines en raison de problèmes de remontage du disque.
  • Désactivation/révocation/destruction d'une version de clé (y compris la version de clé principale ou la version de clé précédente) : les API client d'Apigee qui utilisent cette version de clé cesseront immédiatement de fonctionner. Certains systèmes internes et le trafic d'exécution seront affectés. L'instance peut ne plus pouvoir être démarrée si la version de clé a été utilisée pour le chiffrement de disque.

Réactiver une clé

Si la sécurité de la clé est compromise, il peut s'agir d'une fausse alerte ou d'une désactivation involontaire. Vous pouvez réactiver la clé si elle est désactivée. La réactivation d'une clé permet de restaurer la fonctionnalité des API destinées aux clients. Les systèmes internes devraient se rétablir en quelques minutes. Toutefois, il est possible que des données soient perdues pour la sécurité et l'analyse des API pendant la période de non-disponibilité de la clé.

  • Si la période de désactivation de la clé est courte : le système devrait récupérer, à l'exception d'une perte de données sur la sécurité et les analyses de l'API.
  • Si la période de désactivation de la clé est longue : le système se rétablit pour diffuser le trafic, mais cela peut entraîner des incohérences dans les données, où une région renvoie une valeur et la région précédemment indisponible en renvoie une autre. Contactez Google Cloud Customer Care pour faire réparer votre cluster Apigee.

Supprimer une clé

Avant de supprimer une clé, nous vous recommandons de suivre ces étapes :

Protéger votre organisation Apigee avec des sauvegardes CI/CD

En cas de compromission des clés de chiffrement gérées par le client (CMEK), il est essentiel de prendre des mesures immédiates pour désactiver, révoquer ou détruire la clé compromise. Toutefois, cette mesure de sécurité nécessaire peut rendre votre système Apigee inutilisable et entraîner des interruptions de service.

Pour garantir un temps d'arrêt minimal ou nul pour vos services Apigee, il est impératif de mettre en œuvre une approche proactive : des sauvegardes continues de la configuration de votre organisation (sauvegardes d'intégration continue/déploiement continu (CI/CD)). Consultez les outils disponibles et les bonnes pratiques pour restaurer une organisation Apigee.

La puissance CI/CD et IaC

L'utilisation d'outils tels que Terraform, une solution Infrastructure as Code (IaC), vous permet de créer facilement une organisation Apigee à partir de votre configuration sauvegardée. Ce processus simplifié vous permet de recréer votre organisation Apigee rapidement et efficacement, en minimisant les temps d'arrêt et en assurant la continuité de l'activité.

Outils disponibles

Vous pouvez combiner tous les outils suivants pour sauvegarder régulièrement votre organisation apigee et tester le processus de récupération.

  • Si vous souhaitez simplement recréer les instances Apigee, consultez Recréer une instance Apigee sans temps d'arrêt.
  • Si vous souhaitez utiliser Terraform, vous pouvez vous inspirer des modules open source apigee/terraform modules.
  • Si vous souhaitez recréer des organisations Apigee, vous pouvez utiliser apigeecli, apigeecli organizations export et apigeecli organizations import comme base pour la sauvegarde. Consultez Exporter/recréer des organisations.
  • Si vous souhaitez sauvegarder et restaurer d'autres ressources que celles énoncées ci-dessus, vous devrez interagir directement avec l'API ou utiliser une autre commande apigeecli.

Bonnes pratiques

  • Sauvegardes régulières : planifiez des sauvegardes régulières pour vous assurer de disposer de la configuration la plus récente. Consultez Exporter/recréer des organisations.
  • Stockage sécurisé : stockez vos sauvegardes dans un emplacement sécurisé, tel qu'un dépôt chiffré.
  • Testez les restaurations : testez régulièrement votre processus de restauration pour vous assurer que vous pouvez récupérer efficacement votre organisation Apigee. Testez régulièrement votre processus de restauration pour vous assurer que vous pouvez rapidement rediriger le trafic vers les organisations Apigee nouvellement créées.

Exporter/recréer des organisations

L'outil apigeecli est un outil de ligne de commande qui vous permet de gérer les ressources Apigee. Il vous permet d'effectuer les mêmes actions que l'API Apigee dans une interface de ligne de commande facile à utiliser, semblable aux commandes gcloud.
Si vous souhaitez recréer des organisations Apigee ou migrer vers une autre organisation Apigee, vous pouvez utiliser apigeecli organizations export et apigeecli organizations import. Il peut également servir de base pour les sauvegardes en cours. Il permet d'exporter et d'importer des ressources telles que :

  • Documentation du portail d'API
  • Catégories du portail d'API
  • Proxys d'API
  • Configuration de la sécurité des API et profils de sécurité
  • Flux partagés
  • Produits d'API
  • Développeurs
  • Applications pour les développeurs incluant des identifiants
  • Groupes d'applications et applications, y compris les identifiants
  • Détails de l'environnement
  • Groupes d'environnements
  • Configuration des collecteurs de données
  • Keystores et certificats d'alias au niveau de l'environnement
  • Serveurs cibles au niveau de l'environnement
  • Références au niveau de l'environnement
  • Mappages clé-valeur (KVM) et entrées au niveau de l'organisation, de l'environnement et du proxy
  • Keystores et certificats d'alias, sauf les clés privées

L'outil peut gérer toutes les autres ressources Apigee. La liste complète des commandes peut être consultée à l'aide de apigeecli tree.

Cet outil présente quelques limites :

  • Les keystores nécessitent l'enregistrement de la clé privée lors de sa création et son inclusion dans les fichiers de sauvegarde locaux.
  • Les jetons OAuth ne pourront pas être sauvegardés ni restaurés. Par conséquent, les clients devront se reconnecter aux instances Apigee nouvellement créées.
  • Les contrôles d'accès tels que les règles d'organisation et les règles IAM ne sont pas migrés. Si vous souhaitez migrer ces règles, vous devez utiliser l'API Google Cloud.
  • Les exportations de rapports Analytics ne sont pas prises en charge, et les métriques d'analyse ne sont pas copiées dans la nouvelle organisation apigee.
  • Cette commande import ne crée pas automatiquement d'instance, d'envGroup, d'EnvAttachments, de rattachement de point de terminaison ni de proxy. Vous pouvez gérer ces ressources, mais pas directement via la commande import.
  • Cette commande import ne crée pas automatiquement de sites de portail. La création de sites de portails doit être effectuée manuellement via l'interface utilisateur.
  • Nous vous suggérons d'investir dans la restauration après sinistre pour la suppression de clés et de tester régulièrement votre processus de restauration afin de vous assurer que vous pouvez rapidement rediriger le trafic vers les organisations Apigee nouvellement créées.

Prérequis

Avant de commencer, vérifiez que les conditions préalables suivantes sont remplies :

  • Apigee CLI installé : installez apigeecli en suivant la procédure décrite dans le guide d'installation.
  • Authentification : vous devez disposer des autorisations et des identifiants d'authentification nécessaires pour interagir avec les organisations Apigee. Assurez-vous d'avoir configuré les éléments suivants :
    • SDK Google Cloud (gcloud) : installé et authentifié.
    • Jeton d'accès : obtenez un jeton d'accès à l'aide de gcloud auth print-access-token.
  • Accès au réseau : assurez-vous que votre réseau autorise l'accès aux API Apigee.
  • Créer une organisation : créez une organisation apigee vers laquelle vous souhaitez migrer. Vous pouvez créer différents types d'organisations apigee. Toutefois, veillez à utiliser le même type d'organisation (paiement à l'usage ou abonnement) et le même type de routage réseau que celui que vous avez utilisé avec votre organisation d'origine.

Exporter une organisation Apigee

Ce qui suit est un exemple de commande. Pour en savoir plus sur les différentes options, consultez Exportation d'organisations avec Apigee CLI.

# Sample command
mkdir apigee_backup
cd apigee_backup

# gcloud auth application-default login
export ORG_FROM=REPLACE
apigeecli organizations export -o $ORG_FROM --default-token

Importer une organisation Apigee

Ce qui suit est un exemple de commande. Pour en savoir plus sur les différentes options, consultez Importation d'organisations avec Apigee CLI.

# Sample command
# gcloud auth application-default login
export ORG_TO=REPLACE
apigeecli organizations import -o $ORG_TO -f . --default-token

Étapes après l'importation

Créer une instance et configurer des réseaux

Pour créer une instance et configurer des réseaux, procédez comme suit :

  1. Pour créer une instance, suivez la procédure décrite dans Créer une instance.
  2. Configurer le trafic Northbound : Northbound fait référence au trafic d'API en provenance de clients externes ou internes et à destination d'Apigee qui passe par un équilibreur de charge. Vous devez vous assurer que PSC ou le VPC est correctement configuré pour que votre instance soit accessible. Vous devrez configurer les noms d'hôte des groupes d'environnements dans la nouvelle organisation.
  3. Configurer le trafic Southbound : Southbound fait référence au trafic d'API provenant d'Apigee et à destination de vos services cibles de proxy d'API. Vous devez donc réserver et activer de nouvelles adresses IP pour votre NAT, puis reconfigurer vos pare-feu/listes d'autorisation sur vos points de terminaison cibles.

Pour en savoir plus, consultez la page Options de mise en réseau Apigee.

Sauvegarder/restaurer d'autres configurations

Utilisez l'une des méthodes suivantes pour sauvegarder/restaurer d'autres configurations :

Déployer vos proxys

Utilisez l'une des méthodes suivantes pour déployer vos proxys :

Basculer le trafic

Pour basculer de trafic, procédez comme suit :

  1. Préparez les tests d'intégration automatisés pour la nouvelle instance.
  2. Configurez un équilibreur de charge pour basculer progressivement le trafic vers la nouvelle instance tout en surveillant les performances.