Como resolvo o erro “VpcPeeringConnection failed to stabilize” (Falha na estabilização de VPCPeeringConnection) no AWS CloudFormation?

3 minuto de leitura
0

Recebo um erro de “VpcPeeringConnection failed to stabilize” (Falha na estabilização de VPCPeeringConnection) no AWS CloudFormation quando tento criar uma conexão de emparelhamento da Amazon Virtual Private Cloud (Amazon VPC) entre uma VPC aceitante e uma VPC solicitante.

Breve descrição

Você pode receber esse erro pelos seguintes motivos:

  • Seu recurso AWS::EC2::VPCPeeringConnection foi criado na conta do aceitante.
  • Os intervalos CIDR do IPv4 se sobrepõem.
  • A propriedade PeerRoleArn não é passada corretamente quando você cria uma conexão de emparelhamento da VPC entre VPCs em contas diferentes.
  • O perfil do AWS Identity and Access Management (IAM) na conta do aceitante não tem as permissões corretas.
  • A propriedade PeerRegion não é passada corretamente quando você cria uma conexão de emparelhamento da VPC entre VPCs em diferentes regiões da AWS.

Resolução

Se seu recurso AWS::EC2::VPCPeeringConnection foi criado na conta do aceitante

Crie sua pilha do AWS CloudFormation com o recurso AWS::EC2::VPCPeeringConnection na conta do solicitante, não na conta do aceitante.

Se os intervalos CIDR do IPv4 se sobrepõem

Use blocos CIDR do IPv4 diferentes para as VPCs em sua conta de aceitante e conta de solicitante.

Se a propriedade PeerRoleArn não for passada corretamente ao criar uma conexão de emparelhamento da VPC entre VPCs em contas diferentes

Se você estiver criando uma conexão de emparelhamento da VPC entre VPCs em contas diferentes, use a propriedade PeerRoleArn para transmitir seu perfil do IAM entre contas da sua conta de aceitante em seu modelo do AWS CloudFormation. Para obter mais informações, consulte AWS::EC2::VPCPeeringConnection. Veja os seguintes exemplos de JSON e 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'

Se o perfil do IAM na conta do aceitante não tiver as permissões corretas

Para permitir que o perfil do IAM aceite uma conexão de emparelhamento da VPC na conta do aceitante, inclua as seguintes permissões:

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

Para permitir que a conta do solicitante assuma o perfil do IAM, configure uma relação de confiança para o perfil do IAM. Por exemplo:

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

Se a propriedade PeerRegion não for passada corretamente ao criar uma conexão de emparelhamento da VPC entre VPCs em diferentes regiões da AWS

Se as VPCs estiverem localizadas em diferentes regiões da AWS, você deverá incluir a PeerRegion em seu modelo do AWS CloudFormation. Em seguida, especifique a região da AWS em que sua conta de aceitante da VPC está localizada. Veja os seguintes exemplos de JSON e 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

Informações relacionadas

Passo a passo: Emparelhar com uma Amazon VPC em outra conta da AWS

Criar uma conexão de emparelhamento da VPC

AWS OFICIAL
AWS OFICIALAtualizada há 4 anos