View a markdown version of this page

Provider API: condividi il tuo nome di dominio personalizzato privato utilizzando AWS RAM - Gateway Amazon API

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à.

Provider API: condividi il tuo nome di dominio personalizzato privato utilizzando AWS RAM

Puoi fornire ai consumatori di API un altro Account AWS accesso al tuo nome di dominio personalizzato privato. In questa sezione, scopri come condividere il tuo nome di dominio personalizzato privato utilizzando 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 sapere come condividere il tuo nome di dominio personalizzato privato senza utilizzarlo AWS RAM, consultaProvider API: condividi il tuo nome di dominio personalizzato privato utilizzando l'API Gateway AWS CLI.

  • I nomi di dominio personalizzati privati sono condivisi a Regione AWS livello. 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 fornitore dell'API fanno parte della stessa organizzazione che utilizza AWS Organizations, la condivisione delle risorse viene accettata automaticamente. È comunque necessario creare la condivisione di risorse tramite AWS RAM.

  • Se il consumatore e il fornitore di API fanno parte della stessa organizzazione che utilizza AWS Organizations e la condivisione delle risorse all'interno dell'organizzazione è abilitata, a tutti i principali dell'organizzazione con cui si condivide viene automaticamente concesso l'accesso alle condivisioni di risorse. 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 delle risorse, AWS RAM aggiorna il managementPolicy servizio Amazon API Gateway Management per il tuo nome di dominio personalizzato privato per impedire l'accesso ai principali senza accesso esplicitoallow. 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", "Id": "abcd1234-1234-abcd-abcd-1234abcdefg", "Statement": [ { "Sid": "APIGatewayPrivateDomainNameManagementPolicyDefaultPermission-org", "Effect": "Allow", "Principal": "*", "Action": "apigateway:CreateAccessAssociation", "Resource": "arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-1234abcd" }, "StringNotEquals": { "aws:PrincipalAccount": "111122223333" } } } ] }

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

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

    Puoi comunque utilizzare il principale indicato nella Account AWS persona che ha creato il nome di dominio personalizzato privato per creare associazioni di accesso ai nomi di dominio.

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

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

Console di gestione AWS

Per utilizzare il Console di gestione AWS, consulta Creazione di una condivisione di risorse AWS RAM nella Guida AWS RAM per l'utente.

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.

Console di gestione AWS
Per consentire agli endpoint VPC in altri account di invocare il nome di dominio personalizzato privato
  1. Accedi 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\"]}}}]}"