¿Cómo soluciono el error «VpcPeeringConnection failed to stabilize» en AWS CloudFormation?

3 minutos de lectura
0

Cuando intento crear una conexión de emparejamiento de Amazon Virtual Private Cloud (Amazon VPC) aparece el error «VpcPeeringConnection failed to stabilize» en AWS CloudFormation.

Breve descripción

Puede recibir el error «VpcPeeringConnection failed to stabilize» por los siguientes motivos:

  • Su recurso AWS::EC2::VPCPeeringConnection se creó en la cuenta del aceptador.
  • Los rangos CIDR de IPv4 se superponen.
  • La propiedad PeerRoleArn no se transfiere correctamente al crear una conexión de emparejamiento de VPC entre VPC de diferentes cuentas.
  • El rol de AWS Identity and Access Management (IAM) de la cuenta del aceptador no tiene los permisos correctos.
  • La propiedad PeerRegion no se transfiere correctamente al crear una conexión de emparejamiento de VPC entre VPC de diferentes regiones de AWS.

Resolución

El recurso AWS::EC2::VPCPeeringConnection se creó en la cuenta del aceptador

Cree su pila de CloudFormation con el recurso AWS::EC2::VPCPeeringConnection en la cuenta del solicitante, no en la cuenta del aceptador.

Los rangos CIDR de IPv4 se superponen

Use diferentes bloques CIDR de IPv4 para las VPC de su cuenta de aceptador y de su cuenta de solicitante.

La propiedad PeerRoleArn no se transfiere correctamente al crear una conexión de emparejamiento de VPC entre VPC de diferentes cuentas

Si crea una conexión de emparejamiento de VPC entre VPC de diferentes cuentas, utilice la propiedad PeerRoleArn. Esta propiedad transfiere su rol de IAM entre cuentas desde su cuenta de aceptador a su plantilla de CloudFormation. Para obtener más información, consulte AWS::EC2::VPCPeeringConnection.

Consulte los siguientes ejemplos de JSON y YAML.

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'

El rol de IAM de la cuenta del aceptador no tiene los permisos correctos

Para permitir que el rol de IAM acepte una conexión de emparejamiento de VPC en la cuenta del aceptador, incluya los permisos siguientes:

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

Para permitir que la cuenta del solicitante asuma el rol de IAM, configure una relación de confianza para el rol de IAM. Por ejemplo:

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

La propiedad PeerRegion no se transfiere correctamente al crear una conexión de emparejamiento de VPC entre VPC de diferentes regiones de AWS

Si las VPC se encuentran en diferentes regiones, debe incluir PeerRegion en su plantilla de CloudFormation. A continuación, especifique la región en la que se encuentra la VPC de su cuenta de aceptador.

Consulte los siguientes ejemplos de JSON y YAML.

JSON:

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

YAML:

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

Información relacionada

Tutorial: Interconectar con una VPC en otra Cuenta de AWS

Creación de una interconexión de VPC

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 10 meses