Déployer les applications d'une grappe OKE privée à l'aide du hôte bastion pour OCI et des actions GitHub
Apprenez à tirer parti des sessions Oracle Cloud Infrastructure Bastion et des actions GitHub efficacement pour le déploiement dans une grappe Oracle Cloud Infrastructure Kubernetes Engine (OKE) privée lorsque les besoins surviennent en raison de divers facteurs tels que la sécurité, la conformité, l'isolement du réseau et le contrôle.
OKE est un service entièrement géré, évolutif et hautement disponible que vous pouvez utiliser pour déployer vos applications conteneurisées dans le nuage.
GitHub Actions est une puissante plate-forme d'automatisation de flux de travail et d'intégration et de déploiement continus (CI/CD) fournie par GitHub. Il vous permet de définir des flux de travail personnalisés à l'aide de la syntaxe YAML, qui peut être déclenchée par divers événements tels que les poussées de code, les demandes d'extraction ou les tâches programmées.
Cette architecture de référence explore l'utilisation des sessions d'hôte bastion OCI et des actions GitHub à déployer dans une grappe OKE privée.
Architecture
Cette architecture de référence présente l'intégration d'un hôte bastion OCI et des actions GitHub pour faciliter les déploiements vers une grappe OKE privée.
La grappe OKE privée est inaccessible à partir des réseaux externes. Pour accéder au point d'extrémité privé de l'API K8s, une session d'hôte bastion OCI de transfert de port SSH est établie. Cette configuration permet l'exécution des commandes kubectl
pour effectuer diverses opérations de déploiement dans la grappe.
Lorsque le code est poussé vers le référentiel, le flux de travail GitHub Actions est déclenché automatiquement. Lors de l'exécution du flux de travail, la session de l'hôte bastion OCI est créée et utilisée pour se connecter au point d'extrémité d'API K8s privé pour exécuter des actions de déploiement.
À la fin du flux de travail, la session de l'hôte bastion OCI est supprimée. Cette approche garantit un processus de déploiement hautement sécurisé et efficace. De plus, ce flux de travail sert de cadre à l'exécution de tâches d'intégration continue et peut être adapté pour s'aligner sur vos processus et exigences de développement spécifiques.
Le diagramme suivant illustre cette architecture de référence.
oke-bastion-déploiement-diagramme-oracle.zip
Avant de commencer
- Provisionnez une grappe OKE avec le point d'extrémité de l'API Kubernetes et les noeuds de travail configurés dans un sous-réseau privé.
Note :
Le point d'extrémité de l'API Kubernetes privé sera utilisé pour établir la session de transfert de port de l'hôte bastion OCI. - Définissez le service Hôte bastion OCI créé pour que le VCN OKE soit le VCN cible et le sous-réseau de noeud OKE le sous-réseau cible.
- Définissez la politique de service IAM requise.
Note :
Voir Explorer davantage pour les liens vers la section Configuration de politiques pour la création et le déploiement de grappes afin de configurer les politiques IAM nécessaires.
L'architecture comprend les composants suivants :
- Location
Une location est une partition sécurisée et isolée qu'Oracle configure dans Oracle Cloud lors de votre inscription à Oracle Cloud Infrastructure. Vous pouvez créer, organiser et administrer vos ressources dans Oracle Cloud au sein de votre location. Une location est synonyme d'une société ou d'une organisation. Habituellement, une société aura une seule location et reflétera sa structure organisationnelle au sein de cette location. Une seule location est généralement associée à un seul abonnement, et un seul abonnement n'a généralement qu'une seule location.
- Région
Une région Oracle Cloud Infrastructure est une zone géographique localisée qui contient un ou plusieurs centres de données, appelés domaines de disponibilité. Les régions sont indépendantes les unes des autres, et de grandes distances peuvent les séparer (dans différents pays ou continents).
- Compartiment
Les compartiments sont des partitions logiques inter-régions dans une location Oracle Cloud Infrastructure. Utilisez des compartiments pour organiser, contrôler l'accès et définir des quotas d'utilisation pour vos ressources Oracle Cloud. Dans un compartiment donné, vous définissez des politiques qui contrôlent l'accès et définissent des privilèges pour les ressources.
- Domaines de disponibilité
Les domaines de disponibilité sont des centres de données indépendants et autonomes dans une région. Les ressources physiques de chaque domaine de disponibilité sont isolées des ressources des autres domaines de disponibilité, ce qui garantit la tolérance aux pannes. Les domaines de disponibilité ne partagent pas les éléments d'infrastructure (alimentation ou refroidissement, par exemple) ni le réseau de domaines de disponibilité interne. Par conséquent, une défaillance d'un domaine de disponibilité ne devrait pas affecter les autres domaines de disponibilité de la région.
- Domaines d'erreur
Un domaine d'erreur est un regroupement de matériel et d'infrastructure au sein d'un domaine de disponibilité. Chaque domaine de disponibilité comporte trois domaines d'erreur avec une puissance et un matériel indépendants. Lorsque vous répartissez des ressources entre plusieurs domaines d'erreur, vos applications peuvent tolérer les pannes physiques de serveur, la maintenance du système et les pannes d'alimentation au sein d'un domaine d'erreur.
- Réseau en nuage virtuel (VCN) et sous-réseau
Un VCN est un réseau défini par logiciel personnalisable que vous avez configuré dans une région Oracle Cloud Infrastructure. Comme les réseaux en nuage virtuels traditionnels, ils vous offrent un contrôle sur votre environnement de réseau. Un VCN peut disposer de plusieurs blocs CIDR sans chevauchement que vous pouvez modifier après avoir créé le VCN. Vous pouvez segmenter un VCN en sous-réseaux, dont la portée peut concerner une région ou un domaine de disponibilité. Un sous-réseau est constitué d'un intervalle contigu d'adresses qui ne chevauchent pas les autres sous-réseaux dans le réseau en nuage virtuel. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.
- Équilibreur de charge
Le service Oracle Cloud Infrastructure Load Balancing permet une répartition automatisée du trafic à partir d'un point d'entrée unique vers plusieurs serveurs dorsaux.
- Liste de sécurité
Pour chaque sous-réseau, vous pouvez créer des règles de sécurité qui spécifient la source, la destination et le type de trafic qui doivent être autorisés à entrer et à sortir du sous-réseau.
- Passerelle de traduction d'adresses de réseau (NAT)
Une passerelle NAT permet aux ressources privées d'un VCN d'accéder à des hôtes sur Internet, sans les exposer aux connexions Internet entrantes.
- Passerelle de service
La passerelle de service fournit l'accès d'un VCN à d'autres services, tels qu'Oracle Cloud Infrastructure Object Storage. Le trafic entre le réseau VCN et le service Oracle circule sur la matrice réseau Oracle et ne passe pas par Internet.
- Protection d'infrastructure en nuage
Vous pouvez utiliser Oracle Cloud Guard pour surveiller et maintenir la sécurité de vos ressources dans Oracle Cloud Infrastructure. Le service de protection d'infrastructure en nuage utilise des recettes de détecteur que vous pouvez définir pour examiner vos ressources afin de détecter les faiblesses en matière de sécurité et pour surveiller les opérateurs et les utilisateurs pour certaines activités risquées. Lorsqu'une mauvaise configuration ou une activité non sécurisée est détectée, le service de protection d'infrastructure en nuage recommande des actions correctives et aide à effectuer ces actions, en fonction des recettes de répondant que vous pouvez définir.
- Zone de sécurité
Les zones de sécurité garantissent les meilleures pratiques de sécurité d'Oracle dès le départ en appliquant des politiques telles que le chiffrement des données et la prévention de l'accès public aux réseaux pour un compartiment entier. Une zone de sécurité est associée à un compartiment du même nom et inclut des politiques de zone de sécurité ou une "recette" qui s'applique au compartiment et à ses sous-compartiments. Vous ne pouvez pas ajouter ou déplacer un compartiment standard vers un compartiment de zone de sécurité.
- Moteur Kubernetes
Oracle Cloud Infrastructure Kubernetes Engine pour (Moteur Kubernetes pour OCI ou OKE) est un service entièrement géré, évolutif et hautement disponible que vous pouvez utiliser pour déployer vos applications conteneurisées dans le nuage. Vous indiquez les ressources de calcul dont vos applications ont besoin et Kubernetes Engine les provisionne sur Oracle Cloud Infrastructure dans une location existante. OKE utilise Kubernetes pour automatiser le déploiement, l'ajustement et la gestion des applications conteneurisées sur les grappes d'hôtes.
- Service d'hôte bastion
Oracle Cloud Infrastructure Bastion fournit un accès sécurisé restreint et limité dans le temps aux ressources qui n'ont pas de points d'extrémité publics et qui nécessitent des contrôles d'accès stricts aux ressources, tels que les machines sans système d'exploitation et virtuelles, Oracle MySQL Database Service, Autonomous Transaction Processing (ATP), Oracle Cloud Infrastructure Kubernetes Engine (OKE) et toute autre ressource qui autorise l'accès au protocole SSH. Avec le service Hôte bastion OCI, vous pouvez permettre l'accès à des hôtes privés sans déployer et tenir à jour un hôte de saut. En outre, vous bénéficiez d'une meilleure sécurité grâce à des autorisations basées sur l'identité et à une session SSH centralisée, auditée et limitée dans le temps. Le service Hôte bastion OCI élimine le besoin d'une adresse IP publique pour l'accès bastion, éliminant ainsi les tracas et la surface d'attaque potentielle lors de la fourniture d'un accès distant.
Recommandations
- VCN
Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez d'attacher aux sous-réseaux du VCN. Utilisez des blocs CIDR qui se trouvent dans l'espace d'adresses IP privées standard.
Sélectionnez les blocs CIDR qui ne chevauchent aucun autre réseau (dans Oracle Cloud Infrastructure, votre centre de données sur place ou un autre fournisseur de nuage) auquel vous voulez configurer des connexions privées.
Après avoir créé un VCN, vous pouvez modifier, ajouter et supprimer ses blocs CIDR.
Lorsque vous concevez les sous-réseaux, tenez compte de vos exigences en matière de flux de trafic et de sécurité. Attachez toutes les ressources d'un niveau ou d'un rôle spécifique au même sous-réseau, qui peut servir de limite de sécurité.
- Protection d'infrastructure en nuage
Cloner et personnaliser les recettes par défaut fournies par Oracle pour créer des recettes de détecteur et de répondant personnalisées. Ces recettes vous permettent de spécifier quel type de violations de sécurité génèrent un avertissement et quelles actions sont autorisées pour elles. Par exemple, vous pouvez détecter des seaux de stockage d'objets dont la visibilité est réglée à Public.
Appliquez le service de protection d'infrastructure en nuage au niveau de la location pour couvrir la portée la plus large et réduire le fardeau administratif lié à la maintenance de plusieurs configurations.
Vous pouvez également utiliser la fonction de liste gérée pour appliquer certaines configurations aux détecteurs.
- Hôte bastion
Le service Hôte bastion OCI permet aux utilisateurs autorisés à se connecter à partir d'adresses IP spécifiques à des ressources cibles à l'aide de sessions SSH. Assurez-vous que seuls les utilisateurs autorisés ont accès pour créer des services et des sessions d'hôte bastion. L'accès à l'hôte bastion ne doit être accordé qu'aux utilisateurs autorisés.
- Kubernetes Engine (OKE)
Assurez-vous que les politiques IAM nécessaires sont créées et que seuls les utilisateurs autorisés ont accès aux ressources de grappe. Une surveillance et une journalisation supplémentaires doivent être activées pour améliorer la sécurité.
Points à considérer
Tenez compte des points suivants lors du déploiement de cette architecture de référence.
- Extensibilité OKE
Vous pouvez augmenter votre application en mettant à jour le nombre de noeuds de travail dans la grappe Kubernetes, selon la charge. De même, vous pouvez réduire le nombre de noeuds de travail dans la grappe. Lorsque vous créez un service sur la grappe Kubernetes, vous pouvez créer un équilibreur de charge pour distribuer le trafic du service entre les noeuds affectés à celui-ci.
- Disponibilité d'application
Les domaines d'erreur assurent la meilleure résilience au sein d'un seul domaine de disponibilité. Vous pouvez également déployer des instances ou des noeuds qui effectuent les mêmes tâches dans plusieurs domaines de disponibilité. Cette conception élimine un point de défaillance unique en introduisant la redondance.
- Sécurité
Utilisez des politiques qui limitent l'accès des personnes aux ressources OCI et la façon dont elles peuvent y accéder.
OKE est intégré au service Oracle Cloud Infrastructure Identity and Access Management (IAM). Le service IAM facilite l'authentification grâce à la fonctionnalité d'identité OCI native.
Déployez
Le code de flux de travail GitHub Actions est disponible dans GitHub.
- Allez à GitHub.
- Clonez ou téléchargez le référentiel sur votre ordinateur local.
- Suivez les instructions du document
README
.