0
votes

Ingresses Kubettes - API particulières Whitelist

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 -> xxx

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?

Je suppose que je peux utiliser nginx.ingress.kubettes.io/whitelist-source-range , 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?


0 commentaires

3 Réponses :


0
votes

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;
      }


0 commentaires

0
votes

de ce que je vois que vous essayez de créer deux chemins distincts où / API / CODE sera accessible uniquement pour des adresses IP spécifiques.

J'ai répliqué votre problème, apporté des tests et trouvés une solution.

Lors de la création de deux objets d'ingression comme la vôtre, qui diffèrent sur le champ par exemple on a chemin: / API /(.*)<< code> et deuxième a chemin: / API / Secure

nginx générera la configuration suivante (la sortie est raccourci):

serveur { serveur_name beta.xyz.com; xxx

et dans Documentation NGinx Vous pouvez lire:

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 avec le préfixe correspondant le plus long est sélectionné et rappelé . 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.

Signification: NGinx remplit toujours des demandes à l'aide de la correspondance la plus spécifique

en fonction de ces informations, créant deux entrées distinctes, comme vous l'avez mentionné, devrait résoudre votre problème, car / API / CODE sera toujours un chemin plus spécifique que / API /(.*).

Permettez-moi de savoir si cela a aidé.


0 commentaires

0
votes

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;
  }


0 commentaires