Tutorial: crea un account privato REST API - Amazon API Gateway

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: crea un account privato REST API

In questo tutorial, crei un file privato RESTAPI. I clienti possono accedere API solo dall'interno del tuo AmazonVPC. APIÈ isolato dalla rete Internet pubblica, che è un requisito di sicurezza comune.

Il completamento di questa esercitazione richiede circa 30 minuti. Innanzitutto, utilizzi un AWS CloudFormation modello per creare un AmazonVPC, un VPC endpoint, una AWS Lambda funzione e avviare un'EC2istanza Amazon che utilizzerai per testare la tuaAPI. Successivamente, usi il AWS Management Console per creare una politica privata API e allegare una politica delle risorse che consenta l'accesso solo dal tuo VPC endpoint. Infine, metti alla prova il tuo. API

Panoramica del privato API che crei in questo tutorial.

Per completare questo tutorial, sono necessari un AWS account e un AWS Identity and Access Management utente con accesso alla console. Per ulteriori informazioni, consulta Configurazione per l'utilizzo di API Gateway.

In questo tutorial utilizzerai AWS Management Console. Per un AWS CloudFormation modello che crea questa API e tutte le risorse correlate, vedi template.yaml.

Fase 1: Creare dipendenze

Scarica e decomprimi questo modello. AWS CloudFormation Utilizzi il modello per creare tutte le dipendenze per il tuo ambiente privatoAPI, tra cui un AmazonVPC, un VPC endpoint e una funzione Lambda che funge da backend del tuo. API Il privato lo crei in un secondo momento. API

Per creare una AWS CloudFormation pila
  1. Apri la AWS CloudFormation console all'indirizzo https://console.aws.amazon.com/cloudformation.

  2. Scegliere Create stack (Crea stack), quindi With new resources (standard) (Con nuove risorse (standard)).

  3. In Specificare modello, scegliere Carica un file modello.

  4. Selezionare il modello scaricato.

  5. Seleziona Successivo.

  6. Per Stack name (Nome stack), inserire private-api-tutorial, quindi scegliere Next (Avanti).

  7. Per Configure stack options (Configura opzioni di stack), scegliere Next (Successivo).

  8. Per quanto riguarda le funzionalità, riconosci che AWS CloudFormation puoi creare IAM risorse nel tuo account.

  9. Scegli Invia.

AWS CloudFormation fornisce le tue dipendenzeAPI, operazione che può richiedere alcuni minuti. Quando lo stato del tuo AWS CloudFormation stack è CREATE_ COMPLETE, scegli Outputs. Prendi nota del tuo ID VPC endpoint. È necessario per le fasi successive di questo tutorial.

Passaggio 2: crea un account privato API

Crei un account privato API per consentire l'accesso solo VPC ai tuoi clienti.

Per creare un account privato API
  1. Accedere alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.

  2. Scegli Crea API, quindi scegli Build. RESTAPI

  3. Per APInome, inserisciprivate-api-tutorial.

  4. Per il tipo di API endpoint, seleziona Privato.

  5. Per VPCendpoint IDs, inserisci l'ID dell'VPCendpoint dagli output del tuo stack. AWS CloudFormation

  6. Scegli Crea. API

Fase 3: Creare un metodo e un'integrazione

Crei un GET metodo e un'integrazione Lambda per gestire GET le richieste al tuo. API Quando un client richiama la tuaAPI, API Gateway invia la richiesta alla funzione Lambda creata nel passaggio 1, quindi restituisce una risposta al client.

Per creare un metodo e un'integrazione
  1. Accedere alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.

  2. Scegli il tuo API.

  3. Scegli Crea metodo.

  4. Per Tipo di metodo seleziona GET.

  5. Per Tipo di integrazione seleziona Funzione Lambda.

  6. Attiva l'opzione Integrazione proxy Lambda. Con l'integrazione del proxy Lambda, API Gateway invia un evento a Lambda con una struttura definita e trasforma la risposta dalla funzione Lambda in una risposta. HTTP

  7. Per la funzione Lambda, scegli la funzione che hai creato con il AWS CloudFormation modello nel passaggio 1. Il nome della funzione inizia con private-api-tutorial.

  8. Scegli Crea metodo.

Fase 4: Allegare una policy sulle risorse

Alleghi alla tua una politica delle risorse API che consente ai clienti di richiamarti API solo tramite il tuo endpoint. VPC Per limitare ulteriormente l'accesso al tuo API dispositivo, puoi anche configurare una VPCpolicy per gli VPC endpoint, ma non è necessario per questo tutorial.

Per allegare una policy sulle risorse
  1. Accedi alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.

  2. Scegli il tuo API.

  3. Scegli Policy delle risorse, quindi seleziona Crea policy.

  4. Immetti la seguente policy. Replace (Sostituisci) vpceID con il tuo ID VPC endpoint ricavato dagli output del tuo AWS CloudFormation stack.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/*", "Condition": { "StringNotEquals": { "aws:sourceVpce": "vpceID" } } }, { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/*" } ] }
  5. Seleziona Salvataggio delle modifiche.

Fase 5: Implementa il tuo API

Successivamente, distribuisci il tuo API per renderlo disponibile ai clienti nel tuo AmazonVPC.

Per distribuire un API
  1. Accedere alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.

  2. Scegli il tuo API.

  3. Seleziona Deploy (Implementa)API.

  4. In Fase, seleziona Nuova fase.

  5. In Stage name (Nome fase) immettere test.

  6. (Facoltativo) In Description (Descrizione), immettere una descrizione.

  7. Seleziona Deploy (Implementa).

Ora sei pronto per testare il tuoAPI.

Passo 6: Verifica che il tuo API non sia accessibile al pubblico

curlUtilizzalo per verificare che non puoi richiamare il tuo API dall'esterno di AmazonVPC.

Per testare il tuo API
  1. Accedi alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.

  2. Scegli il tuo API.

  3. Nel pannello di navigazione principale scegli Fasi, quindi seleziona la fase test.

  4. In Stage details, scegli l'icona di copia per copiare API la tua chiamata. URL URLSembrahttps://abcdef123.execute-api.us-west-2.amazonaws.com/test. L'VPCendpoint che hai creato nel passaggio 1 è DNS abilitato in modalità privata, quindi puoi utilizzare il provider URL per richiamare il tuo. API

  5. Usa curl per tentare di invocare il tuo API dall'esterno del tuo. VPC

    curl https://abcdef123.execute-api.us-west-2.amazonaws.com/test

    Curl indica che il tuo endpoint API non può essere risolto. Se ricevi una risposta diversa, torna allo Step 2 e assicurati di scegliere Privato come tipo API di endpoint che utilizzi.

    curl: (6) Could not resolve host: abcdef123.execute-api.us-west-2.amazonaws.com/test

Successivamente, ti connetti a un'EC2istanza Amazon del tuo computer VPC per richiamare il tuoAPI.

Passaggio 7: Connettiti a un'istanza nel tuo VPC e richiama il API

Successivamente, esegui il test API all'interno del tuo AmazonVPC. Per accedere al tuo account privatoAPI, ti connetti a un'EC2istanza Amazon nel tuo VPC e poi usi curl per richiamare il tuo. API Per connettersi all'istanza nel browser, si utilizza Systems Manager Session Manger.

Per testare il tuo API
  1. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Seleziona Instances (Istanze).

  3. Scegli l'istanza denominata private-api-tutorialche hai creato con il AWS CloudFormation modello nel passaggio 1.

  4. Scegliere Connect (Connetti), quindi Session Manager (Gestore di sessione).

  5. Scegliere Connect per avviare una sessione basata su browser nell'istanza.

  6. Nella tua sessione di Session Manager, usa curl per richiamare il tuo. API Puoi richiamare il tuo API perché stai utilizzando un'istanza nel tuo AmazonVPC.

    curl https://abcdef123.execute-api.us-west-2.amazonaws.com/test

    Verificare di ottenere la risposta Hello from Lambda!.

Utilizzi Session Manager per richiamare il tuo modulo API all'interno di AmazonVPC.

Hai creato con successo un API account accessibile solo dall'interno del tuo Amazon VPC e poi ne hai verificato il funzionamento.

Fase 8: Pulizia

Per evitare costi non necessari, eliminare le risorse create nell'ambito di questo tutorial. I passaggi seguenti eliminano il tuo REST API e il tuo AWS CloudFormation stack.

Per eliminare un REST API
  1. Accedere alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.

  2. Nella APIspagina, seleziona unAPI. Scegliete APIle azioniAPI, scegliete Elimina e confermate la scelta.

Per eliminare una AWS CloudFormation pila
  1. Apri la AWS CloudFormation console all'indirizzo https://console.aws.amazon.com/cloudformation.

  2. Seleziona il tuo AWS CloudFormation stack.

  3. Scegli Elimina e conferma la tua scelta.

Passaggi successivi: automatizza con AWS CloudFormation

Puoi automatizzare la creazione e la pulizia di tutte le AWS risorse coinvolte in questo tutorial. Per un modello AWS CloudFormation di esempio completo, consulta template.yaml.