Come posso risolvere l'errore "VpcPeeringConnection failed to stabilize" in AWS CloudFormation?

3 minuti di lettura
0

Ricevo un errore "VpcPeeringConnection failed to stabilize" in AWS CloudFormation quando provo a creare una connessione peering Amazon Virtual Private Cloud (Amazon VPC) tra un VPC accettante e un VPC richiedente.

Breve descrizione

È possibile ricevere l'errore "VpcPeeringConnection failed to stabilize" per i seguenti motivi:

  • La tua risorsa AWS::EC2::VPCPeeringConnection è stata creata nell'account dell'accettatore.
  • Gli intervalli CIDR IPv4 si sovrappongono.
  • La proprietà PeerRoleArn non viene passata correttamente quando si crea una connessione peering VPC tra VPC in account diversi.
  • Il ruolo di AWS Identity and Access Management (IAM) nell'account accettante non dispone delle autorizzazioni giuste.
  • La proprietà PeerRegion non viene trasmessa correttamente quando crei una connessione peering VPC tra VPC in diverse regioni AWS.

Risoluzione

La tua risorsa AWS::EC2::VPCPeeringConnection è stata creata nell'account accettante

Crea il tuo stack CloudFormation con la risorsa AWS::EC2::VPCPeeringConnection nell'account richiedente, non nell'account accettante.

Gli intervalli CIDR IPv4 si sovrappongono

Usa diversi blocchi CIDR IPv4 per i VPC nel tuo account accettante e nell'account richiedente.

La proprietà PeerRoleArn non viene passata correttamente quando si crea una connessione peering VPC tra VPC in account diversi

Se crei una connessione peering VPC tra VPC in account diversi, utilizza la proprietà PeerRoleArn. Questa proprietà trasferisce il ruolo IAM tra account dall'account accettante nel modello CloudFormation. Per ulteriori informazioni, consulta AWS::EC2::VPCPeeringConnection.

Guarda i seguenti esempi 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'

Il ruolo IAM nell'account di accettazione non dispone delle autorizzazioni corrette

Per consentire al ruolo IAM di accettare una connessione peering VPC nell'account accettante, includi le seguenti autorizzazioni:

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

Per consentire all'account richiedente di assumere il ruolo IAM, configura una relazione di fiducia per il ruolo IAM. Ad esempio:

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

La proprietà PeerRegion non viene passata correttamente quando si crea una connessione peering VPC tra VPC in regioni diverse

Se i VPC si trovano in regioni diverse, devi includere PeerRegion nel tuo modello CloudFormation. Quindi, specifica la regione in cui si trova il tuo account accettante VPC.

Guarda i seguenti esempi 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

Informazioni correlate

Procedura dettagliata: Effettua peer con un VPC in un altro account AWS

Crea una connessione peering VPC

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa