Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Peering con un VPC in un altro Account AWS
Puoi eseguire il peering con un cloud privato virtuale (VPC) in un altro Account AWS utilizzando AWS::EC2::VPCPeeringConnection. Ciò crea una connessione di rete tra due VPC che consente di instradare il traffico dall’uno all’altro, in modo che possano comunicare come se si trovassero nella stessa rete. Una connessione peering VPC può facilitare l’accesso ai dati e il trasferimento dei dati.
Per stabilire una connessione peering VPC devi autorizzare due Account AWS distinti in un singolo stack CloudFormation.
Per ulteriori informazioni sul peering di VPC e le sue limitazioni, consulta la Guida al peering di Amazon VPC.
Prerequisiti
-
È necessario l’ID del VPC in peering, l’ID Account AWS in peering e un ruolo per l’accesso multi-account per la connessione in peering.
Nota
Questa procedura guidata si riferisce a due account: un account che consente il peering tra più account (l’account dell’accettante) e un account che richiede la connessione in peering (l’account del richiedente).
-
Per accettare la connessione peering VPC, devi assumere il ruolo di accesso multi-account. La risorsa si comporta nello stesso modo di una risorsa di una connessione peering VPC nello stesso account. Per informazioni su come un amministratore IAM concede le autorizzazioni per assumere il ruolo di multi-account, consulta Grant a user permissions to switch roles nella Guida per l’utente di IAM.
Fase 1: creazione di un VPC e di un ruolo tra più account
In questa fase vengono creati il VPC e il ruolo nell’account dell’accettante.
Creazione di un VPC e di un ruolo di accesso multi-account
Accedere alla Console di gestione AWS e aprire la console di CloudFormation all’indirizzo https://console.aws.amazon.com/cloudformation
. -
Nella pagina Stack scegli Crea stack in alto a destra, quindi seleziona Con nuove risorse (standard).
-
Per Prerequisito: prepara modello, scegli Scegli un modello esistente, quindi Carica un file modello, Scegli file.
-
Apri un editor di testo sul tuo computer locale e aggiungi uno dei modelli seguenti. Salva il file e torna alla console per selezionarlo come file modello.
Esempio 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" ] } } } }Esempio 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 -
Scegli Next (Successivo).
-
Assegna un nome allo stack (ad esempio,
VPC-owner), quindi immetti l’ID Account AWS relativo all’account del richiedente nel campo PeerRequesterAccountId. -
Accettare i valori predefiniti, quindi selezionare Next (Avanti).
-
Scegli Acconsento alla creazione di risorse IAM da parte di CloudFormation, quindi seleziona Crea stack.
Fase 2: creazione di un modello che include AWS::EC2::VPCPeeringConnection
Una volta creato il VPC e il ruolo tra più account, puoi effettuare il peering con il VPC utilizzando un altro Account AWS (l’account del richiedente).
Creazione di un modello che include la risorsa AWS::EC2::VPCPeeringConnection
-
Tornare alla home page della console CloudFormation.
-
Nella pagina Stack scegli Crea stack in alto a destra, quindi seleziona Con nuove risorse (standard).
-
Per Prerequisito: prepara modello, scegli Scegli un modello esistente, quindi Carica un file modello, Scegli file.
-
Apri un editor di testo sul tuo computer locale e aggiungi uno dei modelli seguenti. Salva il file e torna alla console per selezionarlo come file modello.
Esempio 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" } } } }Esempio 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 -
Scegli Next (Successivo).
-
Assegnare un nome allo stack (ad esempio,
VPC-peering-connection). -
Accettare i valori predefiniti, quindi selezionare Next (Avanti).
-
Scegli Acconsento alla creazione di risorse IAM da parte di CloudFormation, quindi seleziona Crea stack.
Creazione di un modello con una policy altamente restrittiva
Potresti creare una policy altamente restrittiva per collegare in peering il VPC con un altro Account AWS.
L’esempio seguente mostra come modificare il modello del proprietario della connessione in peering del VPC (l’account dell’accettante creato nella fase 1 precedente) in modo che sia di livello più restrittivo.
Esempio 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" } } } }
Esempio 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
Per accedere al VPC, è possibile utilizzare lo stesso modello del richiedente della fase 2 precedente.
Per ulteriori informazioni, consulta Identity and access management for VPC peering nella Guida al peering di Amazon VPC.