Passer au contenu

Comment créer un attachement Amazon VPC dans Transit Gateway pour une passerelle de transit qui se trouve dans un autre compte ?

Lecture de 6 minute(s)
0

Je souhaite créer un attachement Amazon Virtual Private Cloud (Amazon VPC) dans AWS Transit Gateway pour une passerelle de transit qui figure dans un autre compte AWS.

Brève description

Pour attacher un VPC à une passerelle de transit qui se trouve dans un autre compte, utilisez AWS Resource Access Manager (AWS RAM) pour partager la passerelle de transit avec le compte qui possède le VPC.

Dans la résolution suivante, le compte qui possède la passerelle de transit est le compte source et le compte qui possède le VPC est le compte de destination. Une fois que le compte de destination a accepté le partage de ressources, créez un attachement VPC pour connecter le VPC à la passerelle de transit partagée du compte source.

Vous pouvez utiliser la console de gestion AWS ou l'interface de la ligne de commande AWS (AWS CLI) pour procéder comme suit.

Remarque : Si vous recevez des erreurs lorsque vous exécutez des commandes AWS CLI, consultez alors Dépannage des erreurs liées à AWS CLI. Vérifiez également que vous utilisez la version la plus récente d'AWS CLI.

Résolution

Prérequis : Avant de créer un attachement VPC à une passerelle de transit, vérifiez que l'utilisateur ou le rôle AWS Identity and Access Management (IAM) dans le compte de destination est autorisé à créer des rôles liés à un service. AWS crée automatiquement le rôle lié au service AWSServiceRoleForVPCTransitGateway lors de la création de l'attachement VPC. Ce rôle permet à Transit Gateway de créer et de gérer des interfaces réseau élastiques dans les sous-réseaux VPC, et de configurer le routage nécessaire pour l'attachement.

Pour vérifier que vous disposez des autorisations requises, confirmez que la politique IAM inclut la déclaration suivante :

{
  "Effect": "Allow",
  "Action": "iam:CreateServiceLinkedRole",
  "Resource": "arn:aws:iam::*:role/aws-service-role/transitgateway.amazonaws.com/AWSServiceRoleForTransitGateway*"

Si l'utilisateur ou le rôle IAM n'est pas autorisé à créer un rôle lié à un service, vous recevez alors une erreur « Access Denied ».

Partage de la passerelle de transit avec le compte de destination

Console AWS RAM

Procédez comme suit :

  1. Dans le compte source, ouvrez la console AWS RAM.
  2. Dans la liste déroulante Région AWS, sélectionnez la région de la passerelle de transit.
  3. Choisissez Créer un partage de ressources.
  4. Saisissez les informations suivantes :
    Pour Nom, indiquez le nom du partage de ressources.
    Pour ** Sélectionner le type de ressource**, choisissez Passerelle de transit, puis sélectionnez l'ID de passerelle de transit.
  5. Choisissez Suivant.
  6. Choisissez une autorisation gérée à associer à la passerelle de transit.
  7. Choisissez Suivant.
  8. Choisissez Octroyer l'accès aux principaux, puis saisissez les informations suivantes :
    Pour Principaux, saisissez l'ID de compte du compte de destination ou l'ID d'organisation d'un compte figurant dans AWS Organizations.
    Si le compte ne se trouve pas dans une organisation, choisissez alors ** Autoriser le partage avec tout le monde**.
    Si le compte se trouve dans une organisation, choisissez alors Autoriser le partage uniquement au sein de l'organisation.
    Remarque : Pour utiliser l'ID d'organisation comme type de principal, activez l'accès de confiance. Pour mettre à jour les principaux après avoir créé le partage de ressources, sélectionnez le partage de ressources, puis choisissez ** Modifier**.
  9. Choisissez Créer un partage de ressources.

AWS CLI

Remarque : Dans les commandes suivantes, remplacez les exemples de paramètres par les valeurs suivantes :

  • Pour TGWSHARE, donnez un nom au partage de ressources.
  • Pour 222222222222, remplacez par l'ID de compte du compte de destination.
  • Pour resource-arns, indiquez l'Amazon Resource Name (ARN) de la passerelle de transit du compte source.
  • Pour les organisations des principaux, fournissez l'ARN de l'organisation.
  • Pour resource-share-arn, indiquez l'ARN du partage de ressources existant que vous souhaitez modifier.

Pour créer un partage de ressources avec des comptes qui ne se trouvent pas dans une organisation, exécutez la commande create-resource-share suivante :

aws ram create-resource-share \
    --name TGWSHARE \
    --resource-arns arn:aws:ec2:region:123456789012:transit-gateway/tgw-1234567890abcdef0 \
    --principals 222222222222 \
    --allow-external-principals

Pour créer un partage de ressources permettant d'accéder uniquement aux comptes de l'organisation, exécutez la commande create-resource-share suivante :

aws ram create-resource-share \
    --name TGWSHARE \
    --resource-arns arn:aws:ec2:region:123456789012:transit-gateway/tgw-1234567890abcdef0 \
    --principals organizations::123456789012:organization/o-exampleorgid \
    --no-allow-external-principals

Pour modifier un partage de ressources existant, exécutez la commande update-resource-share suivante :

aws ram update-resource-share \
    --allow-external-principals \
    --resource-share-arn arn:aws:ram:us-west-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE

Pour plus d'informations, consultez Création d'un partage de ressources dans AWS RAM.

Acceptation du partage de la passerelle de transit dans le compte de destination

Console AWS RAM

Pour des instructions, consultez Acceptation d'un partage de ressources AWS Transit Gateway à l'aide de la console AWS Resource Access Manager.

Utilisez la console Amazon VPC pour vérifier que la passerelle de transit partagée apparaît dans le compte de destination.

AWS CLI

Procédez comme suit :

  1. Exécutez la commande get-resource-share-invitations suivante pour répertorier les invitations de partage de ressources en attente :

    aws ram get-resource-share-invitations
  2. Copiez resourceShareInvitationArn depuis la sortie.

  3. Exécutez la commande accept-resource-share-invitation suivante pour accepter l'invitation :

    aws ram accept-resource-share-invitation \
        --resource-share-invitation-arn arn:aws:ram:us-west-2:111111111111:resource-share-invitation/1e3477be-4a95-46b4-bbe0-c4001EXAMPLE

    Remarque : Remplacez resource-share-invitation-arn par l'ARN de l'invitation.

Exécutez la commande describe-transit-gateways suivante pour vérifier que la passerelle de transit partagée apparaît dans le compte de destination :

aws ec2 describe-transit-gateways

Création de l'attachement VPC dans le compte de destination

Console Amazon VPC

Pour des instructions, consultez Création d'un attachement VPC dans AWS Transit Gateway.

AWS CLI

Exécutez la commande create-transit-gateway-vpc-attachment suivante :

aws ec2 create-transit-gateway-vpc-attachment \
    --transit-gateway-id SHARED-TRANSIT-GATEWAY-ID \
    --vpc-id DESTINATION-VPC-ID \
    --subnet-ids SUBNET-A SUBNET-B \
    --options DnsSupport=enable,Ipv6Support=disable

Remarque : Remplacez ** SHARED-TRANSIT-GATEWAY-ID** par l'ID de la passerelle de transit partagée et DESTINATION-VPC-ID par l'ID du VPC de destination. Remplacez SUBNET-A et SUBNET-B par les ID de sous-réseau. Spécifiez un seul sous-réseau pour chaque zone de disponibilité. Pour une meilleure disponibilité, une bonne pratique consiste à spécifier un sous-réseau dans deux zones de disponibilité. La passerelle de transit utilise une adresse IP de chaque sous-réseau spécifié.

Après avoir créé l'attachement VPC, vérifiez le statut. Si vous avez activé Accepter automatiquement les attachements partagés, la passerelle de transit accepte alors automatiquement l'attachement. Si vous n'avez pas activé Accepter automatiquement les attachements partagés lors de la création de la passerelle de transit, le statut indique alors En attente d'acceptation. Pour accepter l'attachement VPC depuis le compte source, consultez la section suivante Acceptation de l'attachement VPC dans le compte source.

Acceptation de l'attachement VPC dans le compte source

Console Amazon VPC

Dans le compte source, acceptez un attachement partagé.

AWS CLI

Ou bien exécutez la commande AWS CLI describe-transit-gateway-attachments suivante pour répertorier les attachements en attente d'acceptation :

aws ec2 describe-transit-gateway-attachments \
    --filters Name=state,Values=pendingAcceptance

Exécutez ensuite la commande accept-transit-gateway-vpc-attachment suivante pour accepter l'attachement VPC :

aws ec2 accept-transit-gateway-vpc-attachment \
    --transit-gateway-attachment-ids TGW-ATTACH-1122

Remarque : Utilisez l'ID d'attachement de la passerelle de transit figurant sur la sortie de la commande. Remplacez ensuite TGW-ATTACH-1122 par l'ID de l'attachement VPC.

Informations connexes

Attachements Amazon VPC dans AWS Transit Gateway

Comment fonctionne AWS RAM avec IAM

Passerelles de transit dans AWS Transit Gateway

Qu'est-ce qu'AWS Transit Gateway pour Amazon VPC ?

AWS OFFICIELA mis à jour il y a 5 mois