Provider di API: condivisione del nome di dominio personalizzato privato tramite AWS RAM - Amazon API Gateway

Provider di API: condivisione del nome di dominio personalizzato privato tramite AWS RAM

Puoi consentire ai consumatori dell'API in altri Account AWS di accedere al tuo nome di dominio personalizzato privato. In questa sezione, scoprirai come condividere il tuo nome di dominio personalizzato privato tramite AWS RAM e come controllare l'accesso al tuo nome di dominio personalizzato privato.

Considerazioni sulla condivisione del nome di dominio personalizzato privato

Le seguenti considerazioni potrebbero influire sul modo in cui fornisci l'accesso al tuo nome di dominio personalizzato privato tramite AWS RAM. Per informazioni su come condividere il nome di dominio personalizzato privato senza utilizzare AWS RAM, consulta Provider di API: condivisione del nome di dominio personalizzato privato tramite la AWS CLI di Gateway API .

  • I nomi di dominio personalizzati privati vengono condivisi a livello di Regione AWS. Il nome di dominio personalizzato privato e l'endpoint VPC devono trovarsi nello stesso Regione AWS.

  • Puoi utilizzare una condivisione di risorse con più principali e, dopo aver creato la condivisione di risorse, aggiungervi altri principali. È consigliabile riutilizzare la condivisione di risorse, quando possibile.

  • Devi sempre concedere l'accesso all'endpoint VPC del consumatore di API per invocare il nome di dominio personalizzato privato e le API private mappate a esso.

  • Se il consumatore e il provider di API fanno parte della stessa organizzazione tramite AWS Organizations, la condivisione di risorse viene accettata automaticamente. È comunque necessario creare la condivisione di risorse tramite AWS RAM.

  • Se il consumatore e il provider di API fanno parte della stessa organizzazione tramite AWS Organizations e la condivisione di risorse all'interno dell'organizzazione è abilitata, viene automaticamente concesso l'accesso alle condivisioni di risorse a tutti i principali dell'organizzazione con cui è attiva la condivisione. Non è necessario un invito e puoi evitare la condivisione di risorse.

  • Se il consumatore di API non accetta la condivisione di risorse entro 12 ore, il provider di API deve condividere nuovamente la risorsa.

  • Dopo aver creato la condivisione di risorse, AWS RAM aggiorna la managementPolicy per il servizio di gestione di Gateway Amazon API per il tuo nome di dominio personalizzato privato per impedire l'accesso ai principali senza un esplicito allow. Per ulteriori informazioni, consulta Determining whether a request is allowed or denied within an account nella Guida per l'utente di IAM.

    La managementPolicy aggiornata sarà simile alla seguente:

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ] }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ], "Condition" : { "StringNotEquals": { "aws:SourceVpce": "vpce-abcd1234" } } } ] }

    AWS RAM ha impedito ai principali senza accesso allow esplicito di creare associazioni di accesso con il tuo nome di dominio personalizzato privato, aggiungendo quanto segue:

    "StringNotEquals": { "aws:PrincipalAccount": "111122223333" }

    È comunque possibile utilizzare il principale nell'Account AWS che ha creato il nome di dominio personalizzato privato per creare associazioni di accesso al nome di dominio.

Consentire ad altri account di creare associazioni di accesso ai nomi di dominio con il tuo nome di dominio personalizzato privato

Prima di tutto, concedi l'accesso a un altro Account AWS per creare associazioni di accesso ai nomi di dominio con il tuo nome di dominio personalizzato privato.

AWS Management Console

Per utilizzare la AWS Management Console, consulta Creating a resource share in AWS RAM nella Guida per l'utente di AWS RAM.

In Seleziona il tipo di risorsa, scegli Domini personalizzati privati Gateway API.

AWS CLI

Il seguente comando create-resource-share crea una condivisione di risorse per il tuo nome di dominio personalizzato privato. Il completamento dell'associazione tra la risorsa e il principale può richiedere alcuni minuti. Per i principali, fornisci un ID account o un ID organizzazione, ad esempio arn:aws:organizations::123456789012:organization/o-1234abcd. Puoi fornire più principali per la condivisione di risorse.

aws ram create-resource-share \ --region us-west-2 \ --name privateCustomDomain-resource-share \ --permission-arns arn:aws:ram::aws:permission/APIGatewayPrivateDomainNameManagementPolicyDefaultPermission \ --resource-arns arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234 \ --principals 222222222222

Dopo aver fornito l'accesso a un altro Account AWS, i consumatori di API di quell'account devono creare un'associazione di accesso al nome di dominio tra il loro endpoint VPC e il tuo nome di dominio personalizzato privato. Non puoi creare l'associazione di accesso al nome di dominio al loro posto. Per ulteriori informazioni, consulta Associazione dell'endpoint VPC a un nome di dominio personalizzato privato condiviso.

Consentire ad altri account di invocare il nome di dominio personalizzato privato

Successivamente, concedi l'accesso all'endpoint VPC del consumatore di API per invocare il tuo nome di dominio personalizzato privato e le API private mappate ad esso.

AWS Management Console
Per consentire agli endpoint VPC in altri account di invocare il nome di dominio personalizzato privato
  1. Accedere alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.

  2. Nel pannello di navigazione principale, scegli Nomi di dominio personalizzati.

  3. Scegli il nome di dominio personalizzato privato che hai condiviso con altri Account AWS.

  4. Nella scheda Policy delle risorse, scegli Modifica policy delle risorse.

  5. Aggiungi l'ID dell'endpoint VPC del consumatore di API alla tua policy delle risorse.

    Puoi trovare l'ID dell'endpoint VPC del consumatore di API nella sezione Associazioni di accesso ai nomi di dominio della scheda Condivisione delle risorse nella pagina Dettagli del dominio del tuo nome di dominio personalizzato privato.

  6. Scegli Save changes (Salva modifiche).

AWS CLI

La seguente policy per il servizio execute-api consente il traffico in entrata verso un nome di dominio personalizzato privato dagli endpoint VPC vpce-abcd1234efg e vpce-xyz000abc.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ] }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ], "Condition" : { "StringNotEquals": { "aws:SourceVpce": [ "vpce-abcd1234", "vpce-xyzz0000" ] } } } ] }

Il seguente comando update-domain-name utilizza un'operazione di patch per aggiornare la policy per un nome di dominio personalizzato privato:

aws apigateway update-domain-name --domain-name private.example.com \ --domain-name-id abcd1234 \ --patch-operations op=replace,path=/policy,value='"{\"Version\": \"2012-10-17\",\"Statement\": [{\"Effect\": \"Allow\",\"Principal\": \"*\",\"Action\": \"execute-api:Invoke\",\"Resource\":[\"execute-api:/*\"]},{\"Effect\": \"Deny\",\"Principal\": \"*\",\"Action\": \"execute-api:Invoke\",\"Resource\":[\"execute-api:/*\"],\"Condition\":{\"StringNotEquals\":[\"vpce-abcd1234efg\", \"vpce-xyz000abc\"]}}}]}"