Découpler PDP et PEP pour prendre en charge l'architecture sans confiance sur Oracle Cloud

Pour réduire les risques liés aux menaces constantes, une architecture à confiance zéro doit utiliser un plan de contrôle distinct pour le point de décision de politique (PDP) et implémenter le point d'application de politique (PEP) sur un plan de données. Vous pouvez utiliser les services Oracle Cloud pour prendre en charge votre architecture sans confiance et améliorer le contrôle d'accès sur Oracle Cloud pour votre implémentation PDP et PEP.

Oracle Cloud Infrastructure (OCI) fournit un ensemble convaincant de fonctionnalités de sécurité pour protéger les workloads critiques et les données sensibles. Oracle Cloud implémente un modèle de sécurité zéro confiance qui est basé sur l'architecture zéro confiance établie par le National Institute of Standards and Technology (NIST). Ce modèle vous permet d'appliquer une posture de sécurité stricte qui nécessite une vérification de la part de chaque utilisateur qui tente d'accéder aux systèmes, réseaux et données.

Vous pouvez intégrer OCI Identity and Access Management et OCI API Gateway pour établir une séparation entre le PDP et le PEP.

Identity and Access Management (IAM)

Oracle Cloud fournit une plate-forme Identity-as-a-Service (IDaaS) de niveau entreprise appelée OCI Identity and Access Management. OCI Identity and Access Management utilise des domaines d'identité pour provisionner des identités cloud, des utilisateurs et des applications sécurisées. Vous pouvez utiliser OCI Identity and Access Management avec des domaines d'identité en tant que PDP pour autoriser ou refuser l'accès à diverses ressources ou services cloud en définissant des stratégies granulaires.

La plate-forme d'identité sert à la fois de porte d'entrée pour les services cloud et de plate-forme autonome d'identité en tant que service (IDaaS) pour les utilisateurs professionnels et les consommateurs. Cette plate-forme fournit des fonctionnalités clés de gestion des identités pour les applications et services exécutés dans Oracle Cloud, les clouds tiers et vos data centers sur site. OCI Identity and Access Management offre une gestion de l'authentification, de l'accès avec connexion unique (SSO) et du cycle de vie des identités pour Oracle Cloud et pour les applications Oracle et non Oracle, qu'elles soient SaaS, hébergées dans le cloud ou sur site. IAM vous permet également de contrôler le type d'accès dont dispose un groupe d'utilisateurs et les ressources cloud concernées.

API Gateway

Oracle Cloud crée des services avec une approche de conception axée sur la sécurité. Avec cette approche, des services tels qu'OCI API Gateway vous permettent de créer des stratégies d'accès aux données qui autorisent uniquement les utilisateurs ou les applications autorisés à accéder aux données dans toute l'entreprise.

Le service OCI API Gateway vous permet de créer des interfaces HTTP/S régies pour plusieurs back-ends, y compris des services Oracle Cloud tels que OCI Load Balancing, OCI Functions, des instances OCI Compute et des applications sur site connectées à Oracle Cloud via un VPN ou OCI FastConnect. OCI API Gateway fournit des fonctionnalités d'application de stratégie telles que la limitation de débit aux adresses HTTP/S, l'authentification avec des fournisseurs d'identités et l'accès à plusieurs services RESTful dans le cloud et sur site.

OCI API Gateway garantit que l'appelant est authentifié afin que les back-ends connectés à la passerelle ne puissent pas être appelés de manière anonyme. OCI API Gateway peut également vérifier l'autorisation et vous permet d'ajouter des URL HTTP et HTTP/S à un service back-end pour accorder à ces services un accès frontal avec application de stratégie. Les URL HTTP/S que vous indiquez pour le service back-end peuvent être l'une des suivantes :

  • URL d'un service Oracle Cloud (par exemple, OCI Functions ou OCI Object Storage)
  • URL d'un service sur votre propre réseau privé ou interne connecté à OCI via un VPN ou OCI FastConnect

Architecture

Cette conception d'architecture décrit l'intégration entre OCI Identity and Access Management et OCI API Gateway. Dans cette architecture, OCI API Gateway agit en tant que PEP en appliquant les stratégies, et OCI Identity and Access Management agit en tant que PDP en autorisant le jeton et en accordant l'accès aux utilisateurs autorisés. Cette intégration utilise le jeton Web JWT ou JSON, également appelé jeton d'accès. JWT est une norme ouverte du secteur qui vous permet de vous intégrer à d'autres systèmes IAM.

Le diagramme suivant illustre cette architecture de référence.

La description de zéro-trust-pdp-pep-oci.png suit
Description de l'illustration zéro-trust-pdp-pep-oci.png

zéro-trust-pdp-pep-oci-oracle.zip

Les étapes suivantes expliquent le flux d'autorisation d'architecture avec OCI API Gateway et OCI Identity and Access Management :
  1. Génération d'un jeton d'accès

    L'application client de l'utilisateur final utilise l'API IAM pour générer un jeton d'accès JWT à partir d'OCI Identity and Access Management (PDP).

  2. Appel avec jeton d'accès (JWT)

    Le jeton d'accès JWT est envoyé à OCI API Gateway dans le cadre de l'en-tête de demande HTTP de chaque appel d'API. Le jeton peut éventuellement contenir des portées spécifiquement définies pour les ressources.

  3. Vérification de stratégie et validation JWT avec IAM

    OCI API Gateway (PEP) appelle l'API d'autorisation IAM et transmet le jeton d'accès reçu du client.

  4. Décision de stratégie

    Le service OCI Identity and Access Management (PDP) évalue le jeton et renvoie une décision d'autorisation ou de refus.

  5. Octroi de l'accès aux back-ends

    OCI API Gateway (PEP) accorde ou refuse l'accès aux services back-end (tels que les microservices exécutés dans Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE), OCI Functions, OCI Object Storage ou à une adresse de service exposée par une application exécutée dans une machine virtuelle) en fonction du résultat de la décision de stratégie IAM.

  6. Réponse (200 OK / 403 Interdit)

    OCI API Gateway (PEP) renvoie le statut 200 OK (Autoriser) ou 403 Interdit (Refuser) à l'appelant.

Vous pouvez utiliser la console OCI ou les appels GUI et REST pour configurer l'implémentation de cette intégration.

L'architecture comporte les composants suivants :

  • Passerelle d'API

    Le service OCI API Gateway vous permet de publier des API avec des adresses privées accessibles à partir de votre réseau. Vous pouvez les afficher sur le réseau Internet public si nécessaire. Les adresses prennent en charge la validation d'API, la transformation des demandes et des réponses, l'authentification et l'autorisation CORS, ainsi que la limitation des demandes.

  • Identity and Access Management (IAM)

    Oracle Cloud Infrastructure Identity and Access Management (IAM) est le plan de contrôle d'accès pour Oracle Cloud Infrastructure (OCI) et Oracle Cloud Applications. L'API IAM et l'interface utilisateur vous permettent de gérer les domaines d'identité et les ressources au sein du domaine d'identité. Chaque domaine d'identité OCI IAM représente une solution autonome de gestion des identités et des accès ou une population d'utilisateurs différente.

    IAM vous permet de contrôler qui peut accéder à vos ressources dans OCI et les opérations qu'ils peuvent effectuer sur ces ressources.

  • Règle

    Une stratégie Oracle Cloud Infrastructure Identity and Access Management spécifie qui peut accéder à quelles ressources et comment. L'accès est accordé au niveau du groupe et du compartiment. Vous pouvez donc écrire une stratégie qui offre à un groupe un type d'accès spécifique dans un compartiment spécifique ou dans la location.

  • Container Engine for Kubernetes

    Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) est un service entièrement géré, évolutif et hautement disponible que vous pouvez utiliser pour déployer vos applications en conteneur vers le cloud. Indiquez les ressources de calcul dont vos applications ont besoin et Container Engine for Kubernetes les provisionne sur Oracle Cloud Infrastructure dans une location existante. Container Engine for Kubernetes utilise Kubernetes pour automatiser le déploiement, le redimensionnement et la gestion des applications en conteneur sur des clusters d'hôtes.

  • Functions

    Oracle Cloud Infrastructure Functions est une plate-forme Functions-as-a-Service (FaaS) entièrement gérée, colocative, hautement évolutive et à la demande. Il est alimenté par le moteur open source du projet Fn. Les fonctions vous permettent de déployer votre code, et de l'appeler directement ou de le déclencher en réponse à des événements. Oracle Functions utilise des conteneurs Docker hébergés dans Oracle Cloud Infrastructure Registry.

  • Stockage d'objet

    Object Storage fournit un accès rapide à de grandes quantités de données, structurées ou non, de tout type de contenu, y compris des sauvegardes de base de données, des données analytiques et du contenu enrichi tel que des images et des vidéos. Vous pouvez stocker les données, puis les extraire directement à partir d'Internet ou de la plate-forme cloud, et ce, en toute sécurité. Vous pouvez facilement faire évoluer le stockage sans dégradation des performances ni de la fiabilité des services. Utilisez le stockage standard pour le stockage "à chaud" auquel vous devez accéder rapidement, immédiatement et fréquemment. Utilisez le stockage d'archive pour le stockage "à froid" que vous conservez pendant de longues périodes et auquel vous accédez rarement.

Recommandations

Utilisez les recommandations suivantes comme point de départ. Vos exigences peuvent différer de l'architecture décrite ici.
  • Sécurité

    Utilisez Oracle Cloud Guard pour surveiller et maintenir la sécurité de vos ressources dans Oracle Cloud Infrastructure (OCI) de manière proactive. Oracle Cloud Guard utilise des recettes de détecteur que vous pouvez définir pour examiner vos ressources à la recherche de failles de sécurité et pour surveiller les opérateurs et les utilisateurs à la recherche d'activités à risque. Lorsqu'une mauvaise configuration ou une activité non sécurisée est détectée, Oracle Cloud Guard recommande des actions correctives et aide à effectuer ces actions, en fonction des recettes de répondeur que vous pouvez définir.

    Pour les ressources nécessitant une sécurité maximale, Oracle recommande d'utiliser des zones de sécurité. Une zone de sécurité est un compartiment associé à une recette de stratégies de sécurité définie par Oracle basée sur les meilleures pratiques. Par exemple, les ressources d'une zone de sécurité ne doivent pas être accessibles à partir du réseau Internet public et elles doivent être cryptées à l'aide de clés gérées par le client. Lorsque vous créez et mettez à jour des ressources dans une zone de sécurité, OCI valide les opérations par rapport aux stratégies de la recette de zone de sécurité et refuse les opérations qui violent l'une des stratégies.

  • Cloud Guard

    Clonez et personnalisez les recettes par défaut fournies par Oracle pour créer des recettes de détecteur et de répondeur personnalisées. Ces recettes vous permettent de spécifier le type de violation de sécurité qui génère un avertissement et les actions autorisées. Par exemple, vous pouvez détecter les buckets OCI Object Storage dont la visibilité est définie sur Public.

    Appliquez Oracle Cloud Guard au niveau de la location pour couvrir la portée la plus large et réduire la charge administrative liée à la maintenance de plusieurs configurations.

    Vous pouvez également utiliser la fonctionnalité Liste gérée pour appliquer certaines configurations aux détecteurs.

Points à prendre en compte

Tenez compte des points suivants lors de l'implémentation de cette architecture de référence :

  • Provisionnement des utilisateurs et contrôle d'accès

    Lorsque les clients ont accès aux données et aux services back-end, comment sont-ils provisionnés dans Oracle Cloud Infrastructure Identity and Access Management (qui les authentifie) ? Comment sont-ils déprovisionnés lorsque leurs droits d'accès doivent être révoqués ? Ces considérations s'inscrivent dans le cadre d'une discussion plus large sur la manière et à qui les produits de données monétisés sont mis à disposition.

  • Performances

    Oracle Cloud Infrastructure API Gateway prend en charge la mise en cache des réponses en s'intégrant à un serveur de cache externe (tel qu'un serveur Redis ou KeyDB), ce qui permet d'éviter toute charge inutile sur les services back-end. Avec les réponses mises en cache, les demandes similaires sont effectuées en extrayant les données d'un cache de réponses plutôt qu'en envoyant la demande au service back-end. Cela réduit la charge sur les services back-end, ce qui permet d'améliorer les performances et de réduire les coûts.

    OCI API Gateway met également en cache les jetons d'authentification en fonction de leur durée de vie, ce qui réduit la charge sur le fournisseur d'identités et améliore les performances.

  • Sécurité

    Les services Oracle Cloud Infrastructure (OCI) utilisent des stratégies OCI Identity and Access Management telles que l'autorisation d'OCI API Gateway d'appeler des fonctions. OCI API Gateway peut également contrôler l'accès à l'aide de l'authentification et de l'autorisation OAuth. L'authentification et l'autorisation peuvent être fédérées via OCI Identity and Access Management, ce qui permet à OCI API Gateway de s'authentifier auprès d'un large éventail de services et de configurations d'authentification.

  • Haute disponibilité

    Envisagez d'utiliser une option de haute disponibilité en fonction de vos exigences de déploiement et de votre région. Vous pouvez notamment répartir les ressources entre plusieurs domaines de disponibilité d'une région et répartir les ressources entre les domaines de pannes d'un domaine de disponibilité. Les domaines de pannes offrent la meilleure résilience pour les charges de travail déployées dans un seul et même domaine de disponibilité. Pour bénéficier d'une haute disponibilité au niveau de l'application, déployez les serveurs d'applications dans différents domaines de pannes et utilisez un équilibreur de charge pour répartir le trafic client sur les serveurs d'applications.

Remerciements

Auteur:

  • Subba Bhamidipati