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": "2008-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::Requester-Account-ID:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

서로 다른 리전의 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 공식업데이트됨 2년 전