Atualização do tipo de endpoint AWS Transfer Family do servidor de VPC_ENDPOINT para VPC - AWS Transfer Family

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Atualização do tipo de endpoint AWS Transfer Family do servidor de VPC_ENDPOINT para VPC

Você pode usar a Console de gerenciamento da AWS, CloudFormation, ou a API Transfer Family para atualizar a API de um servidor EndpointType de VPC_ENDPOINT paraVPC. Procedimentos detalhados e exemplos para usar cada um desses métodos para atualizar um tipo de endpoint de servidor são apresentados nas seções a seguir. Se você tiver servidores em várias AWS regiões e em várias AWS contas, poderá usar o script de exemplo fornecido na seção a seguir, com modificações, para identificar servidores usando o VPC_ENDPOINT tipo que você precisará atualizar.

Identificação de servidores usando o tipo de endpoint VPC_ENDPOINT

Você pode identificar quais servidores estão usando o VPC_ENDPOINT com o Console de gerenciamento da AWS.

Para identificar servidores usando o tipo de endpoint VPC_ENDPOINT usando o console
  1. Abra o AWS Transfer Family console em https://console.aws.amazon.com/transfer/.

  2. Escolha Servidores no painel de navegação para exibir a lista de servidores em sua conta nessa Região.

  3. Classifique a lista de servidores pelo Tipo de endpoint para ver todos os servidores usando VPC_ENDPOINT.

Para identificar servidores usando VPC_ENDPOINT em várias Regiões e contas da AWS .

Se você tiver servidores em várias AWS regiões e em várias AWS contas, poderá usar o script de exemplo a seguir, com modificações, para identificar servidores usando o tipo de VPC_ENDPOINT endpoint. O script de exemplo usa as operações da Amazon EC2 DescribeRegionse da ListServersAPI Transfer Family. Se você tiver muitas contas da AWS , poderá percorrê-las usando um perfil do IAM com acesso de auditor somente de leitura se você se autenticar usando perfis de sessão no seu provedor de identidade.

  1. Veja a seguir um exemplo simples.

    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. Depois que você tiver a lista dos servidores a serem atualizados, poderá usar um dos métodos descritos nas seções a seguir para atualizar o EndpointType para VPC.

Atualizando o tipo de endpoint do servidor usando o Console de gerenciamento da AWS

  1. Abra o AWS Transfer Family console em https://console.aws.amazon.com/transfer/.

  2. No painel de navegação, selecione Servidores.

  3. Marque a caixa de seleção da predefinição do servidor no qual você deseja alterar o tipo de endpoint.

    Importante

    Você deve interromper o servidor antes de alterar o endpoint.

  4. Em Ações, escolha Interromper.

  5. Na caixa de diálogo de confirmação exibida, escolha Parar para confirmar que quer interromper o servidor.

    nota

    Antes de prosseguir para a próxima etapa, aguarde até que o Status do servidor mude para Offline; isso pode levar alguns minutos. Talvez você precise selecionar Atualizar na página dos Servidores para ver a alteração de status.

  6. Depois que o status mudar para Offline, escolha o servidor para exibir a página de detalhes do servidor.

  7. Na seção Detalhes do endpoint, escolha Editar.

  8. Escolha VPC hospedada para o Tipo de endpoint.

  9. Escolha Salvar.

  10. Em Ações, escolha Iniciar e aguarde até que o status do servidor mude para Online; isso pode levar alguns minutos.

Atualizando o tipo de endpoint do servidor usando CloudFormation

Esta seção descreve como usar CloudFormation para atualizar um servidor EndpointType paraVPC. Use esse procedimento para os servidores Transfer Family que você implantou usando CloudFormation. Neste exemplo, o modelo de CloudFormation original usado para implantar o servidor do Transfer Family é mostrado a seguir:

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

O modelo é atualizado com as seguintes alterações:

  • O EndpointType foi alterado para VPC.

  • O recurso AWS::EC2::VPCEndpoint foi removido.

  • O SecurityGroupId, o SubnetIds e o VpcId foram movidos para a seção EndpointDetails do recurso AWS::Transfer::Server,

  • A propriedade VpcEndpointId de EndpointDetails foi removida.

O modelo atualizado é semelhante ao seguinte:

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 atualizar o tipo de endpoint dos servidores Transfer Family implantados usando CloudFormation
  1. Pare o servidor que você deseja atualizar usando as etapas a seguir.

    1. Abra o AWS Transfer Family console em https://console.aws.amazon.com/transfer/.

    2. No painel de navegação, selecione Servidores.

    3. Marque a caixa de seleção da predefinição do servidor no qual você deseja alterar o tipo de endpoint.

      Importante

      Você deve interromper o servidor antes de alterar o endpoint.

    4. Em Ações, escolha Interromper.

    5. Na caixa de diálogo de confirmação exibida, escolha Parar para confirmar que quer interromper o servidor.

      nota

      Antes de prosseguir para a próxima etapa, aguarde até que o Status do servidor mude para Offline; isso pode levar alguns minutos. Talvez você precise selecionar Atualizar na página dos Servidores para ver a alteração de status.

  2. Atualize a CloudFormation pilha

    1. Abra o CloudFormation console em https://console.aws.amazon.com/cloudformation.

    2. Escolha a pilha usada para criar o servidor do Transfer Family.

    3. Selecione Atualizar.

    4. Escolha Substituir modelo atual

    5. Faça o upload do novo modelo. CloudFormation Os conjuntos de alterações ajudam você a entender como as alterações do modelo afetarão os recursos em execução antes de implementá-las. Neste exemplo, o recurso do servidor de transferência será modificado e o VPCEndpoint recurso será removido. O servidor do tipo endpoint da VPC cria um Endpoint da VPC em seu nome, substituindo o recurso VPCEndpoint original.

      Depois de carregar o novo modelo, o conjunto de alterações será semelhante ao seguinte:

      Mostra a página de visualização do conjunto de alterações para substituir o CloudFormation modelo atual.
    6. Atualize a pilha.

  3. Quando a atualização da pilha estiver concluída, navegue até o console de gerenciamento do Transfer Family em https://console.aws.amazon.com/transfer/.

  4. Reinicie o servidor. Escolha o servidor no qual você atualizou e CloudFormation, em seguida, escolha Iniciar no menu Ações.

Atualizando o servidor EndpointType usando a API

Você pode usar o comando AWS CLI describe-server ou o comando da API UpdateServer. O script de exemplo a seguir interrompe o servidor Transfer Family, atualiza o EndpointType, remove o VPC_ENDPOINT e inicia o 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])