Come posso risolvere l'errore “VpcPeeringConnection non è riuscito a stabilizzarsi” in AWS CloudFormation?

3 minuti di lettura
0

Ricevo un errore “VpcPeeringConnection non è riuscito a stabilizzarsi” 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 questo errore 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 trasmessa correttamente quando si crea una connessione peering VPC tra VPC in account diversi.
  • Il ruolo di AWS Identity and Access Management (IAM) nell'account accettatore 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

Se la tua risorsa AWS::EC2::VPCPeeringConnection è stata creata nell'account accettatore

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

Se gli intervalli CIDR IPv4 si sovrappongono

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

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

Se stai creando una connessione peering VPC tra cloud privati virtuali di account diversi, utilizza la proprietà PeerRoleArn per trasferire il tuo ruolo IAM tra account dal tuo account di accettazione nel tuo modello AWS 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'

Se 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 accettatore, 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"
    }
  ]
}

Se la proprietà PeerRegion non viene passata correttamente durante la creazione di una connessione peering VPC tra VPC in diverse regioni AWS

Se i cloud privati virtuali si trovano in diverse regioni AWS, devi includere PeerRegion nel tuo modello AWS CloudFormation. Quindi, specifica la regione AWS in cui si trova il tuo account accettatore 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: Esegui peer con un Amazon VPC in un altro account AWS

Crea una connessione peering VPC

AWS UFFICIALE
AWS UFFICIALEAggiornata 4 anni fa