

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Fournisseur d'API : partagez votre nom de domaine personnalisé privé à l'aide de l'API Gateway AWS CLI
<a name="apigateway-private-custom-domains-provider-share-cli"></a>

Vous pouvez partager un nom de domaine personnalisé privé à l'aide de l'API Gateway AWS CLI, mais nous vous recommandons de l'utiliser AWS RAM pour réduire vos frais opérationnels. Pour obtenir des instructions sur la façon AWS RAM de partager votre nom de domaine personnalisé privé, consultez[Fournisseur d'API : partagez votre nom de domaine personnalisé privé en utilisant AWS RAM](apigateway-private-custom-domains-provider-share.md).

Pour partager un nom de domaine personnalisé privé à l'aide de l'API Gateway AWS CLI, vous accordez d'autres Comptes AWS accès afin de créer des associations d'accès au nom de domaine et d'invoquer votre nom de domaine personnalisé privé. Pour ce faire, vous devez mettre à jour la politique `managementPolicy` pour le service API Gateway Management et la politique `policy` pour le service `execute-api` pour votre nom de domaine personnalisé privé. Vous devez également accorder l'accès au point de terminaison VPC du client de l'API dans la politique de ressources pour tout domaine privé APIs mappé à votre nom de domaine personnalisé privé.

L’utilisateur d’API doit tout de même créer une association d’accès au nom de domaine de son propre compte entre le point de terminaison de son VPC et votre nom de domaine personnalisé privé. Vous ne pouvez pas le faire pour lui.

## Octroi d’un accès à votre nom de domaine personnalisé privé
<a name="apigateway-private-custom-domains-provider-share-cli-allow"></a>

**Pour accorder un accès à votre nom de domaine personnalisé privé**

1. Pour mettre à jour la politique `managementPolicy` pour le service API Gateway Management, vous devez créer un fichier JSON contenant l’opération de correctif permettant de mettre à jour la politique. Ce qui suit `patch-managementPolicy.json` remplace la politique actuelle par un exemple de politique qui accorde à Comptes AWS 111122223333 et 444455556666 l'accès pour créer des associations d'accès au nom de domaine `managementPolicy` avec le nom de domaine personnalisé privé. `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\"}]}"
   }]
   ```

    La [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html)commande suivante met à jour l'`managementPolicy`utilisation`patch-managementPolicy.json`. 

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

   Une fois que vous avez accordé l’accès, vous devez informer l’utilisateur d’API qu’il peut former l’association d’accès au nom de domaine. Si vous l'utilisez AWS RAM, je AWS RAM ferai cette étape pour vous.

1. Pour mettre à jour la politique `policy` du service `execute-api`, vous devez créer un fichier JSON contenant l’opération de correctif permettant de mettre à jour la politique. Le correctif `patch-policy.json` suivant remplace la politique `policy` actuelle par un exemple de politique qui autorise deux points de terminaison de VPC à invoquer le nom de domaine personnalisé privé `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\"]}}}]}"
   }]
   ```

    Utilisez la [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html)commande suivante pour mettre à jour l'`policy`utilisation`patch-policy.json`. 

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

## Refus de l’accès à votre nom de domaine personnalisé privé
<a name="apigateway-private-custom-domains-provider-share-cli-deny"></a>

Pour arrêter de partager votre nom de domaine personnalisé privé, vous devez refuser l’association d’accès au nom de domaine entre votre nom de domaine personnalisé privé et le point de terminaison de VPC de l’utilisateur d’API.

**Pour refuser l’accès à votre nom de domaine personnalisé privé**

1. La commande `reject-domain-name-access-association` suivante rejette l’association d’accès au nom de domaine.

   ```
   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. Modifiez la politique `patch-managementPolicy.json` pour supprimer l’accès au compte du fournisseur d’API et créer une association d’accès au nom de domaine avec votre nom de domaine personnalisé privé. Le correctif `patch-managementPolicy.json` suivant supprime un compte de la politique `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\"}]}"
   }]
   ```

   La [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html)commande suivante permet de mettre à jour l'`managementPolicy`utilisation`patch-managementPolicy.json`. 

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

1. Modifiez le correctif `patch-policy.json` pour supprimer l’accès du point de terminaison de VPC au fournisseur d’API permettant d’invoquer votre nom de domaine personnalisé privé. Le correctif `patch-policy.json` suivant supprime l’ID de point de terminaison de VPC de la politique `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\"}}}]}"
   }]
   ```

   La [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html)commande suivante met à jour l'`policy`utilisation`patch-policy.json`. 

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

## Exemples de politiques utilisées dans cette procédure
<a name="apigateway-private-custom-domains-provider-share-cli-policies"></a>

La section suivante présente les exemples de politiques utilisées dans la procédure précédente.

L’exemple suivant concerne la politique `managementPolicy` du service Amazon API Gateway Management. Cette politique accorde à Comptes AWS 111122223333 et au 444455556666 l'accès pour créer des associations d'accès au nom de domaine avec le nom de domaine personnalisé privé. `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"
        }
    ]
}
```

------

L’exemple suivant concerne la politique `policy` pour le service `execute-api`. Cette politique accorde aux points de terminaison de VPC `vpce-abcd1234` et `vpce-xyzz0000` un accès leur permettant d’invoquer le nom de domaine personnalisé privé.

------
#### [ 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"
                    ]
                }
            }
        }
    ]
}
```

------