

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 di API: condividi il tuo nome di dominio privato personalizzato utilizzando AWS RAM
<a name="apigateway-private-custom-domains-provider-share"></a>

Puoi fornire ai consumatori API un altro Account AWS accesso al tuo nome di dominio personalizzato privato. In questa sezione, imparerai 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
<a name="apigateway-private-custom-domains-provider-share-considerations"></a>

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 tuo nome di dominio personalizzato privato senza utilizzarlo AWS RAM, consulta[Provider API: condividi il tuo nome di dominio personalizzato privato utilizzando l'API Gateway AWS CLI](apigateway-private-custom-domains-provider-share-cli.md).
+ I nomi di dominio privati personalizzati vengono 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 all'endpoint VPC del consumatore dell'API l'accesso all'endpoint VPC per richiamare il tuo nome di dominio privato personalizzato e qualsiasi mappatura privata APIs su di esso.
+ Se il consumatore e il provider dell'API fanno parte della stessa organizzazione che utilizza l'API AWS Organizations, la condivisione delle risorse viene accettata automaticamente. È comunque necessario creare la condivisione di risorse tramite AWS RAM.
+ Se il consumatore di API e il provider di API fanno parte della stessa organizzazione AWS Organizations e la condivisione delle risorse all'interno dell'organizzazione è abilitata, a tutti i responsabili dell'organizzazione con cui si condivide la condivisione 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 di risorse, AWS RAM aggiorna il `managementPolicy` servizio Amazon API Gateway Management per il tuo nome di dominio privato personalizzato per impedire l'accesso ai principali senza accesso esplicito`allow`. Per ulteriori informazioni, consulta [Determining whether a request is allowed or denied within an account](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow) 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 privato personalizzato, aggiungendo quanto segue:

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

  È comunque possibile utilizzare il nome principale di Account AWS chi 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
<a name="apigateway-private-custom-domains-provider-management-policy-update"></a>

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

------
#### [ Console di gestione AWS ]

Per utilizzare il Console di gestione AWS, consulta [Creazione di una condivisione di risorse AWS RAM nella](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-create.html) *Guida AWS RAM per l'utente*.

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

------
#### [ AWS CLI ]

Di seguito [create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html)viene creata una condivisione di risorse per il 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](apigateway-private-custom-domains-consumer-create.md#apigateway-private-custom-domains-consumer-associate).

## Consentire ad altri account di invocare il nome di dominio personalizzato privato
<a name="apigateway-private-custom-domains-provider-policy-update"></a>

Successivamente, concedi l'accesso all'endpoint VPC del consumatore dell'API per richiamare il tuo nome di dominio privato personalizzato e qualsiasi nome privato mappato APIs su di 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.](https://console.aws.amazon.com/apigateway)

1. Nel pannello di navigazione principale, scegli **Nomi di dominio personalizzati**.

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

1. Nella scheda **Policy delle risorse**, scegli **Modifica policy delle risorse**.

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

1. 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 [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html)comando seguente utilizza un'operazione di patch `policy` per aggiornare il 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\"]}}}]}"
```

------