AWS CloudFormation の「VpcPeeringConnection が安定化できませんでした」というエラーを解決する方法を教えてください。

所要時間2分
0

アクセプタ VPC とリクエスタ VPC の間に Amazon Virtual Private Cloud (Amazon VPC) ピアリング接続を作成しようとすると、AWS CloudFormation で「VpcPeeringConnection が安定化できませんでした」というエラーが表示されます。

簡単な説明

このエラーが表示される理由は次のとおりです。

  • AWS::EC2::VPCPeeringConnection リソースはアクセプタアカウントで作成さた。
  • IPv4 CIDR の範囲が重複している。
  • 異なるアカウントの VPC 間の VPC ピアリング接続を作成すると、[PeerRoleArn] プロパティが正しく渡されない。
  • アクセプタアカウントの AWS Identity and Access Management (IAM) ロールに適切な権限がない。
  • 異なる AWS リージョンの VPC 間の VPC ピアリング接続を作成しているときに、[PeerRegion] プロパティが正しく渡されない。

解決策

AWS::EC2::VPCPeeringConnection リソースがアクセプタアカウントで作成さた場合

AWS CloudFormation スタックは、アクセプタアカウントではなく、リクエスタアカウントの [AWS::EC2::VPCPeeringConnection] リソースを使用して作成します。

IPv4 CIDR 範囲が重複している場合

アクセプターアカウントとリクエスターアカウントの VPC には異なる IPv4 CIDR ブロックを使用してください。

異なるアカウントの VPC 間の VPC ピアリング接続を作成するときに PeerRolearn プロパティが正しく渡されない場合

異なるアカウントの VPC 間の VPC ピアリング接続を作成する場合は、PeerRoleArn プロパティを使用して、AWS CloudFormation テンプレートのアクセプタアカウントからクロスアカウント IAM ロールを渡します。詳細については、AWS::EC2::VPCPeeringConnectionを参照してください。以下の JSON および 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'

アクセプタアカウントの IAM ロールに適切な権限がない場合

IAM ロールがアクセプタアカウントの VPC ピアリング接続を受け入れることを許可するには、以下の権限を含めてください。

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

リクエスタアカウントが IAM ロールを受け入れるようにするには、IAM ロールの信頼関係を設定します。例:

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

異なる AWS リージョンの VPC 間の VPC ピアリング接続を作成するときに PeerRegion プロパティが正しく渡されない場合

VPC が異なる AWS リージョンにある場合は、AWS CloudFormation テンプレートに [PeerRegion] を含める必要があります。次に、アクセプタアカウント VPC が配置されている AWS リージョンを指定します。以下の JSON および 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

関連情報

チュートリアル: 別の AWS アカウントの Amazon VPC とピアリングする

VPC ピアリング接続を作成する

AWS公式
AWS公式更新しました 4年前
コメントはありません

関連するコンテンツ