Crea un servidor SFTP interno

En este documento, se muestra cómo crear un servidor SFTP interno con Cloud FTP. Solo se puede acceder a un servidor SFTP interno dentro de tu red de nube privada virtual (VPC) con Private Service Connect. Los empleados y las partes interesadas internas que se encuentran dentro de tu red pueden usar el servidor para transferir archivos de forma segura a Cloud Storage y desde allí.

Especificas los proyectos que tienen permiso para conectarse al servidor. De manera opcional, puedes especificar los proyectos que no tienen permiso para conectarse.

Para obtener información general sobre VPC, consulta Descripción general de VPC.

Si deseas conocer los pasos para crear un servidor externo al que se pueda acceder a través de Internet, consulta Crea un servidor SFTP externo. No puedes cambiar si un servidor es externo o interno después de que se crea.

Antes de comenzar

gcloud

  1. Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. Instala Google Cloud CLI.

  3. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. Crea o selecciona un Google Cloud proyecto.

    Roles necesarios para seleccionar o crear un proyecto

    • Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
    • Crear un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos (roles/resourcemanager.projectCreator), que contiene el resourcemanager.projects.create permiso. Obtén información para otorgar roles.
    • Crea un Google Cloud proyecto:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el Google Cloud proyecto que estás creando.

    • Selecciona el Google Cloud proyecto que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre del Google Cloud proyecto.

  6. Si usas un proyecto existente en esta guía, verifica que tengas los permisos necesarios para completarla. Si creaste un proyecto nuevo, ya tienes los permisos necesarios.

  7. Verifica que la facturación esté habilitada para tu Google Cloud proyecto.

  8. Habilita la API de Cloud FTP:

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el permiso serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén información para otorgar roles.

    gcloud services enable ftp.googleapis.com
  9. Instala Google Cloud CLI.

  10. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  11. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  12. Crea o selecciona un Google Cloud proyecto.

    Roles necesarios para seleccionar o crear un proyecto

    • Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
    • Crear un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos (roles/resourcemanager.projectCreator), que contiene el resourcemanager.projects.create permiso. Obtén información para otorgar roles.
    • Crea un Google Cloud proyecto:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el Google Cloud proyecto que estás creando.

    • Selecciona el Google Cloud proyecto que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre del Google Cloud proyecto.

  13. Si usas un proyecto existente en esta guía, verifica que tengas los permisos necesarios para completarla. Si creaste un proyecto nuevo, ya tienes los permisos necesarios.

  14. Verifica que la facturación esté habilitada para tu Google Cloud proyecto.

  15. Habilita la API de Cloud FTP:

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el permiso serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén información para otorgar roles.

    gcloud services enable ftp.googleapis.com
  16. Recopila la siguiente información sobre los usuarios de tu servidor:

    • Una lista de IDs o números de proyectos que tienen permiso para acceder el servidor.
    • (Opcional) Una lista de IDs o números de proyectos que no tienen permiso para acceder al servidor

Roles obligatorios

Para obtener el permiso que necesitas para crear un servidor SFTP, pídele a tu administrador que te otorgue el rol de IAM Administrador de Cloud FTP (roles/ftp.admin) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene el ftp.servers.create permiso, que se requiere para crear un servidor SFTP.

También puedes obtener este permiso con roles personalizados o otros roles predefinidos.

Crea un servidor interno

gcloud

Para crear un servidor interno, ejecuta el gcloud alpha storage ftp servers create comando y proporciona la --access-type=INTERNAL marca.

Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

  • SERVER_ID: Es un ID único para el servidor. Debe comenzar con una letra minúscula y terminar con una letra minúscula o un número. Puede contener letras minúsculas, números y guiones. La longitud máxima es de 30 caracteres.
  • LOCATION_ID: Es la Google Cloud ubicación de el servidor, como us-west1.

    Para obtener las velocidades de transferencia de datos más rápidas, crea el servidor en la misma ubicación que el bucket de Cloud Storage que almacena tus datos. Si Cloud FTP no admite la ubicación del bucket, selecciona la ubicación disponible más cercana.

  • PROJECT_TO_ALLOW: Es el ID del proyecto o el número de un proyecto de consumidor que tiene permiso para conectarse al servidor con Private Service Connect. Por ejemplo, example-allowed-project. Debes especificar al menos un proyecto.

    Puedes permitir un máximo de 500 proyectos. Proporciona varios proyectos y sus límites de conexión respectivos en una lista separada por comas. Por ejemplo, --consumer-accept-list=projectA=20,projectB=15.

  • CONNECTION_LIMIT: Es la cantidad máxima de extremos de Private Service Connect que se pueden crear en el proyecto de consumidor. El valor debe ser de 1 a 250 extremos.
  • (Opcional) PROJECT_TO_REJECT: Es el ID del proyecto o el número de un proyecto de consumidor que no tiene permiso para conectarse al servidor. Por ejemplo, example-rejected-project. Los proyectos de esta lista no tienen permiso para acceder al servidor, incluso si se incluyen en la lista de proyectos permitidos.

    Puedes rechazar un máximo de 64 proyectos. Proporciona varios proyectos en una lista separada por comas.

    Si no quieres rechazar ningún proyecto de forma explícita, omite la --consumer-reject-list marca.

Ejecuta el siguiente comando:

Linux, macOS o 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

El servidor tarda unos 10 minutos en crearse.

REST

Para crear un servidor interno, usa el servers.create método y proporciona una internalConfig configuración de acceso.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el Google Cloud ID del proyecto del servidor.
  • LOCATION_ID: Es la Google Cloud ubicación de el servidor, como us-west1.

    Para obtener las velocidades de transferencia de datos más rápidas, crea el servidor en la misma ubicación que el bucket de Cloud Storage que almacena tus datos. Si Cloud FTP no admite la ubicación del bucket, selecciona la ubicación disponible más cercana.

  • SERVER_ID: Es un ID único para el servidor. Debe comenzar con una letra minúscula y terminar con una letra minúscula o un número. Puede contener letras minúsculas, números y guiones. La longitud máxima es de 30 caracteres.
  • PROJECT_TO_ALLOW: Es el ID del proyecto o el número de un proyecto de consumidor que tiene permiso para conectarse al servidor con Private Service Connect. Por ejemplo, example-allowed-project. Debes especificar al menos un proyecto.

    Puedes permitir un máximo de 500 proyectos.

  • CONNECTION_LIMIT: Es la cantidad máxima de extremos de Private Service Connect que se pueden crear en el proyecto de consumidor. El valor debe ser de 1 a 250 extremos.
  • (Opcional) PROJECT_TO_REJECT: Es el ID del proyecto o el número de un proyecto de consumidor que no tiene permiso para conectarse al servidor. Por ejemplo, example-rejected-project. Los proyectos de esta lista no tienen permiso para acceder al servidor, incluso si se incluyen en la lista de proyectos permitidos.

    Puedes rechazar un máximo de 64 proyectos.

    Si no quieres rechazar ningún proyecto de forma explícita, omite el consumerRejectList objeto.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, expande una de estas opciones:

La respuesta identifica una operación de larga duración.

El servidor tarda unos 10 minutos en crearse.

¿Qué sigue?