

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é en utilisant AWS RAM
<a name="apigateway-private-custom-domains-provider-share"></a>

Vous pouvez fournir aux utilisateurs d'API Comptes AWS un autre accès à votre nom de domaine personnalisé privé. Dans cette section, vous apprendrez comment partager votre nom de domaine personnalisé privé en utilisant AWS RAM et comment contrôler l'accès à votre nom de domaine personnalisé privé.

## Considérations relatives au partage de votre nom de domaine personnalisé privé
<a name="apigateway-private-custom-domains-provider-share-considerations"></a>

Les considérations suivantes peuvent impacter la façon dont vous autorisez l’accès à votre nom de domaine personnalisé privé à l’aide d’ AWS RAM. Pour savoir comment partager votre nom de domaine personnalisé privé sans l'utiliser AWS RAM, consultez[Fournisseur d'API : partagez votre nom de domaine personnalisé privé à l'aide de l'API Gateway AWS CLI](apigateway-private-custom-domains-provider-share-cli.md).
+ Les noms de domaine personnalisés privés sont partagés au Région AWS niveau. Le nom de domaine personnalisé privé et le point de terminaison de VPC doivent se trouver dans la même Région AWS.
+ Vous pouvez utiliser un partage de ressources avec plusieurs principaux, et après avoir créé le partage de ressources, vous pouvez y ajouter d’autres principaux. Nous vous recommandons, dans la mesure du possible, de réutiliser votre partage de ressources.
+ Vous devez toujours accorder au point de terminaison VPC du client de l'API l'accès pour invoquer votre nom de domaine personnalisé privé et tout nom privé associé à APIs celui-ci.
+ Si le consommateur d'API et le fournisseur d'API appartiennent à la même organisation AWS Organizations, le partage des ressources est automatiquement accepté. Vous devez tout de même créer le partage de ressources à l’aide d’ AWS RAM.
+ Si le consommateur d'API et le fournisseur d'API appartiennent à la même organisation AWS Organizations et que le partage des ressources au sein de votre organisation est activé, tous les principaux de l'organisation avec lesquels vous partagez l'API ont automatiquement accès aux partages de ressources. Aucune invitation n’est nécessaire et vous pouvez ignorer le partage des ressources.
+ Si l’utilisateur d’API n’accepte pas le partage de ressources dans les **12 heures**, le fournisseur d’API doit à nouveau partager la ressource.
+ Après avoir créé le partage de ressources, AWS RAM mettez à jour le `managementPolicy` service Amazon API Gateway Management pour votre nom de domaine personnalisé privé afin d'empêcher l'accès aux principaux sans `allow` accès explicite. Pour plus d’informations, consultez [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) dans le Guide de l’utilisateur IAM.

  La politique `managementPolicy` mise à jour ressemble à ce qui suit :

------
#### [ 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 a empêché les principaux sans `allow` accès explicite de créer des associations d'accès avec votre nom de domaine personnalisé privé, en ajoutant ce qui suit :

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

  Vous pouvez toujours utiliser le principal indiqué dans la section Compte AWS qui a créé le nom de domaine personnalisé privé pour créer des associations d'accès aux noms de domaine.

## Autorisation d’autres comptes à créer des associations d’accès au nom de domaine avec votre nom de domaine personnalisé privé
<a name="apigateway-private-custom-domains-provider-management-policy-update"></a>

Tout d'abord, vous accordez l'accès Compte AWS à une autre personne pour créer des associations d'accès aux noms de domaine avec votre nom de domaine personnalisé privé.

------
#### [ AWS Management Console ]

Pour l'utiliser AWS Management Console, reportez-vous à la section [Création d'un partage de ressources AWS RAM dans](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-create.html) le *guide de AWS RAM l'utilisateur*.

Pour **Sélectionner le type de ressource**, choisissez **Domaines personnalisés privés API Gateway**.

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

Ce qui suit [create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html)crée un partage de ressources pour votre nom de domaine personnalisé privé. L’association entre la ressource et le mandataire peut prendre quelques minutes. Pour les principaux, fournissez un ID de compte ou un ID d’organisation, comme `arn:aws:organizations::123456789012:organization/o-1234abcd`. Vous pouvez fournir plusieurs principaux pour votre partage de ressources.

```
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
```

------

Une fois que vous avez fourni l'accès à un autre Compte AWS utilisateur d'API, les utilisateurs de l'API de ce compte doivent créer une association d'accès au nom de domaine entre leur point de terminaison VPC et votre nom de domaine personnalisé privé. Vous ne pouvez pas la créer pour eux. Pour de plus amples informations, veuillez consulter [Association de votre point de terminaison de VPC à un nom de domaine personnalisé privé partagé](apigateway-private-custom-domains-consumer-create.md#apigateway-private-custom-domains-consumer-associate).

## Autorisation d’autres comptes à invoquer votre nom de domaine personnalisé privé
<a name="apigateway-private-custom-domains-provider-policy-update"></a>

Ensuite, vous accordez l'accès au point de terminaison VPC du client de l'API pour qu'il invoque votre nom de domaine personnalisé privé et tout nom privé associé à APIs celui-ci.

------
#### [ AWS Management Console ]

**Pour autoriser les points de terminaison de VPC d’autres comptes à invoquer votre nom de domaine personnalisé privé**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Dans le panneau de navigation, sélectionnez **Noms de domaine personnalisés**.

1. Choisissez le nom de domaine personnalisé privé que vous avez partagé avec d'autres Comptes AWS.

1. Dans l’onglet **Stratégie de ressources**, choisissez **Modifier la stratégie de ressources**.

1. Ajoutez l’ID de point de terminaison de VPC de l’utilisateur d’API à votre politique de ressources.

   Vous trouverez l’ID de point de terminaison de VPC de l’utilisateur d’API dans la section **Associations d’accès aux noms de domaine** de l’onglet **Partage des ressources** sur la page **Détails du domaine** de votre nom de domaine personnalisé privé.

1. Sélectionnez **Enregistrer les modifications**.

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

La politique `policy` suivante pour le service `execute-api` autorise le trafic entrant vers un nom de domaine personnalisé privé depuis les points de terminaison de VPC `{{vpce-abcd1234efg}}` et `{{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}}"
                    ]
                }
            }
        }
    ]
}
```

La [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html)commande suivante utilise une opération de correctif `policy` pour mettre à jour le nom de domaine personnalisé privé :

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

------