Wie behebe ich den Fehler „VpcPeeringConnection failed to stabilize“ in AWS CloudFormation?

Lesedauer: 3 Minute
0

Ich erhalte in AWS CloudFormation die Fehlermeldung „VpcPeeringConnection failed to stabilize“, wenn ich versuche, eine Amazon Virtual Private Cloud (Amazon VPC)-Peering-Verbindung zwischen einer akzeptierenden VPC und einer Anforderer-VPC herzustellen.

Kurze Beschreibung

Sie können diesen Fehler aus den folgenden Gründen erhalten:

  • Ihre AWS: :EC2::VPCPeeringConnection-Ressource wurde im Accepter-Konto erstellt.
  • IPv4-CIDR-Bereiche überschneiden sich.
  • Die PeerRoleArn-Eigenschaft wird nicht korrekt übergeben, wenn Sie eine VPC-Peering-Verbindung zwischen VPCs in verschiedenen Konten erstellen.
  • Die AWS Identity and Access Management (IAM)-Rolle im Accepter-Konto verfügt nicht über die richtigen Berechtigungen.
  • Die Eigenschaft PeerRegion wird nicht korrekt übergeben, wenn Sie eine VPC-Peering-Verbindung zwischen VPCs in verschiedenen AWS-Regionen erstellen.

Lösung

Wenn Ihre AWS::EC2::VPCPeeringConnection-Ressource im Accepter-Konto erstellt wurde

Erstellen Sie Ihren AWS CloudFormation-Stack mit der Ressource AWS::EC2::VPCPeeringConnection im Anfordererkonto, nicht im Accepter-Konto.

Wenn sich IPv4-CIDR-Bereiche überschneiden

Verwenden Sie verschiedene IPv4-CIDR-Blöcke für die VPCs in Ihrem Accepter-Konto und Anfordererkonto.

Wenn die PeerRoleArn-Eigenschaft nicht korrekt übergeben wird, wenn Sie eine VPC-Peering-Verbindung zwischen VPCs in verschiedenen Konten erstellen

Wenn Sie eine VPC-Peering-Verbindung zwischen VPCs in verschiedenen Konten erstellen, verwenden Sie die Eigenschaft PeerRoleArn, um Ihre kontenübergreifende IAM-Rolle von Ihrem Accepter-Konto in Ihrer AWS CloudFormation-Vorlage zu übergeben. Weitere Informationen finden Sie unter AWS::EC2::VPCPeeringConnection. Sehen Sie sich die folgenden JSON- und YAML-Beispiele an:

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'

Wenn die IAM-Rolle im Accepter-Konto nicht über die richtigen Berechtigungen verfügt

Damit die IAM-Rolle eine VPC-Peering-Verbindung im Accepter-Konto akzeptieren kann, fügen Sie die folgenden Berechtigungen hinzu:

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

Damit das Anfordererkonto die IAM-Rolle übernehmen kann, konfigurieren Sie eine Vertrauensbeziehung für die IAM-Rolle. Zum Beispiel:

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

Wenn die Eigenschaft PeerRegion nicht korrekt übergeben wird, wenn Sie eine VPC-Peering-Verbindung zwischen VPCs in verschiedenen AWS-Regionen erstellen

Wenn sich die VPCs in verschiedenen AWS-Regionen befinden, müssen Sie die PeerRegion in Ihre AWS CloudFormation-Vorlage aufnehmen. Geben Sie dann die AWS-Region an, in der sich Ihre Accepter-Konto-VPC befindet. Sehen Sie sich die folgenden JSON- und YAML-Beispiele an:

JSON:

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

YAML:

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

Ähnliche Informationen

Komplettlösung: Peer mit einer Amazon VPC in einem anderen AWS-Konto

Erstellen Sie eine VPC-Peering-Verbindung

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 4 Jahren