Recebo um erro de “VpcPeeringConnection failed to stabilize” 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 o erro “Falha na estabilização do VPCPeeringConnection” 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.
Solução
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.
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ê criar uma conexão de emparelhamento da VPC entre VPCs em contas diferentes, use a propriedade PeerRoleArn. Essa propriedade transfere seu perfil de IAM entre contas da sua conta aceitante em seu modelo do 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"
}
]
}
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
Se as VPCs estiverem localizadas em regiões diferentes, você deverá incluir PeerRegion no seu modelo do 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
Demonstração: Faça pares com uma VPC em outra conta da AWS
Criar uma conexão de emparelhamento da VPC