

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 l'API Gateway AWS CLI
<a name="apigateway-private-custom-domains-provider-share-cli"></a>

Puoi condividere un nome di dominio privato personalizzato utilizzando l'API Gateway AWS CLI, ma ti consigliamo di AWS RAM utilizzarlo per ridurre il sovraccarico operativo. Per istruzioni su come AWS RAM condividere il tuo nome di dominio personalizzato privato, consulta[Provider di API: condividi il tuo nome di dominio privato personalizzato utilizzando AWS RAM](apigateway-private-custom-domains-provider-share.md).

Per condividere un nome di dominio privato personalizzato utilizzando l'API Gateway AWS CLI, concedi ad altri Account AWS l'accesso per creare associazioni di accesso ai nomi di dominio e richiamare il tuo nome di dominio personalizzato privato. A tale scopo, è necessario aggiornare la `managementPolicy` del servizio di gestione di Gateway API e la `policy` per il servizio `execute-api` per il tuo nome di dominio personalizzato privato. È inoltre necessario concedere l'accesso all'endpoint VPC del consumatore dell'API nella politica delle risorse per qualsiasi APIs mappato privato al nome di dominio personalizzato privato.

Il consumatore di API dovrà comunque creare un'associazione di accesso al nome di dominio tra il suo endpoint VPC e il tuo nome di dominio personalizzato privato. Non puoi farlo tu al suo posto.

## Concedere l'accesso al nome di dominio personalizzato privato
<a name="apigateway-private-custom-domains-provider-share-cli-allow"></a>

**Per concedere l'accesso al tuo nome di dominio personalizzato privato**

1. Per aggiornare la `managementPolicy` del servizio di gestione di Gateway API, è necessario creare un file JSON contenente l'operazione di patch per l'aggiornamento della policy. Quanto segue `patch-managementPolicy.json` sostituisce l'attuale politica `managementPolicy` con un esempio che concede l'accesso Account AWS 111122223333 e 444455556666 per creare associazioni di accesso ai nomi di dominio con il nome di dominio personalizzato privato. `private.example.com`

   ```
   [{
       "op": "replace",
       "path": "/managementPolicy",
       "value": "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam::111122223333:root\", \"arn:aws:iam::444455556666:root\"]},\"Action\":\"apigateway:CreateAccessAssociation\",\"Resource\":\"arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\"}]}"
   }]
   ```

    Il comando seguente aggiorna l'utilizzo. [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html)`managementPolicy``patch-managementPolicy.json` 

   ```
   aws apigateway update-domain-name \
       --domain-name private.example.com \
       --domain-name-id abcd1234 \
       --patch-operations file://patch-managementPolicy.json
   ```

   Una volta concesso l'accesso, devi notificare al consumatore di API che può formare l'associazione di accesso ai nomi di dominio. Se lo usi AWS RAM, AWS RAM farà questo passaggio per te.

1. Per aggiornare la `policy` per il servizio `execute-api`, è necessario creare un file JSON contenente l'operazione di patch per l'aggiornamento della policy. Il seguente `patch-policy.json` sostituisce la `policy` corrente con una policy di esempio che consente a due endpoint VPC di invocare il nome di dominio personalizzato privato `private.example.com`.

   ```
   [{
       "op": "replace",
       "path": "/policy",
       "value": "{\"Version\": \"2012-10-17\",		 	 	 \"Statement\": [{\"Effect\": \"Allow\",\"Principal\": \"*\",\"Action\": \"execute-api:Invoke\",\"Resource\": \"arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\"},{\"Effect\": \"Deny\",\"Principal\": \"*\",\"Action\": \"execute-api:Invoke\",\"Resource\": \"arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\",\"Condition\": {\"StringNotEquals\": {\"aws:SourceVpce\": [\"vpce-abcd1234\",\"vpce-xyzz0000\"]}}}]}"
   }]
   ```

    Usa il seguente [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html)comando per aggiornare l'`policy`utilizzo`patch-policy.json`. 

   ```
   aws apigateway update-domain-name \
       --domain-name private.example.com \
       --domain-name-id abcd1234 \
       --patch-operations file://patch-policy.json
   ```

## Negare l'accesso al nome di dominio personalizzato privato
<a name="apigateway-private-custom-domains-provider-share-cli-deny"></a>

Per interrompere la condivisione del tuo nome di dominio personalizzato privato, devi rifiutare l'associazione di accesso al nome di dominio tra il tuo nome di dominio personalizzato privato e l'endpoint VPC del consumatore di API.

**Per negare l'accesso al nome di dominio personalizzato privato**

1. Il seguente comando `reject-domain-name-access-association` rifiuta l'associazione di accesso al nome di dominio.

   ```
   aws apigateway reject-domain-name-access-association \
       --domain-name-access-association-arn arn:aws:apigateway:us-west-2:444455556666:/domainnameaccessassociations/domainname/private.example.com+abcd1234/vpcesource/vpce-abcd1234 \
       --domain-name-arn arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234
   ```

1. Modifica `patch-managementPolicy.json` per rimuovere l'accesso che consente all'account del provider di API di creare un'associazione di accesso al nome di dominio con il tuo nome di dominio personalizzato privato. Il seguente `patch-managementPolicy.json` rimuove un account dalla `managementPolicy`:

   ```
   [{
        "op": "replace",
        "path": "/managementPolicy",
        "value": "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"apigateway:CreateAccessAssociation\",\"Resource\":\"arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\"}]}"
   }]
   ```

   Il seguente [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html)comando aggiorna l'`managementPolicy`utilizzo`patch-managementPolicy.json`. 

   ```
   aws apigateway update-domain-name \
       --domain-name private.example.com \
       --domain-name-id abcd1234 \
       --patch-operations file://patch-managementPolicy.json
   ```

1. Modifica `patch-policy.json` per rimuovere l'accesso che consente all'endpoint VPC del provider di API di invocare il tuo nome di dominio personalizzato privato. Il seguente `patch-policy.json` rimuove l'ID dell'endpoint VPC dalla `policy`:

   ```
   [{
       "op": "replace",
       "path": "/policy",
       "value": "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"execute-api:Invoke\",\"Resource\":\"arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\"},{\"Effect\":\"Deny\",\"Principal\":\"*\",\"Action\":\"execute-api:Invoke\",\"Resource\":\"arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\",\"Condition\":{\"StringNotEquals\":{\"aws:SourceVpce\":\"vpce-abcd1234\"}}}]}"
   }]
   ```

   Il [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html)comando seguente aggiorna l'`policy`utilizzo`patch-policy.json`. 

   ```
   aws apigateway update-domain-name \
       --domain-name private.example.com \
       --domain-name-id abcd1234 \
       --patch-operations file://patch-policy.json
   ```

## Policy di esempio utilizzate in questa procedura
<a name="apigateway-private-custom-domains-provider-share-cli-policies"></a>

Nella sezione seguente sono illustrate le policy di esempio utilizzate nella procedura precedente.

La seguente policy di esempio riguarda `managementPolicy` per il servizio di gestione di Gateway Amazon API. Questa politica concede a Account AWS 111122223333 e 444455556666 l'accesso per creare associazioni di accesso ai nomi di dominio con il nome di dominio personalizzato privato. `private.example.com` 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "111122223333",
                    "444455556666"
                ]
            },
            "Action": "apigateway:CreateAccessAssociation",
            "Resource": "arn:aws:apigateway:us-west-2:{{111122223333}}:/domainnames/private.example.com+a1b2c3"
        }
    ]
}
```

------

La seguente policy di esempio riguarda la `policy` per il servizio `execute-api`. Questa policy concede l'accesso agli endpoint VPC `vpce-abcd1234` e `vpce-xyzz0000` per invocare il nome di dominio personalizzato privato.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234"
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234",
            "Condition": {
                "StringNotEquals": {
                    "aws:SourceVpce": [
                        "vpce-abcd1234",
                        "vpce-xyzz0000"
                    ]
                }
            }
        }
    ]
}
```

------