Le message d'erreur « VPCPeeringConnection n'a pas pu se stabiliser » s'affiche dans AWS CloudFormation lorsque j'essaie de créer une connexion d'appairage Amazon Virtual Private Cloud (Amazon VPC) entre un VPC accepteur et un VPC demandeur.
Brève description
Cette erreur peut s'afficher pour les raisons suivantes :
- Votre ressource AWS : :EC2 : :VPCPeeringConnection a été créée dans le compte d'accepteur.
- Les plages d'adresses CIDR IPv4 se chevauchent.
- La propriété PeerRoleArn n'est pas transmise correctement lorsque vous créez une connexion d'appairage de VPC entre des VPC de différents comptes.
- Le rôle AWS Identity and Access Management (IAM) dans le compte d'accepteur ne dispose pas des autorisations appropriées.
- La propriété PeerRegion n'est pas transmise correctement lorsque vous créez une connexion d'appairage de VPC entre des VPC de différentes régions AWS.
Résolution
Si votre ressource AWS : :EC2 : :VPCPeeringConnection a été créée dans le compte d'accepteur
Créez votre pile AWS CloudFormation avec la ressource AWS : :EC2 : :VPCPeeringConnection dans le compte du demandeur, et non dans le compte de l'accepteur.
Si les plages d'adresses CIDR IPv4 se chevauchent
Utilisez des blocs d'adresse CIDR IPv4 différents pour les VPC de votre compte d'accepteur et de votre compte de demandeur.
Si la propriété PeerRoleArn n'est pas transmise correctement lorsque vous créez une connexion d'appairage de VPC entre des VPC de différents comptes
Si vous créez une connexion d'appairage de VPC entre des VPC de différents comptes, utilisez la propriété PeerRoleArn pour transférer votre rôle IAM multicompte depuis votre compte d'acceptation dans votre modèle AWS CloudFormation. Pour plus d'informations, consultez AWS : :EC2 : :VPCPeeringConnection. Consultez les exemples JSON et YAML suivants :
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'
Si le rôle IAM du compte accepteur ne dispose pas des autorisations appropriées
Pour permettre au rôle IAM d'accepter une connexion d'appairage de VPC dans le compte accepteur, incluez les autorisations suivantes :
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "ec2:AcceptVpcPeeringConnection",
"Resource": "arn:${Partition}:ec2:${Region}:${Account}:vpc-peering-connection/${VpcPeeringConnectionId}",
"Effect": "Allow"
}
]
}
Pour permettre au compte du demandeur d'assumer le rôle IAM, configurez une relation de confiance pour le rôle IAM. Par exemple :
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::Requester-Account-ID:root"
},
"Action": "sts:AssumeRole"
}
]
}
Si la propriété PeerRegion n'est pas transmise correctement lorsque vous créez une connexion d'appairage de VPC entre des VPC de différentes régions AWS
Si les VPC sont situés dans différentes régions AWS, vous devez inclure la PeerRegion dans votre modèle AWS CloudFormation. Spécifiez ensuite la région AWS dans laquelle se trouve votre compte d'accepteur VPC. Consultez les exemples JSON et YAML suivants :
JSON :
{
"myVPCPeeringConnection": {
"Type": "AWS::EC2::VPCPeeringConnection",
"Properties": {
......
"PeerRegion": Accepter-VPC-Region-Code
}
}
}
YAML :
myVPCPeeringConnection:
Type: 'AWS::EC2::VPCPeeringConnection'
Properties:
......
PeerRegion: Accepter-VPC-Region-Code
Informations connexes
Procédure pas à pas : Associez un Amazon VPC à un autre compte AWS
Création d'une connexion d'appairage de VPC