Fournisseur d’API : partage de votre nom de domaine personnalisé privé à l’aide d’AWS RAM - Amazon API Gateway

Fournisseur d’API : partage de votre nom de domaine personnalisé privé à l’aide d’AWS RAM

Vous pouvez autoriser les utilisateurs d’API d’autres Comptes AWS à accéder à votre nom de domaine personnalisé privé. Dans cette section, vous allez apprendre à partager votre nom de domaine personnalisé privé à l’aide d’AWS RAM et à contrôler l’accès à votre nom de domaine personnalisé privé.

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 apprendre à partager votre nom de domaine personnalisé privé sans utiliser AWS RAM, consultez Fournisseur d’API : partage de 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 niveau de la Région AWS. 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 l’utilisateur d’API et le fournisseur d’API font partie d’une même organisation utilisant 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 l’utilisateur d’API et le fournisseur d’API font partie d’une même organisation utilisant AWS Organizations et que le partage des ressources au sein de votre organisation est activé, les ressources sont automatiquement partagées avec les principaux de l’organisation. 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 met à jour la politique managementPolicy pour le service Amazon API Gateway Management pour votre nom de domaine personnalisé privé afin d’empêcher l’accès aux principaux qui ne disposent pas d’un accès allow 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", "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" } } } ] }

    AWS RAM a empêché les principaux sans accès allow 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 tout de même utiliser le principal du Compte AWS ayant 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 devez autoriser un autre Compte AWS à créer des associations d’accès au nom de domaine avec votre nom de domaine personnalisé privé.

AWS Management Console

Pour utiliser la AWS Management Console, consultez Creating a resource share in AWS RAM dans le Guide de l’utilisateur AWS RAM.

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 AWS, les utilisateurs d’API de ce compte doivent créer une association d’accès au nom de domaine entre le point de terminaison de leur VPC et votre nom de domaine personnalisé privé. Vous ne pouvez pas la créer pour eux. Pour plus d’informations, consultez 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.

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.

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