Peer mit einer VPC in einer anderen AWS-Konto - AWS CloudFormation

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Peer mit einer VPC in einer anderen AWS-Konto

Sie können mit einer Virtual Private Cloud (VPC) in einer anderen AWS-Konto über AWS::EC2::VPCPeeringConnectionpeeren. Dadurch wird eine Netzwerkverbindung zwischen zwei VPCs erstellt, über die Sie den Datenverkehr zwischen ihnen so umleiten können, dass diese miteinander kommunizieren können, als befänden sie sich im selben Netzwerk. Eine VPC-Peering-Verbindung kann den Datenzugriff und die Datenübertragung erleichtern.

Um eine VPC-Peering-Verbindung einzurichten, müssen Sie zwei separate AWS-Konten innerhalb eines einzigen CloudFormation-Stacks autorisieren.

Weitere Informationen über VPC-Peering und dessen Einschränkungen finden Sie im Amazon VPC Peering Guide.

Voraussetzungen

  1. Sie benötigen eine VPC-ID, eine Peer-AWS-Konto-ID und einen kontoübergreifenden Zugriff für die Peering-Verbindung.

    Anmerkung

    Diese Anleitung bezieht sich auf zwei Konten: Das erste Konto ist ein Konto, das kontenübergreifendes Peering zulässt (annehmendes Konto). Das zweite Konto ist das Konto, das die Peering-Verbindung anfordert (Auftraggeberkonto).

  2. Um die VPC-Peering-Verbindung zu akzeptieren, müssen Sie die Rolle für den kontoübergreifenden Zugriff übernehmen können. Die Ressource verhält sich wie die Ressource einer VPC-Peering-Verbindung in demselben Konto. Informationen darüber, wie ein IAM-Administrator Berechtigungen zur Übernahme der kontenübergreifenden Rolle erteilt, finden Sie unter Einem Benutzer Berechtigungen zum Rollenwechsel erteilen im IAM-Benutzerhandbuch.

Schritt 1: Erstellen einer VPC und einer kontoübergreifenden Rolle

In diesem Schritt erstellen Sie die VPC und die Rolle im annehmenden Konto.

So erstellen Sie eine VPC und eine kontoübergreifende Zugriffsrolle
  1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die CloudFormation-Konsole unter https://console.aws.amazon.com/cloudformation.

  2. Wählen Sie auf der Seite Stapel oben rechts Stapel erstellen und dann Mit neuen Ressourcen (Standard).

  3. Für Voraussetzung - Vorlage vorbereiten, wählen Sie Vorhandene Vorlage auswählen und dann Vorlagendatei hochladen, Datei auswählen.

  4. Öffnen Sie einen Texteditor auf Ihrem lokalen Rechner und fügen Sie eine der folgenden Vorlagen hinzu. Speichern Sie die Datei und kehren Sie zur Konsole zurück, um sie als Vorlagendatei auszuwählen.

    Beispiel 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" ] } } } }
    Beispiel 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
  5. Wählen Sie Weiter aus.

  6. Geben Sie dem Stack einen Namen (z. B. VPC-owner) und geben Sie dann die AWS-Konto-ID des Anforderer-Kontos im Feld PeerRequesterAccountId ein.

  7. Akzeptieren Sie die Standardwerte und wählen Sie dann Weiter aus.

  8. Wählen Sie Ich bestätige, dass CloudFormation möglicherweise IAM-Ressourcen erstellen, und wählen Sie dann Stapel erstellen.

Schritt 2: Erstellen einer Vorlage, die AWS::EC2::VPCPeeringConnection enthält

Da Sie nun die VPC und die kontoübergreifende Rolle erstellt haben, können Sie das Peering mit der VPC mithilfe eines anderen AWS-Konto (dem Anforderer-Konto) erstellen.

So erstellen Sie eine Vorlage, die die Ressource AWS::EC2::VPCPeeringConnection enthält
  1. Rufen Sie wieder die Homepage der CloudFormation-Konsole auf.

  2. Wählen Sie auf der Seite Stapel oben rechts Stapel erstellen und dann Mit neuen Ressourcen (Standard).

  3. Für Voraussetzung - Vorlage vorbereiten, wählen Sie Vorhandene Vorlage auswählen und dann Vorlagendatei hochladen, Datei auswählen.

  4. Öffnen Sie einen Texteditor auf Ihrem lokalen Rechner und fügen Sie eine der folgenden Vorlagen hinzu. Speichern Sie die Datei und kehren Sie zur Konsole zurück, um sie als Vorlagendatei auszuwählen.

    Beispiel 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" } } } }
    Beispiel 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
  5. Wählen Sie Weiter aus.

  6. Geben Sie dem Stapel einen Namen (z. B. VPC-peering-connection).

  7. Akzeptieren Sie die Standardwerte und wählen Sie dann Weiter aus.

  8. Wählen Sie Ich bestätige, dass CloudFormation möglicherweise IAM-Ressourcen erstellen, und wählen Sie dann Stapel erstellen.

Erstellen Sie eine Vorlage mit einer sehr restriktiven Richtlinie

Vielleicht möchten Sie eine stark einschränkende Richtlinie für das Peering zwischen Ihrer VPC und einer anderen AWS-Konto erstellen.

Die folgende Beispielvorlage zeigt, wie die Vorlage des VPC-Peer-Besitzers (das annehmende Konto, das Sie oben in Schritt 1 erstellt haben) geändert wird, damit sie restriktiver ist.

Beispiel 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" } } } }
Beispiel 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

Um auf die VPC zuzugreifen, können Sie dieselbe Auftraggebervorlage wie in Schritt 2 oben verwenden.

Weitere Informationen finden Sie unter Identitäts- und Zugangsverwaltung für VPC-Peering im Amazon VPC Peering Guide.