En este documento, se muestra cómo actualizar los buckets de Cloud Storage para un usuario de Cloud FTP, incluidos los buckets a los que un usuario puede acceder y los permisos que tiene el usuario.
En un nivel superior, estos son los pasos para actualizar los buckets de un usuario:
- Actualiza los roles de IAM para la cuenta de servicio del usuario.
- Asigna los directorios del usuario a los buckets actualizados.
Antes de comenzar
Crea uno o más buckets de Cloud Storage para almacenar los datos con los que trabajará el usuario, si los buckets aún no existen. Puedes otorgar a un usuario acceso a un máximo de 10 buckets.
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.
Actualiza los roles de IAM para la cuenta de servicio de un usuario
Si cambias los buckets a los que un usuario puede acceder o el permiso que tiene un usuario para una asignación de directorio existente, debes actualizar la cuenta de servicio del usuario con los roles de IAM pertinentes. Haz lo siguiente:
Obtén la dirección de correo electrónico de la cuenta de servicio del usuario. Para conocer los pasos, consulta Obtén detalles sobre un usuario.
Si agregas buckets nuevos a la asignación de directorios o aumentas el acceso a los buckets existentes, haz lo siguiente:
Otórgate el rol Visualizador de buckets de Storage (
roles/storage.bucketViewer) en el bucket, si aún no lo tienes:gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member="user:ADMINISTRATOR_EMAIL" \ --role="roles/storage.bucketViewer"
Reemplaza lo siguiente:
ADMINISTRATOR_EMAIL: Es la dirección de correo electrónico de la entidad de seguridad que crea el usuario de SFTP. Si creas el usuario (en lugar de una aplicación), este valor es la dirección de correo electrónico que usas para acceder a Google Cloud.BUCKET_NAME: Es el nombre del bucket.
Otórgate el rol Visualizador de objetos de Storage (
roles/storage.objectViewer) en el bucket, si aún no lo tienes:gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member="user:ADMINISTRATOR_EMAIL" \ --role="roles/storage.objectViewer"
Otorga a la cuenta de servicio del usuario los roles de IAM necesarios para acceder a los buckets:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member="serviceAccount:SERVICE_ACCOUNT" \ --role="ROLE_TO_GRANT"
Reemplaza lo siguiente:
SERVICE_ACCOUNT: Es la dirección de correo electrónico de la cuenta de servicio del usuario.ROLE_TO_GRANT: Es el rol de IAM que se otorgará. Especifica uno de los siguientes roles:- 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.
- Para el acceso de solo lectura, usa el rol
Repite los pasos anteriores para cada bucket al que el usuario necesite acceder.
Si quitas buckets de la asignación de directorios o disminuyes el acceso a los buckets existentes, revoca el acceso de la cuenta de servicio del usuario:
gcloud storage buckets remove-iam-policy-binding gs://BUCKET_NAME \ --member="serviceAccount:SERVICE_ACCOUNT" \ --role="ROLE_TO_REVOKE"
Reemplaza
ROLE_TO_REVOKEpor el rol de IAM que deseas revocar.Repite este paso para cada bucket y rol de IAM al que el usuario ya no debería tener acceso.
Actualiza los buckets de un usuario
REST
Para actualizar los buckets de un usuario de SFTP, usa el
servers.users.patch método.
En el parámetro de consulta updateMask, proporciona el campo storageDirectoryMappings.
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 ubicación de
el servidor, como
us-west1. - SERVER_ID: Es el ID del servidor.
- USERNAME: Es el nombre de usuario del usuario de SFTP.
- BUCKET_NAME: Es el nombre de un bucket al que se le otorga acceso al usuario de SFTP, como
example-bucket. Omitegs://. - (Opcional) BUCKET_PREFIX: Es la ruta de acceso de una carpeta dentro del bucket que se establecerá como el directorio raíz para esta asignación de directorios. Si omites este valor, Cloud FTP usa la raíz del bucket.
-
DIRECTORY: Es la ruta de acceso lógica del directorio de destino que se presenta al usuario de SFTP. Por ejemplo,
/home/uploads. Si omites este valor, Cloud FTP establece el directorio de destino en/.Si asignas varios buckets o carpetas, proporciona una ruta de acceso de directorio única para cada asignación.
No se admiten los directorios lógicos anidados. Si proporcionas varias asignaciones para un directorio, proporciona los directorios en una estructura plana en lugar de una estructura anidada. Por ejemplo, usa
/dir1y/dir2en lugar de/dir1y/dir1/dir2. - SFTP_PERMISSION: Es el nivel de acceso para el directorio. Para el acceso de solo lectura, establece este
valor en
READ_ONLY. Para el acceso de lectura y escritura, establece este valor enREAD_WRITE.
Para otorgar a un usuario acceso a varios buckets, proporciona varias asignaciones de bucket en la
storageDirectoryMappings lista.
Método HTTP y URL:
PATCH https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers/SERVER_ID/users/USERNAME?updateMask=storageDirectoryMappings
Cuerpo JSON de la solicitud:
{
"storageDirectoryMappings": [
{
"bucket": "BUCKET_NAME",
"bucketPrefix": "BUCKET_PREFIX",
"directory": "DIRECTORY",
"permission": "SFTP_PERMISSION"
}
]
}
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.
Si un usuario tiene una conexión SFTP activa, es posible que deba desconectarse y volver a conectarse para que la configuración actualizada del bucket surta efecto.