Exemples de configurations de ressources de réseau

Découvrez des exemples de configuration des ressources de réseau pour le développement de passerelle d'API.

Pour pouvoir utiliser le service Passerelle d'API afin de créer des passerelles d'API et de déployer des API sur ces dernières en tant que déploiements d'API :

  • Vous devez avoir accès à une location Oracle Cloud Infrastructure. La location doit être abonnée à une ou plusieurs régions dans lesquelles le service Passerelle d'API est disponible (voir Disponibilité par région).
  • La location doit avoir un quota suffisant de ressources connexes au service de passerelle d'API (voir Limites de service).

  • Dans la location, un compartiment doit déjà exister pour contenir les ressources de réseau nécessaires. Si un tel compartiment n'existe pas déjà, vous devez le créer. Voir Créer des compartiments pour contenir les ressources de réseau et les ressources du service de passerelle d'API dans la location, s'ils n'existent pas déjà.
  • Le compartiment qui détient des ressources de réseau doit contenir un VCN, un sous-réseau régional public ou privé, et d'autres ressources (telles qu'une passerelle Internet, une table de routage, des listes de sécurité ou des groupes de sécurité de réseau). Pour garantir la haute disponibilité, les passerelles d'API peuvent uniquement être créées dans des sous-réseaux régionaux (et non des sous-réseaux propres à un domaine de disponibilité). Notez qu'une passerelle d'API doit pouvoir joindre les éléments dorsaux définis dans la spécification de déploiement d'API. Par exemple, si l'élément dorsal se trouve sur le réseau Internet public, le réseau en nuage virtuel doit comporter une passerelle Internet pour permettre à la passerelle d'API d'acheminer les demandes vers l'élément dorsal.
  • Le réseau en nuage virtuel doit avoir un jeu d'options DHCP comprenant un résolveur de DNS approprié pour mapper les noms d'hôte définis dans une spécification de déploiement d'API à des adresses IP. Si un tel jeu d'options DHCP n'existe pas déjà dans le réseau en nuage virtuel, vous devez le créer. Sélectionnez les options DHCP définies pour le sous-réseau de la passerelle d'API comme suit :

    • Si le nom d'hôte est publié publiquement sur Internet ou s'il appartient à une instance dans le même réseau en nuage virtuel, sélectionnez un jeu d'options DHCP qui spécifient le résolveur Internet et de réseau en nuage virtuel fourni par Oracle comme type de DNS. Il s'agit de la valeur par défaut si vous ne sélectionnez pas explicitement un jeu d'options DHCP.
    • Si le nom d'hôte se trouve dans votre propre réseau privé ou interne (par exemple, connecté au réseau en nuage virtuel par FastConnect), sélectionnez un jeu d'options DHCP qui spécifient le résolveur personnalisé comme type de DNS et l'URL d'un serveur DNS approprié pouvant résoudre le nom d'hôte en une adresse IP.

    Notez que vous pouvez modifier les détails du serveur DNS dans le jeu d'options DHCP spécifié pour le sous-réseau d'une passerelle d'API. La passerelle d'API sera reconfigurée pour utiliser les détails du serveur DNS mis à jour dans les deux heures qui suivent. Pour plus d'informations sur la résolution des noms d'hôte en adresses IP, voir DNS dans le réseau en nuage virtuel et Options DHCP.

  • Dans la location, un compartiment doit déjà exister pour contenir les ressources liées au service de passerelle d'API (passerelles d'API, déploiements d'API). Ce compartiment peut être celui qui contient les ressources de réseau, mais ce n'est pas obligatoire. Voir Créer des compartiments pour contenir les ressources de réseau et les ressources du service de passerelle d'API dans la location, s'ils n'existent pas déjà. Notez que les ressources liées au service de passerelle d'API peuvent résider dans le compartiment racine. Toutefois, si vous prévoyez que plusieurs équipes vont créer des passerelles d'API, il est recommandé de créer un compartiment distinct pour chaque équipe.
  • Pour créer des passerelles d'API et déployer des API sur ces dernières, vous devez faire partie de l'un des groupes suivants :

  • Des politiques doivent être définies pour accorder aux passerelles d'API que vous créez l'accès à des ressources supplémentaires, au besoin. Voir Créer des politiques pour contrôler l'accès aux ressources de réseau et aux ressources connexes au service de passerelle d'API.

Cette rubrique offre des exemples de configuration des ressources de réseau pour les passerelles d'API avec fonction sans serveur en tant qu'élément dorsal :

Ces exemples supposent que la fonction helloworld par défaut a été créée et déployée dans le service des fonctions pour OCI sous le nom helloworld-func et appartenant à l'application helloworld-app (voir Création, déploiement et appel d'une fonction Helloworld).

Note

Les exemples de cette section montrent l'utilisation de règles de sécurité dans les listes de sécurité pour contrôler l'accès. Si vous préférez les groupes de sécurité de réseau aux listes de sécurité, vous pouvez spécifier des règles de sécurité identiques pour les groupes de sécurité de réseau.

Exemple 1 : Exemple de configuration de ressources de réseau pour une passerelle d'API publique dans un sous-réseau public avec fonction sans serveur en tant qu'élément dorsal HTTP

Cet exemple suppose que vous voulez qu'une passerelle d'API publique accessible directement à partir d'Internet, avec une fonction sans serveur, serve d'élément dorsal HTTP.

Présente une passerelle d'API publique dans un sous-réseau public dans un réseau VCN. La passerelle API est connectée à Internet (au moyen d'une passerelle Internet) et à un élément dorsal à fonction sans serveur dans le service des fonctions pour OCI.

Pour réaliser cette configuration, créez les ressources suivantes dans l'ordre indiqué, avec les propriétés présentées dans le tableau Exemple de configuration de ressources ci-dessous :

  1. Un réseau VCN nommé 'acme-vcn1'.
  2. Une passerelle Internet nommée 'acme-internet-gateway'.
  3. Une table de routage nommée 'acme-routetable-public'.
  4. Une liste de sécurité nommée 'acme-security-list-public', comportant une règle de trafic entrant qui permet l'accès public à la passerelle d'API et une règle de trafic sortant qui permet l'accès au service des fonctions pour OCI.
  5. Un sous-réseau public nommé 'acme-public-subnet'.
  6. Une passerelle d'API nommée 'acme-public-gateway', avec un déploiement d'API nommé 'acme-public-deployment'.

L'émission d'une commande curl de l'Internet public vers le déploiement d'API retourne la réponse ci-dessous :


[user@machinename ~]$ curl -X GET https://lak...sjd.apigateway.us-phoenix-1.oci.customer-oci.com/marketing/hello

Hello, world!

Exemple de configuration de ressources de réseau

Ressource Exemple
Réseau en nuage virtuel

Créée manuellement et définie comme suit :

  • Nom : acme-vcn1
  • Bloc CIDR : 10.0.0.0/16
  • Résolution DNS : Sélectionnée
Passerelle Internet

Créée manuellement et définie comme suit :

  • Nom : acme-internet-gateway
Table de routage

Une table de routage créée manuellement, nommée et définie comme suit :

  • Nom : acme-routetable-public, avec une règle de routage définie comme suit :

    • Bloc CIDR de destination : 0.0.0.0/0
    • Type de cible : Passerelle Internet
    • Passerelle Internet cible : acme-internet-gateway
Options DHCP

Créées automatiquement et définies comme suit :

  • Type de DNS : Résolveur Internet et de réseau en nuage virtuel
Liste de sécurité

Une liste de sécurité créée manuellement (en plus de la liste de sécurité par défaut), nommée et définie comme suit :

  • Nom de la liste de sécurité : acme-security-list-public, comportant une règle de trafic entrant qui permet l'accès public à la passerelle d'API et une règle de trafic sortant qui permet l'accès au service des fonctions pour OCI.
  • Règle de trafic entrant 1 :
    • État : Avec état
    • Type de source : CIDR
    • CIDR source : 0.0.0.0/0
    • Protocole IP : TCP
    • Intervalle de ports sources : Tous
    • Intervalle de ports de destination : 443
  • Règle de trafic sortant 1 :
    • État : Avec état
    • Type de destination : CIDR
    • CIDR de destination : 0.0.0.0/0
    • Protocole IP : Tous les protocoles
Sous-réseau

Un sous-réseau public régional créé manuellement, nommé et défini comme suit :

  • Nom : acme-public-subnet avec les propriétés suivantes :

    • Bloc CIDR : 10.0.0.0/24
    • Table de routage : acme-routetable-public
    • Accès au sous-réseau : Public
    • Résolution DNS : Sélectionnée
    • Options DHCP : Par défaut
    • Liste de sécurité : acme-security-list-public
Passerelle d'API

Une passerelle d'API publique créée et définie comme suit :

  • Nom : acme-public-gateway
  • Type : Public
  • Réseau en nuage virtuel : acme-vcn1
  • Sous-réseau : acme-public-subnet
  • Nom d'hôte : (aux fins de cet exemple, le nom d'hôte est lak...sjd.apigateway.us-phoenix-1.oci.customer-oci.com)
Déploiement d'API

Un déploiement d'API créé et défini comme suit :

  • Nom : acme-public-deployment
  • Préfixe de chemin : /marketing
  • Politiques de demande d'API : Aucune spécifiée
  • Journalisation d'API : Aucune spécifiée
  • Route :
    • Chemin : /hello
    • Méthodes : GET
    • Type : Service des fonctions pour OCI
    • Application : helloworld-app
    • Nom de la fonction : helloworld-func

Exemple 2 : Configuration de ressources de réseau pour une passerelle d'API privée dans un sous-réseau privé avec une fonction sans serveur en tant qu'élément dorsal HTTP

Cet exemple suppose que vous voulez qu'une passerelle d'API privée accessible uniquement au moyen d'un hôte bastion (plutôt que directement à partir d'Internet), avec une fonction sans serveur, serve d'élément dorsal HTTP.

Présente une passerelle d'API privée dans un sous-réseau privé d'un réseau en nuage virtuel. La passerelle d'API est connectée à Internet (au moyen d'une passerelle NAT, d'un hôte bastion dans un sous-réseau public et d'une passerelle Internet) ainsi qu'à un élément dorsal à fonction sans serveur dans le service des fonctions pour OCI.

Pour réaliser cette configuration, créez les ressources suivantes dans l'ordre indiqué, avec les propriétés présentées dans le tableau Exemple de configuration de ressources ci-dessous :

  1. Un réseau VCN nommé acme-vcn2
  2. Une passerelle Internet nommée acme-internet-gateway
  3. Une passerelle de service nommée acme-service-gateway. (Dans cet exemple, vous ne devez créer qu'une passerelle de service, car la passerelle d'API ne dispose que d'un élément dorsal du service des fonctions pour OCI. Cependant, si la passerelle d'API a à la fois un élément dorsal du service des fonctions pour OCI et un élément dorsal HTTP sur le réseau Internet public, vous pouvez créer une passerelle NAT au lieu d'accéder aux deux éléments dorsaux.)
  4. Une table de routage nommée acme-routetable-private
  5. Une liste de sécurité nommée acme-security-list-private, comportant une règle de trafic entrant qui permet à l'hôte bastion d'accéder à la passerelle d'API et une règle de trafic sortant qui permet l'accès au service des fonctions pour OCI.
  6. Un sous-réseau privé nommé acme-private-subnet
  7. Une passerelle d'API nommée acme-private-gateway, avec un déploiement d'API nommé acme-private-deployment
  8. Une table de routage nommée acme-routetable-bastion
  9. Une liste de sécurité nommée acme-security-list-bastion, comportant une règle de trafic entrant qui permet l'accès SSH public à l'hôte bastion et une règle de trafic sortant qui permet à l'hôte bastion d'accéder à la passerelle d'API.
  10. Un sous-réseau public nommé acme-bastion-public-subnet
  11. Une instance de calcul avec une adresse IP publique servant d'hôte bastion, nommée acme-bastion-instance

Si vous disposez de SSH sur l'hôte bastion, l'émission d'une commande curl vers le déploiement de l'API retourne la réponse ci-dessous :


[user@machinename ~]$ ssh opc@198.51.100.254

[opc@acme-bastion-instance ~]$ curl -X GET https://pwa...djt.apigateway.us-phoenix-1.oci.customer-oci.com/marketing-private/hello

Hello, world!

Exemple de configuration de ressources

Ressource Exemple
Réseau en nuage virtuel

Créée manuellement et définie comme suit :

  • Nom : acme-vcn2
  • Bloc CIDR : 10.0.0.0/16
  • Résolution DNS : Sélectionnée
Passerelle Internet

Créée manuellement et définie comme suit :

  • Nom : acme-internet-gateway
Passerelle de service

Créée manuellement et définie comme suit :

  • Nom : acme-service-gateway
  • Services : All <region> Services dans Oracle Services Network
Tables de routage

Deux tables de routage créées manuellement, nommées et définies comme suit :

  • Nom : acme-routetable-bastion, avec une règle de routage définie comme suit :

    • Bloc CIDR de destination : 0.0.0.0/0
    • Type de cible : Passerelle Internet
    • Passerelle Internet cible : acme-internet-gateway
  • Nom : acme-routetable-private, avec une règle de routage définie comme suit :

    • Bloc CIDR de destination : 0.0.0.0/0
    • Type de cible : Passerelle de service
    • Service de destination : Tous les services de <region> dans Oracle Services Network
    • Passerelle de service cible : acme-service-gateway
Options DHCP

Créées automatiquement et définies comme suit :

  • Type de DNS : Résolveur Internet et de réseau en nuage virtuel
Liste de sécurité

Deux listes créées manuellement (en plus de la liste de sécurité par défaut), nommées et définies comme suit :

  • Nom de la liste de sécurité : acme-security-list-bastion, comportant une règle de trafic entrant qui permet l'accès SSH public à l'hôte bastion et une règle de trafic sortant qui permet à l'hôte bastion d'accéder à la passerelle d'API :

    • Règle de trafic entrant 1 :
      • État : Avec état
      • Type de source : CIDR
      • CIDR source : 0.0.0.0/0
      • Protocole IP : TCP
      • Intervalle de ports sources : Tous
      • Intervalle de ports de destination : 22
    • Règle de trafic sortant 1 :
      • État : Avec état
      • Type de destination : CIDR
      • CIDR de destination : 0.0.0.0/0
      • Protocole IP : Tous les protocoles
  • Nom de la liste de sécurité : acme-security-list-private, comportant une règle de trafic entrant qui permet à l'hôte bastion d'accéder à la passerelle d'API et une règle de trafic sortant qui permet l'accès au service des fonctions pour OCI :

    • Règle de trafic entrant 1 :
      • État : Avec état
      • Type de source : CIDR
      • CIDR source : 10.0.0.0/16
      • Protocole IP : TCP
      • Intervalle de ports sources : Tous
      • Intervalle de ports de destination : 443
    • Règle de trafic sortant 1 :
      • État : Avec état
      • Type de destination : CIDR
      • CIDR de destination : 0.0.0.0/0
      • Protocole IP : Tous les protocoles
Sous-réseau

Deux sous-réseaux régionaux créés manuellement, nommés et définis comme suit :

  • Nom : acme-bastion-public-subnet avec les propriétés suivantes :

    • Bloc CIDR : 10.0.1.0/24
    • Table de routage : acme-routetable-bastion
    • Accès au sous-réseau : Public
    • Résolution DNS : Sélectionnée
    • Options DHCP : Par défaut
    • Liste de sécurité : acme-security-list-bastion
  • Nom : acme-private-subnet avec les propriétés suivantes :

    • Bloc CIDR : 10.0.2.0/24
    • Table de routage : acme-routetable-private
    • Accès au sous-réseau : Privé
    • Résolution DNS : Sélectionnée
    • Options DHCP : Par défaut
    • Liste de sécurité : acme-security-list-private
Passerelle d'API

Une passerelle d'API privée créée et définie comme suit :

  • Nom : acme-private-gateway
  • Type : Privé
  • Réseau en nuage virtuel : acme-vcn2
  • Sous-réseau : acme-private-subnet
  • Nom d'hôte : (aux fins de cet exemple, le nom d'hôte est pwa...djt.apigateway.us-phoenix-1.oci.customer-oci.com)
Déploiement d'API

Un déploiement d'API créé et défini comme suit :

  • Nom : acme-private-deployment
  • Préfixe de chemin : /marketing-private
  • Politiques de demande d'API : Aucune spécifiée
  • Journalisation d'API : Aucune spécifiée
  • Route :
    • Chemin : /hello
    • Méthodes : GET
    • Type : Service des fonctions pour OCI
    • Application : helloworld-app
    • Nom de la fonction : helloworld-func
Instance

Une instance de calcul créée et définie comme suit :

  • Nom : acme-bastion-instance
  • Domaine de disponibilité : AD1
  • Type d'instance : Machine virtuelle
  • Réseau en nuage virtuel : acme-vcn2
  • Sous-réseau : acme-bastion-public-subnet
  • Affecter une adresse IP publique : Sélectionné (pour cet exemple, l'instance reçoit l'adresse IP 198.51.100.254)