Aggiornamento del tipo di endpoint AWS Transfer Family del server da VPC _ ENDPOINT a VPC - AWS Transfer Family

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à.

Aggiornamento del tipo di endpoint AWS Transfer Family del server da VPC _ ENDPOINT a VPC

Puoi usare AWS Management Console AWS CloudFormation, o Transfer Family API per aggiornare un server EndpointType da VPC_ENDPOINT aVPC. Nelle sezioni seguenti sono disponibili procedure ed esempi dettagliati per l'utilizzo di ciascuno di questi metodi per aggiornare un tipo di endpoint del server. Se disponi di server in più AWS regioni e in più AWS account, puoi utilizzare lo script di esempio fornito nella sezione seguente, con le modifiche, per identificare i server utilizzando il VPC_ENDPOINT tipo che dovrai aggiornare.

Identificazione dei server utilizzando il tipo di VPC_ENDPOINT endpoint

È possibile identificare quali server VPC_ENDPOINT utilizzano il AWS Management Console.

Per identificare i server utilizzando il tipo di VPC_ENDPOINT endpoint utilizzando la console
  1. Apri la AWS Transfer Family console all'indirizzo https://console.aws.amazon.com/transfer/.

  2. Scegli Server nel riquadro di navigazione per visualizzare l'elenco dei server del tuo account in quella regione.

  3. Ordina l'elenco dei server in base al tipo di endpoint per visualizzare tutti i server utilizzatiVPC_ENDPOINT.

Per identificare i server che utilizzano più VPC_ENDPOINTAWS regioni e account

Se disponi di server in più AWS regioni e in più AWS account, puoi utilizzare il seguente script di esempio, con modifiche, per identificare i server che utilizzano il tipo di VPC_ENDPOINT endpoint. Lo script di esempio utilizza le ListServers API chiamate Amazon EC2 DescribeRegionse Transfer Family per ottenere un elenco dei server IDs e delle regioni di tutti i server utilizzatiVPC_ENDPOINT. Se disponi di molti AWS account, puoi passare in rassegna i tuoi account utilizzando un IAM Role con accesso da revisore in sola lettura se ti autentichi utilizzando i profili di sessione presso il tuo provider di identità.

  1. Di seguito è riportato un semplice esempio.

    import boto3 profile = input("Enter the name of the AWS account you'll be working in: ") session = boto3.Session(profile_name=profile) ec2 = session.client("ec2") regions = ec2.describe_regions() for region in regions['Regions']: region_name = region['RegionName'] if region_name=='ap-northeast-3': #https://github.com/boto/boto3/issues/1943 continue transfer = session.client("transfer", region_name=region_name) servers = transfer.list_servers() for server in servers['Servers']: if server['EndpointType']=='VPC_ENDPOINT': print(server['ServerId'], region_name)
  2. Dopo aver ottenuto l'elenco dei server da aggiornare, è possibile utilizzare uno dei metodi descritti nelle sezioni seguenti per EndpointType aggiornare il fileVPC.

Aggiornamento del tipo di endpoint del server utilizzando AWS Management Console

  1. Aprire la AWS Transfer Family console all'indirizzo https://console.aws.amazon.com/transfer/.

  2. Nel riquadro di navigazione, selezionare Servers (Server).

  3. Seleziona la casella di controllo del server di cui desideri modificare il tipo di endpoint.

    Importante

    È necessario arrestare il server prima di poter modificare l'endpoint.

  4. In Actions (Operazioni), scegliere Stop (Arresta).

  5. Nella finestra di dialogo di conferma che appare, scegli Stop per confermare che desideri arrestare il server.

    Nota

    Prima di procedere al passaggio successivo, attendi che lo stato del server passi a Offline; l'operazione può richiedere un paio di minuti. Potrebbe essere necessario scegliere Aggiorna nella pagina Server per vedere la modifica dello stato.

  6. Dopo che lo stato è passato a Offline, scegli il server per visualizzare la pagina dei dettagli del server.

  7. Nella sezione Dettagli dell'endpoint, scegli Modifica.

  8. Scegli VPChosted per il tipo di endpoint.

  9. Seleziona Salva

  10. Per Azioni, scegli Avvia e attendi che lo stato del server passi a Online; l'operazione può richiedere un paio di minuti.

Aggiornamento del tipo di endpoint del server tramite AWS CloudFormation

Questa sezione descrive come utilizzare AWS CloudFormation per aggiornare un server EndpointType aVPC. Usa questa procedura per i server Transfer Family che hai distribuito utilizzando AWS CloudFormation. In questo esempio, il AWS CloudFormation modello originale utilizzato per distribuire il server Transfer Family è illustrato come segue:

AWS TemplateFormatVersion: '2010-09-09' Description: 'Create AWS Transfer Server with VPC_ENDPOINT endpoint type' Parameters: SecurityGroupId: Type: AWS::EC2::SecurityGroup::Id SubnetIds: Type: List<AWS::EC2::Subnet::Id> VpcId: Type: AWS::EC2::VPC::Id Resources: TransferServer: Type: AWS::Transfer::Server Properties: Domain: S3 EndpointDetails: VpcEndpointId: !Ref VPCEndpoint EndpointType: VPC_ENDPOINT IdentityProviderType: SERVICE_MANAGED Protocols: - SFTP VPCEndpoint: Type: AWS::EC2::VPCEndpoint Properties: ServiceName: com.amazonaws.us-east-1.transfer.server SecurityGroupIds: - !Ref SecurityGroupId SubnetIds: - !Select [0, !Ref SubnetIds] - !Select [1, !Ref SubnetIds] - !Select [2, !Ref SubnetIds] VpcEndpointType: Interface VpcId: !Ref VpcId

Il modello viene aggiornato con le seguenti modifiche:

  • EndpointTypeÈ stato modificato inVPC.

  • La AWS::EC2::VPCEndpoint risorsa viene rimossa.

  • I SecurityGroupIdSubnetIds, e VpcId sono stati spostati nella EndpointDetails sezione della AWS::Transfer::Server risorsa,

  • La VpcEndpointId proprietà di EndpointDetails è stata rimossa.

Il modello aggiornato ha il seguente aspetto:

AWS TemplateFormatVersion: '2010-09-09' Description: 'Create AWS Transfer Server with VPC endpoint type' Parameters: SecurityGroupId: Type: AWS::EC2::SecurityGroup::Id SubnetIds: Type: List<AWS::EC2::Subnet::Id> VpcId: Type: AWS::EC2::VPC::Id Resources: TransferServer: Type: AWS::Transfer::Server Properties: Domain: S3 EndpointDetails: SecurityGroupIds: - !Ref SecurityGroupId SubnetIds: - !Select [0, !Ref SubnetIds] - !Select [1, !Ref SubnetIds] - !Select [2, !Ref SubnetIds] VpcId: !Ref VpcId EndpointType: VPC IdentityProviderType: SERVICE_MANAGED Protocols: - SFTP
Per aggiornare il tipo di endpoint dei server Transfer Family distribuiti utilizzando AWS CloudFormation
  1. Arresta il server che desideri aggiornare utilizzando i seguenti passaggi.

    1. Apri la AWS Transfer Family console all'indirizzo https://console.aws.amazon.com/transfer/.

    2. Nel riquadro di navigazione, selezionare Servers (Server).

    3. Seleziona la casella di controllo del server di cui desideri modificare il tipo di endpoint.

      Importante

      È necessario arrestare il server prima di poter modificare l'endpoint.

    4. In Actions (Operazioni), scegliere Stop (Arresta).

    5. Nella finestra di dialogo di conferma che appare, scegli Stop per confermare che desideri arrestare il server.

      Nota

      Prima di procedere al passaggio successivo, attendi che lo stato del server passi a Offline; l'operazione può richiedere un paio di minuti. Potrebbe essere necessario scegliere Aggiorna nella pagina Server per vedere la modifica dello stato.

  2. Aggiorna lo stack CloudFormation

    1. Apri la AWS CloudFormation console in https://console.aws.amazon.com/cloudformation.

    2. Scegli lo stack utilizzato per creare il server Transfer Family.

    3. Scegli Aggiorna.

    4. Scegli Sostituisci il modello corrente

    5. Carica il nuovo modello. CloudFormation I set di modifiche ti aiutano a capire in che modo le modifiche ai modelli influiranno sulle risorse in esecuzione prima di implementarle. In questo esempio, la risorsa del server di trasferimento verrà modificata e la VPCEndpoint risorsa verrà rimossa. Il server di tipo VPC endpoint crea un VPC endpoint per conto dell'utente, sostituendo la risorsa originaleVPCEndpoint.

      Dopo aver caricato il nuovo modello, il set di modifiche sarà simile al seguente:

    6. Aggiornare lo stack.

  3. Una volta completato l'aggiornamento dello stack, accedi alla console di gestione di Transfer Family all'indirizzo https://console.aws.amazon.com/transfer/.

  4. Riavvia il server. Scegli il server in cui hai eseguito l'aggiornamento AWS CloudFormation, quindi scegli Avvia dal menu Azioni.

Aggiornamento del server EndpointType tramite API

È possibile utilizzare il comando describe-server o AWS CLI il comando. UpdateServer API Lo script di esempio seguente arresta il server Transfer Family EndpointType, aggiorna, rimuove VPC _ ENDPOINT e avvia il server.

import boto3 import time profile = input("Enter the name of the AWS account you'll be working in: ") region_name = input("Enter the AWS Region you're working in: ") server_id = input("Enter the AWS Transfer Server Id: ") session = boto3.Session(profile_name=profile) ec2 = session.client("ec2", region_name=region_name) transfer = session.client("transfer", region_name=region_name) group_ids=[] transfer_description = transfer.describe_server(ServerId=server_id) if transfer_description['Server']['EndpointType']=='VPC_ENDPOINT': transfer_vpc_endpoint = transfer_description['Server']['EndpointDetails']['VpcEndpointId'] transfer_vpc_endpoint_descriptions = ec2.describe_vpc_endpoints(VpcEndpointIds=[transfer_vpc_endpoint]) for transfer_vpc_endpoint_description in transfer_vpc_endpoint_descriptions['VpcEndpoints']: subnet_ids=transfer_vpc_endpoint_description['SubnetIds'] group_id_list=transfer_vpc_endpoint_description['Groups'] vpc_id=transfer_vpc_endpoint_description['VpcId'] for group_id in group_id_list: group_ids.append(group_id['GroupId']) if transfer_description['Server']['State']=='ONLINE': transfer_stop = transfer.stop_server(ServerId=server_id) print(transfer_stop) time.sleep(300) #safe transfer_update = transfer.update_server(ServerId=server_id,EndpointType='VPC',EndpointDetails={'SecurityGroupIds':group_ids,'SubnetIds':subnet_ids,'VpcId':vpc_id}) print(transfer_update) time.sleep(10) transfer_start = transfer.start_server(ServerId=server_id) print(transfer_start) delete_vpc_endpoint = ec2.delete_vpc_endpoints(VpcEndpointIds=[transfer_vpc_endpoint])