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.
Actualización del tipo de punto final AWS Transfer Family del servidor de VPC_ENDPOINT a VPC
Puedes usar la AWS Management Console API Transfer Family o la API Transfer Family para actualizar el servidor EndpointType
de VPC_ENDPOINT
aVPC
. AWS CloudFormation 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 mediante el VPC_ENDPOINT
tipo que necesitará actualizar.
Temas
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
-
Abra la AWS Transfer Family consola en https://console.aws.amazon.com/transfer/
. -
Seleccione Servidores en el panel de navegación para ver la lista de servidores de su cuenta en esa región.
-
Ordene la lista de servidores por tipo de punto de conexión para ver todos los servidores que utilizan
VPC_ENDPOINT
.
Identificación de los servidores que utilizan VPC_ENDPOINT
en varias regiones y cuentas de AWS
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 usa las operaciones de la ListServersAPI Amazon EC2 DescribeRegionsy Transfer Family. Si tiene varias cuentas de AWS , puede recorrerlas utilizando un rol de IAM con acceso de auditor de solo lectura si se autentica mediante perfiles de sesión ante su proveedor de identidad.
-
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)
-
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
aVPC
.
Actualización del tipo de punto final del servidor mediante AWS Management Console
-
Abra la AWS Transfer Family consola en https://console.aws.amazon.com/transfer/
. -
En el panel de navegación, seleccione Servers (Servidores).
-
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.
-
En Acciones, seleccione Detener.
-
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.
-
Cuando el estado cambie a Sin conexión, seleccione el servidor para que aparezca la página de detalles del servidor.
-
En la sección Detalles del punto de conexión, elija Editar.
-
Elija VPC alojada como tipo de punto de conexión.
-
Seleccione Save.
-
En Acciones, seleccione Iniciar y espere a que el estado del servidor cambie a En línea; esto puede tardar un par de minutos.
Actualización del 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 desplegado mediante AWS CloudFormation. En este ejemplo, la plantilla original AWS CloudFormation
utilizada para implementar el servidor de 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ó aVPC
. -
Se ha eliminado el recurso
AWS::EC2::VPCEndpoint
. -
SecurityGroupId
,SubnetIds
yVpcId
pasaron a la secciónEndpointDetails
del recursoAWS::Transfer::Server
, -
Se ha eliminado
VpcEndpointId
propiedad deEndpointDetails
.
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
-
Detenga el servidor que desea actualizar siguiendo estos pasos.
-
Abra la AWS Transfer Family consola en https://console.aws.amazon.com/transfer/
. -
En el panel de navegación, seleccione Servers (Servidores).
-
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.
-
En Acciones, seleccione Detener.
-
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.
-
-
Actualiza la CloudFormation pila
Abre la AWS CloudFormation consola en https://console.aws.amazon.com/cloudformation.
-
Seleccione la pila de que se va a utilizar para crear el servidor de Transfer Family.
-
Elija Actualizar.
-
Elija Reemplazar la plantilla actual
-
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 servidor de tipo punto de conexión de VPC crea un punto de conexión de VPC en su nombre y reemplaza el recurso original
VPCEndpoint
.Tras cargar la nueva plantilla, el conjunto de cambios será el siguiente:
-
Actualice la pila.
-
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/
. -
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.
Actualización del servidor EndpointType mediante la API
Puede usar el comando describe-server AWS CLI o el comando API UpdateServer. El siguiente script de ejemplo detiene el servidor Transfer Family, lo actualiza EndpointType, elimina el 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])