

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.

# Homologue avec un VPC dans un autre Compte AWS
<a name="peer-with-vpc-in-another-account"></a>

Vous pouvez établir un pair avec un Virtual Private Cloud (VPC) dans un autre en utilisant. Compte AWS [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-vpcpeeringconnection.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-vpcpeeringconnection.html) Cela crée une connexion réseau entre deux personnes VPCs qui vous permet d'acheminer le trafic entre elles afin qu'elles puissent communiquer comme si elles faisaient partie du 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 VPC, vous devez autoriser deux connexions distinctes au Comptes AWS sein d'une même pile. CloudFormation 

Pour plus d’informations sur l’appairage VPC et ses limitations, consultez le [Guide d’appairage Amazon VPC](https://docs.aws.amazon.com/vpc/latest/peering/). 

## Conditions préalables
<a name="peer-with-vpc-in-another-account-prerequisites"></a>

1. Vous avez besoin d'un identifiant VPC homologue, d'un Compte AWS identifiant homologue et d'un [rôle d'accès entre comptes](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) pour la connexion d'appairage. 
**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*).

1. 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_permissions-to-switch.html) dans le *Guide de l’utilisateur IAM*.

## Étape 1 : Créer un VPC et un rôle entre comptes
<a name="step-1-create-vpc-and-cross-account-role"></a>

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**

1. Connectez-vous à la CloudFormation console AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/cloudformation.](https://console.aws.amazon.com/cloudformation/)

1. Depuis la page **CloudFormation**, choisissez **Piles**, puis **Créer une pile avec de nouvelles ressources (standard)**.

1. Dans **Prérequis – Préparer le modèle**, choisissez **Choisir un modèle existant**, puis **Charger un fichier modèle**, puis **Choisir un fichier**.

1. 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.  
**Example 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"
           ]
         }
       }
     }
   }
   ```  
**Example 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
   ```

1. Choisissez **Suivant**.

1. Donnez un nom à la pile (par exemple,**VPC-owner**), puis entrez l' Compte AWS ID du *compte du demandeur* dans le **PeerRequesterAccountId**champ.

1. Acceptez les valeurs par défaut, puis choisissez **Suivant**.

1. Choisissez **Je reconnais que cela CloudFormation pourrait créer des ressources IAM**, puis choisissez **Create stack**.

## Étape 2 : créer un modèle qui inclut `AWS::EC2::VPCPeeringConnection`
<a name="step-2-create-template-for-vpc-peering-connection-owner"></a>

*Maintenant que vous avez créé le VPC et le rôle entre comptes, vous pouvez établir un pair avec le VPC en utilisant un autre Compte AWS (le compte du demandeur).*

**Pour créer un modèle qui inclut la ressource [AWS : :EC2 : : Connection VPCPeering](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-vpcpeeringconnection.html)**

1. Retournez à la page d'accueil de la CloudFormation console.

1. Depuis la page **CloudFormation**, choisissez **Piles**, puis **Créer une pile avec de nouvelles ressources (standard)**.

1. Dans **Prérequis – Préparer le modèle**, choisissez **Choisir un modèle existant**, puis **Charger un fichier modèle**, puis **Choisir un fichier**.

1. 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.  
**Example 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"
         }
       }
     }
   }
   ```  
**Example 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
   ```

1. Choisissez **Suivant**.

1. Attribuez un nom à la pile (par exemple, **VPC-peering-connection**).

1. Acceptez les valeurs par défaut, puis choisissez **Suivant**.

1. Choisissez **Je reconnais que cela CloudFormation pourrait créer des ressources IAM**, puis choisissez **Create stack**.

## Créer un modèle avec une politique très restrictive
<a name="create-template-with-highly-restrictive-policy"></a>

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.

**Example 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"
      }
    }
  }
}
```

**Example 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](https://docs.aws.amazon.com/vpc/latest/peering/security-iam.html) dans le *Guide de l’appairage Amazon VPC*.