Nous avons une foule de microservices qui étant servi via un seul service d'API-passerelle, à Kubettes, avec une entrée à transmettre à la même personne qui ressemble à celle ci-dessous -> nous Avoir une nouvelle exigence, dans laquelle un sous-ensemble des API - / API / Sécurisé, doit être restreint IP. Toutes les idées sur la manière de y parvenir? P> Je suppose que je peux utiliser nginx.ingress.kubettes.io/whitelist-source-range code>, dans une nouvelle configuration au trafic renouvelable / API / Secure, mais comment puis-je vous assurer que la configuration ci-dessus n'est pas serveur / API / Secure? p> p>
3 Réponses :
Donc, pour que quelqu'un cherche à faire quelque chose de similaire, j'ai pu obtenir ce travail en utilisant nginx.ingress.kubernetes.ippet/server-snippet code> pour ajouter un extrait et bloquer le trafic
location ~ "^/api/secure/(.*)" {
deny all;
return 403;
}
de ce que je vois que vous essayez de créer deux chemins distincts où J'ai répliqué votre problème, apporté des tests et trouvés une solution. p> Lors de la création de deux objets d'ingression comme la vôtre, qui diffèrent sur le champ code> code> par exemple
on a nginx générera la configuration suivante (la sortie est raccourci): p> serveur {
serveur_name beta.xyz.com; p> et dans Documentation NGinx Vous pouvez lire: P> Pour trouver l'emplacement correspondant à une demande donnée, Nginx Premiers emplacements de chèques
défini à l'aide des chaînes de préfixes (emplacements de préfixes). Parmi eux, l'emplacement Signification: NGinx remplit toujours des demandes à l'aide de la correspondance la plus spécifique p> en fonction de ces informations, créant deux entrées distinctes, comme vous l'avez mentionné,
devrait résoudre votre problème, car Permettez-moi de savoir si cela a aidé. p> p> / API / CODE CODE> sera accessible uniquement pour des adresses IP spécifiques.
chemin: / API /(.*)<< code> et deuxième a
chemin: / API / Secure code> p>
avec le préfixe correspondant le plus long est sélectionné et rappelé code>. Puis des expressions régulières
sont vérifiés, dans l'ordre de leur apparence dans le fichier de configuration. La recherche de
Les expressions régulières se terminent sur la première correspondance et la configuration correspondante est utilisée. P>
blockQquote>
/ API / CODE CODE> sera toujours un chemin plus spécifique que
/ API /(.*) code>. P>
Dans mon cas, j'ai une plaque d'hôte multi-sous-domaines et j'essaie des configurations telles que
nginx.ingress.kubernetes.io/server-snippet: | location ~* "^/api/architect/(.*)" { allow all; } location ~* "^/(.*)" { deny all; allow 149.74.110.92; allow 85.138.230.206; }