Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Appairage avec un VPC dans un autre Compte AWS
Vous pouvez vous connecter à un cloud privé virtuel (VPC) dans un autre Compte AWS à l’aide de AWS::EC2::VPCPeeringConnection. Vous créez ainsi une connexion de mise en réseau entre deux VPC qui vous permet d'acheminer le trafic de l'un à l'autre. Ils communiquent ainsi de la même façon que s'ils étaient situés sur le même réseau. Une connexion d'appairage de VPC peut faciliter l'accès aux données et le transfert des données.
Pour établir une connexion d’appairage de VPC, vous devez autoriser deux éléments distincts Comptes AWS au sein d’une seule pile CloudFormation.
Pour plus d’informations sur l’appairage VPC et ses limitations, consultez le Guide d’appairage Amazon VPC.
Prérequis
-
Pour la connexion d'appairage, vous avez besoin d'un ID de VPC, d'un ID de Compte AWS pair et d'un rôle pour l'accès intercompte.
Note
Cette procédure fait référence à deux comptes : un compte qui permet l'appairage entre comptes (le compte de l'accepteur). Et un compte qui demande la connexion d'appairage (le compte du demandeur).
-
Pour accepter la connexion d'appairage VPC, vous devez assumer le rôle pour l'accès entre comptes. La ressource se comporte de la même manière qu'une ressource de connexion d'appairage de VPC dans le même compte. Pour plus d’informations sur la manière dont un administrateur IAM accorde des autorisations pour assumer le rôle inter-comptes, consultez la section Accorder à un utilisateur des autorisations pour changer de rôle dans le Guide de l’utilisateur IAM.
Étape 1 : Créer un VPC et un rôle entre comptes
Dans cette étape, vous allez créer le VPC et le rôle dans le compte de l'accepteur.
Pour créer un VPC et un rôle d’accès intercompte
Connectez-vous à la AWS Management Console et ouvrez la console CloudFormation à l’adresse https://console.aws.amazon.com/cloudformation
. -
Depuis la page CloudFormation, choisissez Piles, puis Créer une pile avec de nouvelles ressources (standard).
-
Dans Prérequis – Préparer le modèle, choisissez Choisir un modèle existant, puis Charger un fichier modèle, puis Choisir un fichier.
-
Ouvrez un éditeur de texte sur votre ordinateur local et ajoutez l’un des modèles suivants. Enregistrez le fichier et revenez à la console pour le sélectionner comme fichier modèle.
Exemple JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "Create a VPC and an assumable role for cross account VPC peering.", "Parameters": { "PeerRequesterAccountId": { "Type": "String" } }, "Resources": { "vpc": { "Type": "AWS::EC2::VPC", "Properties": { "CidrBlock": "10.1.0.0/16", "EnableDnsSupport": false, "EnableDnsHostnames": false, "InstanceTenancy": "default" } }, "peerRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Principal": { "AWS": { "Ref": "PeerRequesterAccountId" } }, "Action": [ "sts:AssumeRole" ], "Effect": "Allow" } ] }, "Path": "/", "Policies": [ { "PolicyName": "root", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:AcceptVpcPeeringConnection", "Resource": "*" } ] } } ] } } }, "Outputs": { "VPCId": { "Value": { "Ref": "vpc" } }, "RoleARN": { "Value": { "Fn::GetAtt": [ "peerRole", "Arn" ] } } } }Exemple YAML
AWSTemplateFormatVersion: 2010-09-09 Description: Create a VPC and an assumable role for cross account VPC peering. Parameters: PeerRequesterAccountId: Type: String Resources: vpc: Type: AWS::EC2::VPC Properties: CidrBlock: 10.1.0.0/16 EnableDnsSupport: false EnableDnsHostnames: false InstanceTenancy: default peerRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Statement: - Principal: AWS: !Ref PeerRequesterAccountId Action: - 'sts:AssumeRole' Effect: Allow Path: / Policies: - PolicyName: root PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: 'ec2:AcceptVpcPeeringConnection' Resource: '*' Outputs: VPCId: Value: !Ref vpc RoleARN: Value: !GetAtt - peerRole - Arn -
Choisissez Suivant.
-
Attribuez un nom à la pile (par exemple,
VPC-owner), puis saisissez l'ID du Compte AWS du compte du demandeur dans le champ PeerRequesterAccountId. -
Acceptez les valeurs par défaut, puis choisissez Suivant.
-
Sélectionnez Je comprends que CloudFormation peut créer des ressources IAM, puis choisissez Créer une pile.
Étape 2 : créer un modèle qui inclut AWS::EC2::VPCPeeringConnection
Maintenant que vous avez créé le VPC et le rôle entre comptes, vous pouvez procéder à l'appairage avec le VPC à l'aide d'un autre Compte AWS (le compte du demandeur).
Pour créer un modèle qui inclut la ressource AWS::EC2::VPCPeeringConnection
-
Revenez à la page d'accueil de la console CloudFormation.
-
Depuis la page CloudFormation, choisissez Piles, puis Créer une pile avec de nouvelles ressources (standard).
-
Dans Prérequis – Préparer le modèle, choisissez Choisir un modèle existant, puis Charger un fichier modèle, puis Choisir un fichier.
-
Ouvrez un éditeur de texte sur votre ordinateur local et ajoutez l’un des modèles suivants. Enregistrez le fichier et revenez à la console pour le sélectionner comme fichier modèle.
Exemple JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "Create a VPC and a VPC Peering connection using the PeerRole to accept.", "Parameters": { "PeerVPCAccountId": { "Type": "String" }, "PeerVPCId": { "Type": "String" }, "PeerRoleArn": { "Type": "String" } }, "Resources": { "vpc": { "Type": "AWS::EC2::VPC", "Properties": { "CidrBlock": "10.2.0.0/16", "EnableDnsSupport": false, "EnableDnsHostnames": false, "InstanceTenancy": "default" } }, "vpcPeeringConnection": { "Type": "AWS::EC2::VPCPeeringConnection", "Properties": { "VpcId": { "Ref": "vpc" }, "PeerVpcId": { "Ref": "PeerVPCId" }, "PeerOwnerId": { "Ref": "PeerVPCAccountId" }, "PeerRoleArn": { "Ref": "PeerRoleArn" } } } }, "Outputs": { "VPCId": { "Value": { "Ref": "vpc" } }, "VPCPeeringConnectionId": { "Value": { "Ref": "vpcPeeringConnection" } } } }Exemple YAML
AWSTemplateFormatVersion: 2010-09-09 Description: Create a VPC and a VPC Peering connection using the PeerRole to accept. Parameters: PeerVPCAccountId: Type: String PeerVPCId: Type: String PeerRoleArn: Type: String Resources: vpc: Type: AWS::EC2::VPC Properties: CidrBlock: 10.2.0.0/16 EnableDnsSupport: false EnableDnsHostnames: false InstanceTenancy: default vpcPeeringConnection: Type: AWS::EC2::VPCPeeringConnection Properties: VpcId: !Ref vpc PeerVpcId: !Ref PeerVPCId PeerOwnerId: !Ref PeerVPCAccountId PeerRoleArn: !Ref PeerRoleArn Outputs: VPCId: Value: !Ref vpc VPCPeeringConnectionId: Value: !Ref vpcPeeringConnection -
Choisissez Suivant.
-
Attribuez un nom à la pile (par exemple,
VPC-peering-connection). -
Acceptez les valeurs par défaut, puis choisissez Suivant.
-
Sélectionnez Je comprends que CloudFormation peut créer des ressources IAM, puis choisissez Créer une pile.
Créer un modèle avec une politique très restrictive
Vous pouvez souhaiter créer une politique très restrictive pour l'appairage de votre VPC avec un autre Compte AWS.
L'exemple de modèle suivant montre comment modifier le modèle de propriétaire d'appairage VPC (le compte de l'accepteur créé à l'étape 1 ci-dessus) afin qu'il soit plus restrictif.
Exemple JSON
{ "AWSTemplateFormatVersion":"2010-09-09", "Description":"Create a VPC and an assumable role for cross account VPC peering.", "Parameters":{ "PeerRequesterAccountId":{ "Type":"String" } }, "Resources":{ "peerRole":{ "Type":"AWS::IAM::Role", "Properties":{ "AssumeRolePolicyDocument":{ "Statement":[ { "Action":[ "sts:AssumeRole" ], "Effect":"Allow", "Principal":{ "AWS":{ "Ref":"PeerRequesterAccountId" } } } ] }, "Path":"/", "Policies":[ { "PolicyDocument":{ "Statement":[ { "Action":"ec2:acceptVpcPeeringConnection", "Effect":"Allow", "Resource":{ "Fn::Sub":"arn:aws:ec2:${AWS::Region}:${AWS::AccountId}:vpc/${vpc}" } }, { "Action":"ec2:acceptVpcPeeringConnection", "Condition":{ "StringEquals":{ "ec2:AccepterVpc":{ "Fn::Sub":"arn:aws:ec2:${AWS::Region}:${AWS::AccountId}:vpc/${vpc}" } } }, "Effect":"Allow", "Resource":{ "Fn::Sub":"arn:aws:ec2:${AWS::Region}:${AWS::AccountId}:vpc-peering-connection/*" } } ], "Version":"2012-10-17" }, "PolicyName":"root" } ] } }, "vpc":{ "Type":"AWS::EC2::VPC", "Properties":{ "CidrBlock":"10.1.0.0/16", "EnableDnsHostnames":false, "EnableDnsSupport":false, "InstanceTenancy":"default" } } }, "Outputs":{ "RoleARN":{ "Value":{ "Fn::GetAtt":[ "peerRole", "Arn" ] } }, "VPCId":{ "Value":{ "Ref":"vpc" } } } }
Exemple YAML
AWSTemplateFormatVersion: 2010-09-09 Description: Create a VPC and an assumable role for cross account VPC peering. Parameters: PeerRequesterAccountId: Type: String Resources: peerRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Statement: - Action: - 'sts:AssumeRole' Effect: Allow Principal: AWS: Ref: PeerRequesterAccountId Path: / Policies: - PolicyDocument: Statement: - Action: 'ec2:acceptVpcPeeringConnection' Effect: Allow Resource: 'Fn::Sub': 'arn:aws:ec2:${AWS::Region}:${AWS::AccountId}:vpc/${vpc}' - Action: 'ec2:acceptVpcPeeringConnection' Condition: StringEquals: 'ec2:AccepterVpc': 'Fn::Sub': 'arn:aws:ec2:${AWS::Region}:${AWS::AccountId}:vpc/${vpc}' Effect: Allow Resource: 'Fn::Sub': >- arn:aws:ec2:${AWS::Region}:${AWS::AccountId}:vpc-peering-connection/* Version: 2012-10-17 PolicyName: root vpc: Type: AWS::EC2::VPC Properties: CidrBlock: 10.1.0.0/16 EnableDnsHostnames: false EnableDnsSupport: false InstanceTenancy: default Outputs: RoleARN: Value: 'Fn::GetAtt': - peerRole - Arn VPCId: Value: Ref: vpc
Pour accéder au VPC, vous pouvez utiliser le même modèle de demandeur que celui de l'étape 2 ci-dessus.
Pour plus d’informations, consultez la section Gestion des identités et des accès pour l’appairage VPC dans le Guide de l’appairage Amazon VPC.