Comment résoudre l'erreur « VpcPeeringConnection failed to stabilize » (VpcPeeringConnection n'a pas pu être stabilisé) dans AWS CloudFormation ?

Date de la dernière mise à jour : 15/10/2020

J'obtiens l'erreur « VpcPeeringConnection failed to stabilize » (VpcPeeringConnection n'a pas pu être stabilisé) dans AWS CloudFormation lorsque j'essaie de créer une connexion d'appairage Amazon Virtual Private Cloud (Amazon VPC) un VPC accepteur et un VPC demandeur.

Brève description

Vous pouvez recevoir cette erreur pour les raisons suivantes :

  • Votre ressource AWS::EC2::VPCPeeringConnection a été créée dans le compte de l'accepteur.
  • Les plages CIDR IPv4 se chevauchent.
  • La propriété PeerRoleArn n'est pas transmise correctement lorsque vous créez une connexion d'appairage de VPC entre des VPC qui se trouvent dans des comptes différents.
  • Le rôle AWS Identity and Access Management (IAM) dans le compte accepteur n'a pas les autorisations appropriées.
  • La propriété PeerRegion n'est pas transmise correctement lorsque vous créez une connexion d'appairage de VPC entre des VPC qui se trouvent dans des régions différentes.

Résolution

Votre ressource AWS::EC2::VPCPeeringConnection a été créée dans le compte de l'accepteur.

Créez votre pile AWS CloudFormation avec la ressource AWS::EC2::VPCPeeringConnection dans le compte demandeur et non pas dans le compte accepteur.

Si les plages CIDR IPv4 se chevauchent

Utilisez des blocs CIDR IPv4 pour les VPC dans votre compte accepteur et votre compte demandeur.

Si la propriété PeerRoleArn n'est pas transmise correctement lorsque vous créez une connexion d'appairage de VPC entre des VPC qui se trouvent dans des comptes différents

Si vous créez une connexion d'appairage de VPC entre des VPC qui se trouvent dans des comptes différents, utilisez la propriété PeerRoleArn pour transmettre votre rôle IAM entre comptes depuis votre compte accepteur dans votre modèle AWS CloudFormation. Pour plus d'informations, consultez AWS::EC2::VPCPeeringConnection. Consultez les exemples JSON et YAML suivants :

JSON :

{
    "myVPCPeeringConnection": {
        "Type": "AWS::EC2::VPCPeeringConnection",
        "Properties": {
            ......
            "PeerRoleArn": "arn:aws:iam::Accepter-Account-ID:role/PeerRole"
        }
    }
}

YAML :

myVPCPeeringConnection:
  Type: 'AWS::EC2::VPCPeeringConnection'
  Properties:
    .......
    PeerRoleArn: 'arn:aws:iam::Accepter-Account-ID:role/PeerRole'

Si le rôle IAM dans le compte accepteur ne dispose pas des autorisations appropriées

Pour autoriser le rôle IAM pour accepter une connexion d'appairage de VPC dans le compte accepteur, incluez les autorisations suivantes :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "ec2:AcceptVpcPeeringConnection",
            "Resource": "arn:${Partition}:ec2:${Region}:${Account}:vpc-peering-connection/${VpcPeeringConnectionId}",
            "Effect": "Allow"
        }
    ]
}

Pour autoriser le compte demandeur à endosser le rôle IAM, configurez une relation d'approbation pour le rôle IAM comme suit : Par exemple :

{
  "Version": "2008-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::Requester-Account-ID:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Si la propriété PeerRegion n'est pas transmise correctement lorsque vous créez une connexion d'appairage de VPC entre des VPC qui se trouvent dans des régions AWS différentes

Si les VPC se trouvent dans des régions AWS différentes, vous devez inclure la propriété PeerRegion dans votre modèle AWS CloudFormation. Ensuite, spécifiez la région AWS où se trouve le VPC du compte de l'accepteur. Consultez les exemples JSON et YAML suivants :

JSON :

{
    "myVPCPeeringConnection": {
        "Type": "AWS::EC2::VPCPeeringConnection",
        "Properties": {
            ......
            "PeerRegion": Accepter-VPC-Region-Code
        }
    }
}

YAML :

myVPCPeeringConnection:
  Type: 'AWS::EC2::VPCPeeringConnection'
  Properties:
    ......
    PeerRegion: Accepter-VPC-Region-Code

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?