En esta página se describe cómo definir políticas de Gestión de Identidades y Accesos (IAM) en carpetas gestionadas para obtener un control de acceso pormenorizado sobre grupos de objetos específicos de un segmento.
Si buscas otros métodos de control de acceso, consulta los siguientes recursos:
Para obtener información sobre cómo controlar el acceso a segmentos completos y a los objetos que contienen, consulta Definir y gestionar políticas de gestión de identidades y accesos en segmentos.
Para controlar el acceso a objetos concretos de tus segmentos de otra forma, consulta el artículo Listas de control de acceso.
Para obtener más información sobre cómo controlar el acceso a los recursos de Cloud Storage, consulta la descripción general del control de acceso.
Roles obligatorios
Para obtener los permisos que necesitas para definir y gestionar las políticas de gestión de identidades y accesos de las carpetas gestionadas, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de carpetas de almacenamiento (roles/storage.folderAdmin
) del segmento que contiene las carpetas gestionadas.
Este rol contiene los siguientes permisos, que son necesarios para definir y gestionar políticas de gestión de identidades y accesos de carpetas gestionadas:
storage.managedFolders.getIamPolicy
storage.managedFolders.setIamPolicy
También puedes obtener estos permisos con roles personalizados.
Para obtener información sobre cómo conceder roles a los segmentos, consulta Definir y gestionar políticas de IAM en segmentos.
Definir una política de gestión de identidades y accesos en una carpeta gestionada
Consola
- En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.
En la lista de segmentos, haga clic en el nombre del segmento que contiene la carpeta gestionada en la que quiere definir una política de IAM.
En la página Detalles del bucket, haga clic en el icono Más opciones
en el panel Explorador de carpetas, situado junto a la carpeta gestionada en la que quiera definir una política de gestión de identidades y accesos.Si quieres controlar el acceso a una carpeta o a una carpeta simulada, sigue los pasos que se indican en el artículo Crear una carpeta gestionada para habilitar la gestión en la carpeta o en la carpeta simulada.
Haz clic en Editar acceso.
En el panel Permisos de
MANAGED_FOLDER_NAME
, haz clic en Añadir principal .En el campo New principals (Nuevos principales), introduce el principal al que quieras conceder acceso. Para obtener más información sobre los principales que puedes incluir, consulta Identificadores principales.
En la sección Asignar roles, usa el desplegable Seleccionar un rol para especificar el nivel de acceso que quieras conceder a la entidad de seguridad.
Haz clic en Guardar.
Línea de comandos
Crea un archivo JSON que contenga la siguiente información:
{ "bindings":[ { "role": "IAM_ROLE", "members":[ "PRINCIPAL_IDENTIFIER" ] } ] }
Donde:
IAM_ROLE
es el rol de gestión de identidades y accesos que vas a conceder. Por ejemplo,roles/storage.objectViewer
.PRINCIPAL_IDENTIFIER
identifica a quién le das acceso a la carpeta gestionada. Por ejemplo,user:jeffersonloveshiking@gmail.com
. Para ver una lista de formatos de identificadores principales, consulta Identificadores principales.
Usa el comando
gcloud storage managed-folders set-iam-policy
:gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME POLICY_FILE
Donde:
BUCKET_NAME
es el nombre del segmento que contiene la carpeta gestionada a la que quieres aplicar la política de IAM. Por ejemplo,my-bucket
.MANAGED_FOLDER_NAME
es el nombre de la carpeta gestionada a la que quieres aplicar la política de IAM. Por ejemplo,my-managed-folder/
.POLICY_FILE
es la ruta al archivo JSON que has creado en el paso 1.
APIs REST
JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Crea un archivo JSON que contenga la siguiente información:
{ "bindings":[ { "role": "IAM_ROLE", "members":[ "PRINCIPAL_IDENTIFIER" ] } ] }
Donde:
IAM_ROLE
es el rol de gestión de identidades y accesos que vas a conceder. Por ejemplo,roles/storage.objectViewer
.PRINCIPAL_IDENTIFIER
identifica a quién le das acceso a la carpeta gestionada. Por ejemplo,user:jeffersonloveshiking@gmail.com
. Para ver una lista de formatos de identificadores principales, consulta Identificadores principales.
Usa
cURL
para llamar a la API JSON con una solicitudPUT setIamPolicy
:curl -X PUT --data-binary @POLICY_FILE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
Donde:
POLICY_FILE
es la ruta al archivo de política JSON que has creado en el paso anterior.BUCKET_NAME
es el nombre del segmento que contiene la carpeta gestionada a la que quieres aplicar la política de IAM. Por ejemplo,my-bucket
.MANAGED_FOLDER_NAME
es el nombre de la carpeta gestionada a la que quieres dar acceso al principal. Por ejemplo,my-managed-folder/
.
Ver la política de gestión de identidades y accesos de una carpeta gestionada
Consola
- En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.
En la lista de segmentos, haga clic en el nombre del segmento que contiene la carpeta gestionada de la que quiere ver las políticas de gestión de identidades y accesos.
En la página Detalles del bucket, haga clic en el icono Más opciones
en el panel Explorador de carpetas, junto a la carpeta gestionada de la que quiera ver la política de IAM.Haz clic en Editar acceso.
En el panel Permisos de FOLDER_NAME
se muestran los permisos de la carpeta gestionada, incluidos la entidad principal, el rol, los roles heredados y las condiciones de gestión de identidades y accesos.
Línea de comandos
Usa el comando gcloud storage managed-folder get-iam-policy
:
gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME
Donde:
BUCKET_NAME
es el nombre del segmento que contiene la carpeta gestionada cuya política de IAM quieres consultar. Por ejemplo,my-bucket
.MANAGED_FOLDER_NAME
es el nombre de la carpeta gestionada cuya política de gestión de identidades y accesos quieres ver. Por ejemplo,my-managed-folder/
.
APIs REST
JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API JSON con una solicitudGET getIamPolicy
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
Donde:
BUCKET_NAME
es el nombre del segmento que contiene la carpeta gestionada cuya política de gestión de identidades y accesos quieres ver. Por ejemplo,my-bucket
.MANAGED_FOLDER_NAME
es el nombre de la carpeta gestionada cuya política de gestión de identidades y accesos quieres ver. Por ejemplo,my-managed-folder/
.
Quitar un principal de una política de carpetas gestionadas
Consola
- En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.
En la lista de segmentos, haga clic en el nombre del segmento que contiene la carpeta gestionada de la que quiere ver las políticas de gestión de identidades y accesos.
En la página Detalles del contenedor, haga clic en el icono Más opciones
en el panel Explorador de carpetas situado junto a la carpeta gestionada de la que quiera quitar un principal.Haz clic en Editar acceso.
En el panel Permisos de
FOLDER_NAME
, introduce el nombre de la cuenta principal en el campo Filtro.Haga clic en el icono Eliminar
para eliminar la entidad de seguridad.
Cloud Storage elimina la entidad de tu carpeta gestionada.
Línea de comandos
Usa el comando gcloud storage managed-folder remove-iam-policy-binding
:
gcloud storage managed-folders remove-iam-policy-binding gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE
Donde:
BUCKET_NAME
es el nombre del segmento que contiene la carpeta gestionada a la que vas a revocar el acceso. Por ejemplo,my-bucket
.MANAGED_FOLDER_NAME
es el nombre de la carpeta gestionada cuya política de IAM quieres eliminar. Por ejemplo,my-managed-folder/
.PRINCIPAL_IDENTIFIER
identifica a quién le vas a revocar el acceso. Por ejemplo,user:jeffersonloveshiking@gmail.com
. Para ver una lista de formatos de identificadores principales, consulta Identificadores principales.IAM_ROLE
es el rol de gestión de identidades y accesos que vas a revocar. Por ejemplo,roles/storage.objectViewer
.
APIs REST
JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Obtén la política que se ha aplicado a tu carpeta gestionada. Para ello, usa
cURL
para llamar a la API JSON con una solicitudGET getIamPolicy
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
Donde:
BUCKET_NAME
es el nombre del segmento que contiene la carpeta gestionada a la que vas a revocar el acceso. Por ejemplo,my-bucket
.MANAGED_FOLDER_NAME
es el nombre de la carpeta gestionada cuya política de IAM quieres eliminar. Por ejemplo,my-managed-folder/
.
Crea un archivo JSON que contenga la política que has obtenido en el paso anterior.
Edita el archivo JSON para quitar la entidad de la política.
Usa
cURL
para llamar a la API JSON con una solicitudPUT setIamPolicy
:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
Donde:
JSON_FILE_NAME
es la ruta del archivo que has creado en el paso 3.BUCKET_NAME
es el nombre del segmento que contiene la carpeta gestionada a la que vas a revocar el acceso. Por ejemplo,my-bucket
.MANAGED_FOLDER_NAME
es el nombre de la carpeta gestionada cuya política de IAM quieres eliminar. Por ejemplo,my-managed-folder/
.
Usar condiciones de gestión de identidades y accesos en carpetas gestionadas
En las siguientes secciones se explica cómo añadir y quitar condiciones de gestión de identidades y accesos en tus carpetas gestionadas. Para ver las condiciones de gestión de identidades y accesos de tus carpetas gestionadas, consulta Ver la política de gestión de identidades y accesos de una carpeta gestionada. Para obtener más información sobre cómo usar las condiciones de gestión de identidades y accesos con Cloud Storage, consulta Condiciones.
Debes habilitar el acceso uniforme a nivel de segmento en el segmento antes de añadir condiciones a las carpetas gestionadas.
Definir una nueva condición en una carpeta gestionada
Línea de comandos
Crea un archivo JSON o YAML que defina la condición, incluido el
title
de la condición, la lógica basada en atributosexpression
de la condición y, opcionalmente, undescription
de la condición.Ten en cuenta que Cloud Storage solo admite los atributos fecha/hora, tipo de recurso y nombre de recurso en
expression
.Usa el comando
gcloud storage managed-folders add-iam-policy-binding
con la marca--condition-from-file
:
gcloud storage managed-folders add-iam-policy-binding gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE --condition-from-file=CONDITION_FILE
Donde:
BUCKET_NAME
es el nombre del segmento que contiene la carpeta gestionada a la que quieres dar acceso al principal. Por ejemplo,my-bucket
.MANAGED_FOLDER_NAME
es el nombre de la carpeta gestionada a la que vas a conceder acceso al principal. Por ejemplo,my-managed-folder/
.PRINCIPAL_IDENTIFIER
identifica a quién se aplica la condición. Por ejemplo,user:jeffersonloveshiking@gmail.com
. Para ver una lista de formatos de identificadores principales, consulta Identificadores principales.IAM_ROLE
es el rol de gestión de identidades y accesos que vas a conceder a la entidad principal. Por ejemplo,roles/storage.objectViewer
.CONDITION_FILE
es el archivo que has creado en el paso anterior.
También puedes incluir la condición directamente en el comando con la marca --condition
en lugar de la marca --condition-from-file
.
APIs REST
JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa una solicitud
GET getIamPolicy
para guardar la política de IAM de la carpeta gestionada en un archivo JSON temporal:curl \ 'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \ --header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.json
Donde:
BUCKET_NAME
es el nombre del segmento que contiene la carpeta gestionada en la que quieres definir una condición de gestión de identidades y accesos.MANAGED_FOLDER_NAME
es el nombre de la carpeta gestionada en la que quieres definir una condición de IAM.
Edita el archivo
tmp-policy.json
en un editor de texto para añadir nuevas condiciones a las vinculaciones de la política de gestión de identidades y accesos:{ "version": VERSION, "bindings": [ { "role": "IAM_ROLE", "members": [ "PRINCIPAL_IDENTIFIER" ], "condition": { "title": "TITLE", "description": "DESCRIPTION", "expression": "EXPRESSION" } } ], "etag": "ETAG" }
Donde:
VERSION
es la versión de la política de gestión de identidades y accesos, que debe ser 3 para las carpetas gestionadas con condiciones de gestión de identidades y accesos.IAM_ROLE
es el rol al que se aplica la condición. Por ejemplo,roles/storage.objectViewer
.PRINCIPAL_IDENTIFIER
identifica a quién se aplica la condición. Por ejemplo,user:jeffersonloveshiking@gmail.com
. Para ver una lista de los formatos de identificadores principales, consulta Identificadores principales.TITLE
es el título de la condición. Por ejemplo,expires in 2019
.DESCRIPTION
es una descripción opcional de la condición. Por ejemplo,Permission revoked on New Year's
.EXPRESSION
es una expresión lógica basada en atributos. Por ejemplo,request.time < timestamp(\"2019-01-01T00:00:00Z\")
. Para ver más ejemplos de expresiones, consulta la referencia de atributos de condiciones. Cloud Storage solo admite los atributos fecha/hora, tipo de recurso y nombre de recurso.
No modifiques
ETAG
.Usa una solicitud
PUT setIamPolicy
para definir la política de gestión de identidades y accesos modificada en el segmento:curl -X PUT --data-binary @tmp-policy.json \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFoldersMANAGED_FOLDER_NAME/iam"
Donde:
BUCKET_NAME
es el nombre del segmento que contiene la carpeta gestionada en la que quieres definir una condición de gestión de identidades y accesos.MANAGED_FOLDER_NAME
es el nombre de la carpeta gestionada en la que quieres definir una condición de IAM.
Quitar una condición de una carpeta gestionada
Línea de comandos
Usa el comando
gcloud storage managed-folders get-iam-policy
para guardar la política de IAM de la carpeta gestionada en un archivo JSON temporal.gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME > tmp-policy.json
Edita el archivo
tmp-policy.json
en un editor de texto para quitar las condiciones de la política de gestión de identidades y accesos.Usa el comando
gcloud storage managed-folders set-iam-policy
para definir la política de gestión de identidades y accesos modificada en la carpeta gestionada.gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME tmp-policy.json
APIs REST
JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa una solicitud
GET getIamPolicy
para guardar la política de IAM de la carpeta gestionada en un archivo JSON temporal:curl \ 'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \ --header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.json
Donde:
BUCKET_NAME
es el nombre del segmento que contiene la carpeta gestionada cuyo acceso estás cambiando. Por ejemplo,my-bucket
.MANAGED_FOLDER_NAME
es el nombre de la carpeta gestionada a la que estás cambiando el acceso. Por ejemplo,my-managed-folder/
.
Edita el archivo
tmp-policy.json
en un editor de texto para quitar las condiciones de la política de gestión de identidades y accesos.Usa una solicitud
PUT setIamPolicy
para definir la política de gestión de identidades y accesos modificada en la carpeta gestionada:curl -X PUT --data-binary @tmp-policy.json \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam"
Donde:
BUCKET_NAME
es el nombre del segmento que contiene la carpeta gestionada cuyo acceso estás cambiando. Por ejemplo,my-bucket
.MANAGED_FOLDER_NAME
es el nombre de la carpeta gestionada a la que estás cambiando el acceso. Por ejemplo,my-managed-folder/
.
Usar la gestión de identidades y accesos con proyectos
Consulta Gestionar el acceso a proyectos, carpetas gestionadas y organizaciones para obtener guías sobre cómo asignar y revocar roles de gestión de identidades y accesos a nivel de proyecto y superior.
Prácticas recomendadas
Debe asignar el rol mínimo posible que proporcione al principal el acceso necesario. Por ejemplo, si un miembro del equipo solo necesita ver las carpetas gestionadas de un contenedor, concédele el rol Administrador de objetos de Storage (roles/storage.objectAdmin
) en lugar del rol Administrador de carpetas de Storage (roles/storage.folderAdmin
).
Del mismo modo, si el miembro del equipo necesita tener control total sobre las carpetas gestionadas de un bucket, concédele el rol Administrador de carpetas de Storage (roles/storage.folderAdmin
) en lugar del rol Administrador de Storage (roles/storage.admin
).
Siguientes pasos
Consulta cómo compartir tus datos públicamente.
Consulta ejemplos específicos de uso compartido y colaboración.
Consulta las prácticas recomendadas para usar IAM.
Para solucionar problemas relacionados con operaciones fallidas de roles y permisos de gestión de identidades y accesos, consulta Solución de problemas.