AWS CloudFormation에서 "VpcPeeringConnection 안정화 실패" 오류를 해결하려면 어떻게 해야 합니까?

2분 분량
0

수락자 VPC와 요청자 VPC 간에 Amazon Virtual Private Cloud(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::EC2::VPCPeeringConnection 리소스를 사용하여 AWS CloudFormation 스택을 생성합니다.

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년 전