Utilizzo di policy di endpoint VPC per API private in API Gateway
È possibile creare una policy di endpoint VPC per migliorare la sicurezza dell'API privata. Una policy di endpoint VPC è una policy delle risorse IAM che è possibile allegare all'endpoint VPC. Per ulteriori informazioni, consulta Controllo dell'accesso ai servizi con endpoint VPC.
È possibile creare una policy di endpoint VPC per eseguire le seguenti attività.
Consentire solo a determinate organizzazioni o risorse di accedere all'endpoint VPC e invocare l'API.
Utilizzare un'unica policy ed evitare le policy basate sulla sessione o sul ruolo per controllare il traffico verso l'API.
Rafforzare il perimetro di sicurezza dell'applicazione durante la migrazione da on-premisesse a AWS.
Considerazioni sulla policy degli endpoint VPC
Di seguito sono riportate alcune considerazioni sulla policy di endpoint VPC:
-
L'identità dell'invoker viene valutata in base al valore dell'intestazione
Authorization
. La policy di endpoint VPC viene valutata per prima, quindi Gateway API valuta la richiesta, in base al tipo di autorizzazione configurato nella richiesta di metodo. La tabella seguente mostra come viene valutata la policy di endpoint VPC in base al contenuto del valore dell’intestazioneAuthorization
.Contenuto del valore dell’intestazione
Authorization
Come viene valutata la policy di endpoint VPC
Nessun contenuto L’invoker viene valutato come utente anonimo Firma SigV4 o SigV4a valida L’invoker viene valutato come identità IAM autenticata dalla firma Firma SigV4 o SigV4a non valida Gateway API nega l’accesso Informazioni di autorizzazione non SigV4, ad esempio un token di connessione L’invoker viene valutato come utente anonimo -
Se il controllo degli accessi dipende dall’utilizzo di un token di connessione, come un sistema di autorizzazione Lambda o Amazon Cognito, è possibile controllare il perimetro di sicurezza utilizzando le proprietà della risorsa.
-
Se i controlli di autorizzazione utilizzano l’autorizzazione IAM, è possibile controllare il perimetro di sicurezza utilizzando le proprietà della risorsa e le proprietà del principale.
-
Le policy di endpoint VPC possono essere utilizzate insieme alle policy di risorse API Gateway. La policy delle risorse Gateway API specifica quali principali possono accedere all'API. La policy di endpoint specifica chi può accedere al VPC e quali API possono essere chiamate dall'endpoint VPC. L'API privata richiede una policy delle risorse, ma non è necessario creare una policy di endpoint VPC personalizzata.
Esempi di policy di endpoint VPC
È possibile creare le policy degli endpoint Amazon Virtual Private Cloud per Gateway Amazon API in cui specificare quanto segue.
-
Il principale che può eseguire azioni.
-
Le operazioni che possono essere eseguite.
-
Le risorse su cui è possibile eseguire le operazioni.
Ciò potrebbe dipendere dal contenuto dell’intestazione dell’autorizzazione. Per ulteriori informazioni, consulta Considerazioni sulla policy degli endpoint VPC. Per ulteriori policy di esempio, consulta Data perimeter policy examples
Per collegare la policy all'endpoint VPC, è necessario utilizzare la console VPC. Per ulteriori informazioni, consulta Controllo dell'accesso ai servizi con endpoint VPC.
Esempio 1: policy di endpoint VPC che concede l'accesso a due API
L'esempio di policy seguente concede l'accesso solo a due API specifiche tramite l'endpoint VPC a cui è collegata la policy.
{ "Statement": [ { "Principal": "*", "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:
us-east-1
:123412341234
:a1b2c3d4e5
/*", "arn:aws:execute-api:us-east-1
:123412341234
:aaaaa11111
/*" ] } ] }
Esempio 2: policy di endpoint VPC che concede l'accesso a metodi GET
L'esempio di policy seguente concede agli utenti l'accesso ai metodi GET
per un'API specifica tramite l'endpoint VPC a cui è collegata l'API.
{ "Statement": [ { "Principal": "*", "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:
us-east-1
:123412341234
:a1b2c3d4e5
/stageName
/GET/*" ] } ] }
Esempio 3: policy di endpoint VPC che concede a un utente specifico l'accesso a un'API specifica
L'esempio di policy seguente concede a un utente specifico l'accesso a un'API specifica tramite l'endpoint VPC a cui è collegata la policy.
In questo caso, poiché la policy limita l'accesso a specifici principali IAM, è necessario impostare il valore di authorizationType
del metodo su AWS_IAM
o NONE
.
{ "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::123412341234:user/
MyUser
" ] }, "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:us-east-1
:123412341234
:a1b2c3d4e5
/*" ] } ] }
Esempio 4: policy di endpoint VPC che fornisce agli utenti l'accesso a uno specifico nome di dominio personalizzato e a tutte le API mappate al dominio
La seguente policy di esempio fornisce agli utenti l'accesso a uno specifico nome di dominio personalizzato per API private tramite l'endpoint VPC a cui è collegata la policy. Con questa policy un utente può invocare qualsiasi API mappata al nome di dominio personalizzato, purché abbia creato un'associazione di accesso al nome di dominio tra l'endpoint VPC e il nome di dominio personalizzato e disponga dell'accesso per invocare il nome di dominio personalizzato e qualsiasi API privata mappata al nome di dominio personalizzato. Per ulteriori informazioni, consulta Nomi di dominio personalizzati per API private in Gateway API.
{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "execute-api:Invoke", "Resource": [ "*" ], "Condition": { "ArnEquals": { "execute-api:viaDomainArn": "arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.test.com+f4g5h6", } } } ] }
Esempio 5: policy di endpoint VPC che fornisce o nega l'accesso ad API e risorse di dominio specifiche
La seguente policy di esempio fornisce agli utenti l'accesso ad API e risorse di dominio specifiche. Con questa policy un utente può invocare le API private e le risorse di dominio consentite, purché abbia creato un'associazione di accesso al nome di dominio tra l'endpoint VPC e il nome di dominio personalizzato e disponga dell'accesso per invocare il nome di dominio personalizzato e qualsiasi API privata mappata al nome di dominio personalizzato. Per ulteriori informazioni, consulta Nomi di dominio personalizzati per API private in Gateway API.
{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.test.com+f4g5h6", "arn:aws:execute-api:us-west-2:111122223333:a1b2c3d4e5/*" ] }, { "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:us-west-2:111122223333:a1b2c3d4e5/admin/*", "arn:aws:execute-api:us-west-2:111122223333:bcd123455/*" ] } ] }
Esempio 6: policy di endpoint VPC che fornisce o nega l’accesso a principali e risorse di un’organizzazione
La seguente policy di esempio fornisce l’accesso ai principali e alle risorse di un’organizzazione.