Usando AWS re:Post, accetti AWS re:Post Termini di utilizzo

Come posso utilizzare un Application Load Balancer o un Network Load Balancer per richiamare un'API privata API Gateway?

5 minuti di lettura
0

Desidero configurare la mia API privata Amazon API Gateway come obiettivo di un sistema di bilanciamento del carico. Di conseguenza, desidero utilizzare un account AWS per accedere alla mia API privata da un Application Load Balancer o da un Network Load Balancer.

Risoluzione

Per accedere alla API privata tramite AWS Direct Connect o Amazon Route 53, consulta Invoke a private API. Puoi anche utilizzare un endpoint cloud privato virtuale (VPC) di interfaccia per accedere a una REST API privata API Gateway in un altro account AWS.

La soluzione seguente utilizza un indirizzo IP di interfaccia di rete elastica dell'endpoint Amazon Virtual Private Cloud (Amazon VPC). Con questo indirizzo IP, puoi aggiungere la tua API privata come destinazione al sistema di bilanciamento del carico.

Importante: API Gateway non supporta nomi di dominio personalizzati per le API private. Per aggirare il problema, puoi richiamare e collegare il dominio a un sistema di bilanciamento del carico. Quindi, utilizza la seguente configurazione per richiamare l'API privata.

Creazione di un endpoint Amazon VPC

Completa i seguenti passaggi:

  1. Apri la console Amazon VPC.
  2. Seleziona Endpoint, poi Crea endpoint.
  3. Inserisci le seguenti informazioni:
    In Servizi, scegli com.amazonaws.com.your-region.execute-api.
    In VPC, scegli il tuo Amazon VPC.
    In Sottoreti, scegli due sottoreti in diverse zone di disponibilità (ID AZ).
    Nota: se hai già degli endpoint Amazon VPC configurati nel tuo VPC con execute-api, disattiva il DNS privato.
  4. Scegli Crea endpoint.
  5. Seleziona il tuo endpoint, scegli le sottoreti, quindi copia l'indirizzo IP.

Per ulteriori informazioni, consulta Private REST APIs in API Gateway.

Creazione di una REST API privata e concessione dell'autorizzazione all'endpoint VPC Amazon

Completa i seguenti passaggi:

  1. Apri la console API Gateway, quindi scegli Crea API.
  2. In REST API scegli Crea.
  3. In Impostazioni, inserisci le seguenti informazioni:
    In Nome API, inserisci un nome per l'API.
    In Tipo di endpoint, scegli Privato.
    In ID dell'endpoint, inserisci l'ID dell'endpoint che hai creato.
  4. Scegli Crea API.
  5. Nel riquadro di navigazione, seleziona Policy delle risorse.
  6. Inserisci la seguente policy:
    {
      "Version": "2012-10-17",  "Statement": [
        {
          "Effect": "Deny",
          "Principal": "*",
          "Action": "execute-api:Invoke",
          "Resource": "arn:aws:execute-api:us-east-1:ACCOUNT_ID:API_ID/*/*/*",
          "Condition": {
            "StringNotEquals": {
              "aws:SourceVpce": "vpce-081234d1ad408e"
            }
          }
        },
        {
          "Effect": "Allow",
          "Principal": "*",
          "Action": "execute-api:Invoke",
          "Resource": "arn:aws:execute-api:us-east-1:ACCOUNT_ID:API_ID/*/*/*"
        }
      ]
    }
    Nota: sostituisci vpce-081234d1ad408e con il tuo ID endpoint VPC. Inoltre, sostituisci arn:aws:execute-api:us-east-1:ACCOUNT_ID:API_ID con il nome della risorsa Amazon (ARN) della tua API.
  7. Scegli Salva.

Creazione o importazione un certificato pubblico di AWS Certificate Manager

È possibilerichiedere un certificato pubblico o importare un certificato.

Creazione di un Application Load Balancer o Network Load Balancer

È possibile creare un Application Load Balancer o un Network Load Balancer.

Creazione di un gruppo di destinazione

Completa i seguenti passaggi:

  1. Apri la console Amazon Elastic Compute Cloud (Amazon EC2).
  2. Nel riquadro di navigazione, in Bilanciamento del carico, scegli Sistema di bilanciamento del carico, quindi seleziona Gruppi di destinazione.
  3. Scegli Crea gruppo di destinazione.
  4. Inserisci le seguenti informazioni:
    Per il tipo di destinazione, seleziona Indirizzi IP.
    In Nome gruppo di destinazione, inserisci un nome.
    Application Load Balancer
    Per Protocollo, seleziona HTTPS.
    Per Porta, seleziona 443.
    Per VPC, seleziona il tuo VPC.
    In Percorso del controllo dell’integrità, inserisci «/» e in Codici esito positivo, inserisci 200,403 in modo che l'endpoint VPC venga visualizzato come Integro.
    Network Load Balancer
    Per Protocollo, scegli TLS.
    Per Porta, seleziona 443.
    Per VPC, seleziona il tuo VPC.
  5. Scegli Avanti.
  6. In Specifica IP, inserisci l'indirizzo IP che hai copiato nella sezione Creazione di un'interfaccia dell’endpont Amazon VPC. Quindi, scegli Aggiungi indirizzo IPv4.
  7. Scegli Crea gruppo di destinazione.

Configurazione del bilanciatore del carico

Completa i seguenti passaggi:

  1. Apri la console EC2.
  2. Nel riquadro di navigazione, seleziona Sistemi di bilanciamento del carico, quindi seleziona Crea sistema di bilanciamento del carico.
    Application Load Balancer
    In Schema, scegli Connessione internet o Interno, a seconda della configurazione.
    Per Protocollo, seleziona HTTPS.
    Per VPC e sottoreti, seleziona il tuo VPC e le sottoreti.
    Network Load Balancer
    In Schema, scegli Connessione internet o Interno, a seconda della configurazione.
    Per Protocollo, scegli TLS.
    Per VPC e sottoreti, seleziona il tuo VPC e le sottoreti.
    Per Politica di sicurezza, seleziona il criterio predefinito ELBSecurityPolicy-TLS (consigliato).
    Per il certificato SSL/TLS predefinito, scegli Da ACM.
    Scegli Seleziona un certificato, quindi seleziona il tuo certificato.
  3. Scegli Crea bilanciatore del carico.
    Nota: Gli obiettivi del sistema di bilanciamento del carico si trovano negli indirizzi IP dell'interfaccia di rete elastica creata dall'endpoint VPC. Per trovare queste interfacce di rete elastiche, seleziona il tuo endpoint VPC, quindi apri la scheda Sottoreti.

Crea un record in una zona ospitata pubblica o privata di Amazon Route 53

Crea una zona ospitata pubblica o una zona ospitata privata. Quindi, crea un record CNAME o un record alias e associalo al tuo Application Load Balancer o Network Load Balancer.

Creazione di un dominio personalizzato

Crea un dominio personalizzato nella console API Gateway. Quindi, mappa l'API Private Rest nel dominio personalizzato.

Test

Per i sistemi di bilanciamento del carico pubblici, puoi effettuare una richiesta di curl dalla macchina locale. Per i sistemi di bilanciamento del carico privati, avvia una nuova istanza EC2 in una delle sottoreti del tuo sistema di bilanciamento del carico. Quindi, effettua una richiesta curl simile all’esempio seguente:

curl -v https://{custom-domain-name}/<resource-path>

Una richiesta riuscita restituisce un codice di risposta 200 OK. Una richiesta non riuscita restituisce un codice di risposta 403 Forbidden o un errore di risoluzione DNS. In caso di problemi, consulta Troubleshoot your Application Load Balancers.

Informazioni correlate

Come faccio a connettermi a un gateway API privato tramite una connessione Direct Connect?

Come posso risolvere i problemi durante la connessione a un endpoint API privato di API Gateway?

Monitor REST API execution with Amazon CloudWatch metrics

Set up CloudWatch logging for REST APIs in API Gateway