View a markdown version of this page

Fournisseur d'API : partagez votre nom de domaine personnalisé privé en utilisant AWS RAM - Amazon API Gateway

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

Vous pouvez fournir aux utilisateurs de l'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é à l'aide de votre nom de domaine personnalisé privé AWS RAM et comment contrôler l'accès à celui-ci.

Considérations relatives au partage de votre nom de domaine personnalisé privé

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, consultezFournisseur d'API : partagez votre nom de domaine personnalisé privé à l'aide de l'API Gateway AWS CLI.

  • 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 autoriser le point de terminaison de VPC de l’utilisateur d’API à invoquer votre nom de domaine personnalisé privé et toutes les API privées qui y sont mappées.

  • Si le consommateur d'API et le fournisseur d'API font partie de la même organisation qui les utilise 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 font partie de la même organisation AWS Organizations et que le partage des ressources au sein de votre organisation est activé, tous les principaux membres de l'organisation avec laquelle vous partagez 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 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 mandants 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 dans la section Compte AWS qui a créé le nom de domaine personnalisé privé pour créer des associations d'accès au nom de domaine.

Autorisation d’autres comptes à créer des associations d’accès au nom de domaine avec votre nom de domaine personnalisé privé

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

Console de gestion AWS

Pour utiliser le Console de gestion AWS, reportez-vous à la section Création d'un partage de ressources AWS RAM dans le Guide de AWS RAM l'utilisateur.

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

AWS CLI

La commande create-resource-share suivante 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 Compte AWS, les utilisateurs d'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é.

Autorisation d’autres comptes à invoquer votre nom de domaine personnalisé privé

Ensuite, vous allez autoriser le point de terminaison de VPC de l’utilisateur d’API à invoquer votre nom de domaine personnalisé privé et toutes les API privées qui y sont mappées.

Console de gestion AWS
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.

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

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

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

  5. 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é.

  6. 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 commande update-domain-name suivante utilise une opération de correctif pour mettre à jour la politique policy pour un 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\"]}}}]}"