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 hacia y desde Cloud Storage.

Especificas los proyectos que tienen permiso para conectarse al servidor. De manera opcional, puedes especificar los proyectos que se rechazan para la conexión.

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

Si quieres 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 haya creado.

Antes de comenzar

Console

  1. Accede a tu cuenta de Google Cloud . 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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Cloud FTP API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Cloud FTP API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  10. Recopila la siguiente información sobre los usuarios de tu servidor:

    • Es una lista de los IDs o números de proyectos que tienen permiso para acceder al servidor.
    • (Opcional) Es una lista de IDs o números de proyectos a los que se les rechaza el acceso al servidor.

gcloud

  1. Accede a tu cuenta de Google Cloud . 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

    • Selecciona 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 permiso resourcemanager.projects.create. Obtén más información para otorgar roles.
    • Crea un proyecto de Google Cloud :

      gcloud projects create PROJECT_ID

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

    • Selecciona el proyecto Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre de tu proyecto de Google Cloud .

  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 proyecto de Google Cloud .

  8. Habilita la API de Cloud FTP:

    Roles necesarios para habilitar las APIs

    Para habilitar 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 más 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

    • Selecciona 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 permiso resourcemanager.projects.create. Obtén más información para otorgar roles.
    • Crea un proyecto de Google Cloud :

      gcloud projects create PROJECT_ID

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

    • Selecciona el proyecto Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre de tu proyecto de Google Cloud .

  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 proyecto de Google Cloud .

  15. Habilita la API de Cloud FTP:

    Roles necesarios para habilitar las APIs

    Para habilitar 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 más información para otorgar roles.

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

    • Es una lista de los IDs o números de proyectos que tienen permiso para acceder al servidor.
    • (Opcional) Es una lista de IDs o números de proyectos a los que se les rechaza el acceso 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 de 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 permiso ftp.servers.create, que se requiere para crear un servidor SFTP.

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

Crea un servidor interno

Console

  1. En la consola de Google Cloud , ve a la página Cloud FTP.

    Ir a Cloud FTP

  2. Haz clic en Crear servidor.

  3. En la pestaña Configuración del servidor, ingresa los detalles básicos del servidor:

    1. En el campo ID del servidor, ingresa un ID único para el servidor.

    2. En la lista Región, selecciona la ubicaciónGoogle Cloud del servidor.

      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.

    3. Ingresa un nombre visible para el servidor (opcional).

    4. Haz clic en Continuar.

  4. En la pestaña Redes y seguridad, configura la conectividad del servidor:

    1. Selecciona Interno (solo VPC).

    2. En la sección Proyectos aceptados, especifica los proyectos del consumidor que pueden conectarse al servidor a través de Private Service Connect. Haz lo siguiente:

      1. En el campo Proyecto, ingresa el ID del proyecto o el número de un proyecto al que se le permite conectarse. Por ejemplo, example-allowed-project.

      2. En el campo Límite de conexiones, ingresa la cantidad máxima de extremos de Private Service Connect que se pueden crear en el proyecto del consumidor. El valor debe ser de 1 a 250 extremos.

      3. Para agregar más proyectos, haz clic en Agregar proyecto aceptado y, luego, repite los pasos anteriores.

    3. (Opcional) Para prohibir que los proyectos se conecten al servidor, en la sección Proyectos rechazados, haz clic en Agregar proyecto rechazado. Ingresa el ID del proyecto o el número de un proyecto del consumidor que no puede conectarse al servidor.

      Se rechaza el acceso a los servidores de los proyectos que se encuentran en esta lista, incluso si están incluidos en la lista de proyectos permitidos.

  5. Haz clic en Crear.

    El servidor tarda unos 10 minutos en crearse.

gcloud

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

Antes de usar cualquiera de los datos de comando a continuación, haz 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: La Google Cloud ubicación del 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 a través de 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 respectivos límites de conexión 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 al que se le prohíbe conectarse al servidor. Por ejemplo, example-rejected-project Se rechaza el acceso de los proyectos de esta lista 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 explícitamente ningún proyecto, omite la marca --consumer-reject-list.

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 método servers.create y proporciona una configuración de acceso internalConfig.

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

  • PROJECT_ID: Es el ID del proyecto de Google Cloud del servidor.
  • LOCATION_ID: La Google Cloud ubicación del 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 a través de 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 al que se le prohíbe conectarse al servidor. Por ejemplo, example-rejected-project Se rechaza el acceso de los proyectos de esta lista al servidor, incluso si se incluyen en la lista de proyectos permitidos.

    Puedes rechazar un máximo de 64 proyectos.

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

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?