Actualizar el tipo AWS Transfer Family de punto final del servidor de VPC _ ENDPOINT a VPC - AWS Transfer Family

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Actualizar el tipo AWS Transfer Family de punto final del servidor de VPC _ ENDPOINT a VPC

Puede usar Transfer Family AWS Management Console AWS CloudFormation, o Transfer Family API para actualizar el servidor EndpointType de VPC_ENDPOINT aVPC. En las siguientes secciones se proporcionan procedimientos detallados y ejemplos para usar cada uno de estos métodos para actualizar un tipo de punto de conexión de servidor. Si tiene servidores en varias AWS regiones y en varias AWS cuentas, puede usar el script de ejemplo que se proporciona en la siguiente sección, con las modificaciones, para identificar los servidores según el VPC_ENDPOINT tipo que necesitará actualizar.

Identificar los servidores mediante el tipo de VPC_ENDPOINT punto de conexión

Puede identificar qué servidores utilizan VPC_ENDPOINT mediante AWS Management Console.

Identificación de los servidores que utilizan el punto de conexión VPC_ENDPOINT mediante la consola
  1. Abra la AWS Transfer Family consola en https://console.aws.amazon.com/transfer/.

  2. Seleccione Servidores en el panel de navegación para ver la lista de servidores de su cuenta en esa región.

  3. Ordene la lista de servidores por tipo de punto de conexión para ver todos los servidores que utilizan VPC_ENDPOINT.

Para identificar los servidores que se utilizan VPC_ENDPOINT en varias AWS regiones y cuentas

Si tiene servidores en varias AWS regiones y en varias AWS cuentas, puede utilizar el siguiente script de ejemplo, con modificaciones, para identificar los servidores mediante el tipo de VPC_ENDPOINT punto final. El script de ejemplo utiliza las ListServers API llamadas de Amazon EC2 DescribeRegionsy Transfer Family para obtener una lista del servidor IDs y las regiones de todos los servidores que utilizaVPC_ENDPOINT. Si tiene varias AWS cuentas, puede recorrerlas utilizando un IAM rol con acceso de auditor de solo lectura si se autentica mediante perfiles de sesión ante su proveedor de identidad.

  1. A continuación se muestra un ejemplo simple.

    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. Una vez que tenga la lista de servidores que desea actualizar, puede utilizar uno de los métodos descritos en las siguientes secciones para actualizar EndpointType a VPC.

Actualizar el tipo de punto final del servidor mediante AWS Management Console

  1. Abra la AWS Transfer Family consola en https://console.aws.amazon.com/transfer/.

  2. En el panel de navegación, seleccione Servers (Servidores).

  3. Seleccione la casilla de verificación del servidor para el que desee cambiar el tipo de punto de conexión.

    importante

    Debe detener el servidor para poder cambiar el punto de conexión.

  4. En Acciones, seleccione Detener.

  5. En el cuadro de diálogo de confirmación que aparece, seleccione Detener para confirmar que desea detener el servidor.

    nota

    Antes de continuar con el siguiente paso, espere a que el estado del servidor cambie a Desconectado; esto puede tardar un par de minutos. Puede que tenga que elegir Actualizar en la página de Servidores para ver el cambio de estado.

  6. Cuando el estado cambie a Sin conexión, seleccione el servidor para que aparezca la página de detalles del servidor.

  7. En la sección Detalles del punto de conexión, elija Editar.

  8. Elija VPChospedado como tipo de punto final.

  9. Seleccione Save.

  10. En Acciones, seleccione Iniciar y espere a que el estado del servidor cambie a En línea; esto puede tardar un par de minutos.

Actualizar el tipo de punto final del servidor mediante AWS CloudFormation

En esta sección se describe AWS CloudFormation cómo actualizar el servidor EndpointType aVPC. Utilice este procedimiento para los servidores Transfer Family que haya implementado mediante AWS CloudFormation. En este ejemplo, la AWS CloudFormation plantilla original utilizada para implementar el servidor Transfer Family se muestra de la siguiente manera:

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

La plantilla se actualiza con los siguientes cambios:

  • EndpointType cambió a VPC.

  • Se ha eliminado el recurso AWS::EC2::VPCEndpoint.

  • SecurityGroupId, SubnetIds y VpcId pasaron a la sección EndpointDetails del recurso AWS::Transfer::Server,

  • Se ha eliminado VpcEndpointId propiedad de EndpointDetails.

La plantilla actualizada es el siguiente:

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
Para actualizar el tipo de punto final de los servidores Transfer Family implementados mediante AWS CloudFormation
  1. Detenga el servidor que desea actualizar siguiendo estos pasos.

    1. Abra la AWS Transfer Family consola en https://console.aws.amazon.com/transfer/.

    2. En el panel de navegación, seleccione Servers (Servidores).

    3. Seleccione la casilla de verificación del servidor para el que desee cambiar el tipo de punto de conexión.

      importante

      Debe detener el servidor para poder cambiar el punto de conexión.

    4. En Acciones, seleccione Detener.

    5. En el cuadro de diálogo de confirmación que aparece, seleccione Detener para confirmar que desea detener el servidor.

      nota

      Antes de continuar con el siguiente paso, espere a que el estado del servidor cambie a Desconectado; esto puede tardar un par de minutos. Puede que tenga que elegir Actualizar en la página de Servidores para ver el cambio de estado.

  2. Actualiza la CloudFormation pila

    1. Abre la AWS CloudFormation consola en https://console.aws.amazon.com/cloudformation.

    2. Seleccione la pila de que se va a utilizar para crear el servidor de Transfer Family.

    3. Elija Actualizar.

    4. Elija Reemplazar la plantilla actual

    5. Cargue la nueva plantilla. CloudFormation Los conjuntos de cambios le ayudan a comprender cómo afectarán los cambios en las plantillas a los recursos en ejecución antes de implementarlos. En este ejemplo, se modificará el recurso del servidor de transferencias y se eliminará el VPCEndpoint recurso. El tipo de servidor de VPC punto final crea un VPC punto final en su nombre y reemplaza el VPCEndpoint recurso original.

      Tras cargar la nueva plantilla, el conjunto de cambios será el siguiente:

    6. Actualice la pila.

  3. Cuando se complete la actualización de la pila, diríjase a la consola de administración de Transfer Family en https://console.aws.amazon.com/transfer/.

  4. Reinicie el servidor. Elija el servidor en el que realizó la actualización y AWS CloudFormation, a continuación, seleccione Iniciar en el menú Acciones.

Actualizar el servidor EndpointType mediante el API

Puede utilizar el comando describe-server o AWS CLI el comando. UpdateServer API El siguiente script de ejemplo detiene el servidor Transfer Family EndpointType, actualiza, elimina VPC _ ENDPOINT e inicia el servidor.

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])