Criar um servidor SFTP interno

Este documento mostra como criar um servidor SFTP interno usando o Cloud FTP. Um servidor SFTP interno só pode ser acessado na sua rede de nuvem privada virtual (VPC) usando o Private Service Connect. Os funcionários e stakeholders internos da sua rede podem usar o servidor para transferir arquivos com segurança para e do Cloud Storage.

Você especifica os projetos que podem se conectar ao servidor. Opcionalmente, é possível especificar projetos que não podem se conectar.

Para informações básicas sobre a VPC, consulte Visão geral da VPC.

Para conferir as etapas de criação de um servidor externo, que pode ser acessado pela Internet, consulte Criar um servidor SFTP externo. Não é possível mudar se um servidor é externo ou interno depois que ele é criado.

Antes de começar

gcloud

  1. Faça login na sua Google Cloud conta do. Se você não conhece o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em cenários reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
  2. Instale a Google Cloud CLI.

  3. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  4. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  5. Crie ou selecione um Google Cloud projeto.

    Funções necessárias para selecionar ou criar um projeto

    • Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. É possível selecionar qualquer projeto em que você tenha recebido um papel.
    • Criar um projeto: para criar um projeto, você precisa do papel de Criador de projetos (roles/resourcemanager.projectCreator), que contém a resourcemanager.projects.create permissão. Saiba como conceder papéis.
    • Criar um Google Cloud projeto:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o Google Cloud projeto que você está criando.

    • Selecione o Google Cloud projeto que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do seu Google Cloud projeto.

  6. Se este guia estiver usando um projeto atual, verifique se você tem as permissões necessárias para concluir o guia. Se você criou um projeto, já tem as permissões necessárias.

  7. Verifique se o faturamento está ativado para o seu Google Cloud projeto.

  8. Ative a API Cloud FTP:

    Funções necessárias para ativar APIs

    Para ativar as APIs, é necessário ter a permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão pelo papel de Administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    gcloud services enable ftp.googleapis.com
  9. Instale a Google Cloud CLI.

  10. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  11. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  12. Crie ou selecione um Google Cloud projeto.

    Funções necessárias para selecionar ou criar um projeto

    • Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. É possível selecionar qualquer projeto em que você tenha recebido um papel.
    • Criar um projeto: para criar um projeto, você precisa do papel de Criador de projetos (roles/resourcemanager.projectCreator), que contém a resourcemanager.projects.create permissão. Saiba como conceder papéis.
    • Criar um Google Cloud projeto:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o Google Cloud projeto que você está criando.

    • Selecione o Google Cloud projeto que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do seu Google Cloud projeto.

  13. Se este guia estiver usando um projeto atual, verifique se você tem as permissões necessárias para concluir o guia. Se você criou um projeto, já tem as permissões necessárias.

  14. Verifique se o faturamento está ativado para o seu Google Cloud projeto.

  15. Ative a API Cloud FTP:

    Funções necessárias para ativar APIs

    Para ativar as APIs, é necessário ter a permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão pelo papel de Administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    gcloud services enable ftp.googleapis.com
  16. Colete as seguintes informações sobre os usuários do servidor:

    • Uma lista de IDs ou números de projetos que podem acessar o servidor.
    • (Opcional) Uma lista de IDs ou números de projetos que não podem acessar o servidor.

Funções exigidas

Para receber a permissão necessária para criar um servidor SFTP, peça ao administrador para conceder a você o papel do IAM de Administrador do Cloud FTP (roles/ftp.admin) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém a ftp.servers.create permissão, que é necessária para criar um servidor SFTP.

Também é possível conseguir essa permissão com papéis personalizados ou outros papéis predefinidos.

Criar um servidor interno

gcloud

Para criar um servidor interno, execute o gcloud alpha storage ftp servers create comando e forneça a --access-type=INTERNAL flag.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • SERVER_ID: um ID exclusivo para o servidor. Precisa começar e terminar com uma letra minúscula ou um número. Pode conter letras minúsculas, números e hífens. O comprimento máximo é de 30 caracteres.
  • LOCATION_ID: o Google Cloud local do servidor, como us-west1.

    Para velocidades de transferência de dados mais rápidas, crie o servidor no mesmo local que o bucket do Cloud Storage que armazena seus dados. Se o local do bucket não for compatível com o Cloud FTP, selecione o local disponível mais próximo.

  • PROJECT_TO_ALLOW: o ID do projeto ou número de um projeto de consumidor que pode se conectar ao servidor usando o Private Service Connect. Por exemplo, example-allowed-project. É necessário especificar pelo menos um projeto.

    É possível permitir um máximo de 500 projetos. Forneça vários projetos e os limites de conexão respectivos em uma lista separada por vírgulas. Por exemplo, --consumer-accept-list=projectA=20,projectB=15.

  • CONNECTION_LIMIT: o número máximo de endpoints do Private Service Connect que podem ser criados no projeto do consumidor. O valor precisa ser de 1 a 250 endpoints.
  • (Opcional) PROJECT_TO_REJECT: o ID do projeto ou número de um projeto de consumidor que não pode se conectar ao servidor. Por exemplo, example-rejected-project. Os projetos nessa lista são rejeitados para acessar o servidor, mesmo que estejam incluídos na lista de projetos permitidos.

    É possível rejeitar um máximo de 64 projetos. Forneça vários projetos em uma lista separada por vírgulas.

    Se você não quiser rejeitar explicitamente nenhum projeto, omita a --consumer-reject-list flag.

Execute o comando a seguir:

Linux, macOS ou Cloud Shell

gcloud alpha storage ftp servers create SERVER_ID --access-type=INTERNAL \
    --location=LOCATION_ID \
    --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT \
    --consumer-reject-list=PROJECT_TO_REJECT

Windows (PowerShell)

gcloud alpha storage ftp servers create SERVER_ID --access-type=INTERNAL `
    --location=LOCATION_ID `
    --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT `
    --consumer-reject-list=PROJECT_TO_REJECT

Windows (cmd.exe)

gcloud alpha storage ftp servers create SERVER_ID --access-type=INTERNAL ^
    --location=LOCATION_ID ^
    --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT ^
    --consumer-reject-list=PROJECT_TO_REJECT

Leva cerca de 10 minutos para o servidor ser criado.

REST

Para criar um servidor interno, use o servers.create método e forneça uma internalConfig configuração de acesso.

Antes de usar os dados da solicitação, faça estas substituições:

  • PROJECT_ID: o Google Cloud ID do projeto do servidor.
  • LOCATION_ID: o Google Cloud local do servidor, como us-west1.

    Para velocidades de transferência de dados mais rápidas, crie o servidor no mesmo local que o bucket do Cloud Storage que armazena seus dados. Se o local do bucket não for compatível com o Cloud FTP, selecione o local disponível mais próximo.

  • SERVER_ID: um ID exclusivo para o servidor. Precisa começar e terminar com uma letra minúscula ou um número. Pode conter letras minúsculas, números e hífens. O comprimento máximo é de 30 caracteres.
  • PROJECT_TO_ALLOW: o ID do projeto ou número de um projeto de consumidor que pode se conectar ao servidor usando o Private Service Connect. Por exemplo, example-allowed-project. É necessário especificar pelo menos um projeto.

    É possível permitir um máximo de 500 projetos.

  • CONNECTION_LIMIT: o número máximo de endpoints do Private Service Connect que podem ser criados no projeto do consumidor. O valor precisa ser de 1 a 250 endpoints.
  • (Opcional) PROJECT_TO_REJECT: o ID do projeto ou número de um projeto de consumidor que não pode se conectar ao servidor. Por exemplo, example-rejected-project. Os projetos nessa lista são rejeitados para acessar o servidor, mesmo que estejam incluídos na lista de projetos permitidos.

    É possível rejeitar um máximo de 64 projetos.

    Se você não quiser rejeitar explicitamente nenhum projeto, omita o consumerRejectList objeto.

Método HTTP e URL:

POST https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers?serverId=SERVER_ID

Corpo JSON da solicitação:

{
  "accessType": "INTERNAL",
  "internalConfig": {
    "consumerAcceptList": [
      {
        "project": "projects/PROJECT_TO_ALLOW",
        "connectionLimit": CONNECTION_LIMIT
      }
    ],
    "consumerRejectList": [
      {
        "project": "projects/PROJECT_TO_REJECT"
      }
    ]
  }
}

Para enviar a solicitação, expanda uma destas opções:

A resposta identifica uma operação de longa duração.

Leva cerca de 10 minutos para o servidor ser criado.

A seguir