Actualiza la cuenta de servicio de un usuario de SFTP

En este documento, se muestra cómo actualizar la cuenta de servicio de un usuario de Cloud FTP. La cuenta de servicio accede a los recursos de Cloud Storage en nombre del usuario.

En un nivel superior, estos son los pasos para actualizar la cuenta de servicio de un usuario:

  1. Configura una cuenta de servicio con los roles de IAM adecuados.
  2. Actualiza la cuenta de servicio conectada al usuario.

Te recomendamos que uses una cuenta de servicio dedicada para cada usuario de modo que puedas administrar el acceso a SFTP por separado para cada usuario.

Roles obligatorios

Para obtener el permiso que necesitas para actualizar los usuarios de SFTP, pídele a tu administrador que te otorgue el rol de IAM Administrador de 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.users.update permiso, que se requiere para actualizar los usuarios de SFTP.

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

Configura una cuenta de servicio

  1. Crea una cuenta de servicio para el usuario si aún no existe.

    gcloud iam service-accounts create USERNAME-sa \
        --description="USERNAME SFTP Service Account" \
        --display-name="USERNAME SFTP Service Account"

    Reemplaza USERNAME por un nombre de usuario único para el usuario de SFTP. El nombre de usuario debe comenzar con una letra minúscula y puede incluir letras minúsculas, números o guiones.

    Si la operación se realiza de forma correcta, se muestra un mensaje como Created service account [example-userid-sa].

  2. Otórgate el rol Usuario de cuenta de servicio (roles/iam.serviceAccountUser):

    gcloud iam service-accounts add-iam-policy-binding USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com \
        --member="user:ADMINISTRATOR_EMAIL" \
        --role="roles/iam.serviceAccountUser"

    Reemplaza ADMINISTRATOR_EMAIL por la dirección de correo electrónico de la entidad principal que actualiza el usuario de SFTP. Si actualizas el usuario (en lugar de una aplicación), este valor es la dirección de correo electrónico que usas para acceder Google Cloud.

    Si la operación se realiza de forma correcta, se muestra un mensaje como el siguiente:

    Updated IAM policy for serviceAccount [example-userid-sa@example-project.iam.gserviceaccount.com].
    bindings:
    - members:
    - user:admin@example.com
    role: roles/iam.serviceAccountUser
    etag: BwZJk7OiSzw=
    version: 1
    
  3. Otorga a la cuenta de servicio del usuario el rol de IAM necesario para acceder al bucket:

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
        --member="serviceAccount:USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com" \
        --role="ROLE"

    Reemplaza ROLE por uno de los siguientes roles de IAM:

    • Para el acceso de solo lectura, usa el rol roles/storage.objectViewer.
    • Para el acceso de lectura y escritura, usa el rol roles/storage.objectAdmin.

    Repite este paso para cada bucket al que el usuario necesite acceder.

  4. Autoriza al agente de servicio de Cloud FTP para generar tokens para la cuenta de servicio del usuario:

    1. Obtén la dirección de correo electrónico del agente de servicio del servidor SFTP. Para conocer los pasos, consulta Obtén detalles sobre un servidor.

    2. Autoriza al agente de servicio de Cloud FTP:

      gcloud iam service-accounts add-iam-policy-binding USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com \
          --member="serviceAccount:SERVICE_AGENT_EMAIL" \
          --role="roles/iam.serviceAccountTokenCreator"

      Reemplaza SERVICE_AGENT_EMAIL por la dirección de correo electrónico del agente de servicio.

A continuación, actualiza la cuenta de servicio del usuario.

Actualiza la cuenta de servicio de un usuario

REST

Para actualizar la cuenta de servicio conectada a un usuario de SFTP, usa el servers.users.patch método. En el parámetro de consulta updateMask, proporciona el campo customerServiceAccount.

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

  • PROJECT_ID: el Google Cloud ID del proyecto del servidor
  • LOCATION_ID: la ubicación de el servidor, como us-west1.
  • SERVER_ID: el ID del servidor
  • USERNAME: el nombre de usuario del usuario de SFTP

Método HTTP y URL:

PATCH https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers/SERVER_ID/users/USERNAME?updateMask=customerServiceAccount

Cuerpo JSON de la solicitud:

{
  "customerServiceAccount": "USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com"
}

Para enviar tu solicitud, expande una de estas opciones:

La respuesta identifica una operación de larga duración. La actualización del usuario tarda unos segundos.

¿Qué sigue?