Amazon Virtual Private Cloud(Amazon VPC) 피어링 연결을 생성하려고 하면 AWS CloudFormation에서 "VpcPeeringConnection 안정화 실패" 오류가 발생합니다.
간략한 설명
다음과 같은 이유로 "VpcPeeringConnection 안정화 실패" 오류가 발생할 수 있습니다.
- AWS::EC2::VPCPeeringConnection 리소스가 수락자 계정에 생성되었습니다.
- IPv4 CIDR 범위가 겹칩니다.
- 서로 다른 계정의 VPC 간에 VPC 피어링 연결을 생성할 때 PeerRoleArn 속성을 올바르게 전달하지 않습니다.
- 수락자 계정의 AWS Identity and Access Management(AWS IAM) 역할에 올바른 권한이 없습니다.
- 서로 다른 AWS 리전의 VPC 간에 VPC 피어링 연결을 생성할 때 PeerRegion 속성을 올바르게 전달하지 않습니다.
해결 방법
AWS::EC2::VPCPeeringConnection 리소스가 수락자 계정에 생성됨
수락자 계정이 아닌 요청자 계정에 AWS::EC2::VPCPeeringConnection 리소스를 사용하여 CloudFormation 스택을 생성합니다.
IPv4 CIDR 범위 겹침
수락자 계정과 요청자 계정의 VPC에 서로 다른 IPv4 CIDR 블록을 사용합니다.
서로 다른 계정의 VPC 간에 VPC 피어링 연결을 생성할 때 PeerRoleArn 속성을 올바르게 전달하지 않음
서로 다른 계정의 VPC 간에 VPC 피어링 연결을 생성하는 경우 PeerRoleArn 속성을 사용합니다. 이 속성은 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"
}
]
}
서로 다른 리전의 VPC 간에 VPC 피어링 연결을 생성할 때 PeerRegion 속성을 올바르게 전달하지 않음
VPC가 다른 리전에 있는 경우 CloudFormation 템플릿에 PeerRegion을 포함해야 합니다. 그런 다음 수락자 계정 VPC가 있는 리전을 지정합니다.
다음 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 계정의 VPC와 피어링
VPC 피어링 연결 생성