En esta página, se describe cómo configurar políticas de administración de identidades y accesos (IAM) en carpetas administradas, de modo que puedas obtener un control de acceso detallado sobre grupos específicos de objetos dentro de un bucket.
Si buscas otros métodos de control de acceso, consulta los siguientes recursos:
Para obtener información sobre cómo controlar el acceso a buckets completos y los objetos dentro de ellos, consulta Configura y administra políticas de IAM en buckets.
Para obtener una forma alternativa de controlar el acceso a objetos individuales en los buckets, consulta Listas de control de acceso.
Para obtener más información sobre cómo controlar el acceso a los recursos de Cloud Storage, consulta Descripción general del control de acceso.
Roles obligatorios
Si quieres obtener los permisos que necesitas para configurar y administrar las políticas de IAM de las carpetas administradas, debes pedirle a tu administrador que te otorgue el rol de IAM de Administrador de carpetas de almacenamiento (roles/storage.folderAdmin
) del bucket que contiene las carpetas administradas.
Esta función contiene los siguientes permisos, que son necesarios para configurar y administrar las políticas de IAM para las carpetas administradas:
storage.managedfolders.getIamPolicy
storage.managedfolders.setIamPolicy
También puedes obtener estos permisos con roles personalizados.
Para obtener más información sobre cómo otorgar roles a los buckets, consulta Configura y administra políticas de IAM en buckets.
Configura una política de IAM en una carpeta administrada
Console
- En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.
En la lista de buckets, haz clic en el nombre del bucket que contiene la carpeta administrada en la que deseas establecer una política de IAM.
En la página Detalles del bucket , haz clic en el ícono Más opciones
en el panel Folder browser junto a la carpeta administrada en la que deseas establecer una política de IAM.Si la carpeta para la que deseas controlar el acceso es una carpeta simulada, sigue los pasos que se indican en Crea una carpeta administrada para convertir primero la carpeta simulada en una administrada.
Haz clic en acceso de edición.
En el panel Permissions for
MANAGED_FOLDER_NAME
, haz clic en Agregar principal .En el campo Principales nuevas, ingresa la principal a la que deseas otorgar acceso. Para obtener más información sobre los principales que puedes incluir, consulta Identificadores de principal.
En la sección Asignar roles, usa el menú desplegable Seleccionar un rol para especificar el nivel de acceso que deseas otorgar a la principal.
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 IAM que deseas otorgar. Por ejemplo,roles/storage.objectViewer
.PRINCIPAL_IDENTIFIER
identifica a quién le otorgas acceso a la carpeta administrada. Por ejemplo,user:jane@gmail.com
Para obtener una lista de los formatos de identificador principal, 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 bucket que contiene la carpeta administrada a la que deseas aplicar la política de IAM. Por ejemplo,my-bucket
MANAGED_FOLDER_NAME
es el nombre de la carpeta administrada a la que deseas aplicar la política de IAM. Por ejemplo,my-managed-folder/
.POLICY_FILE
es la ruta de acceso al archivo JSON que creaste en el paso 1.
API de REST
JSON
Tener la gcloud CLI instalada e inicializadaa fin de generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en 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 IAM que deseas otorgar. Por ejemplo,roles/storage.objectViewer
.PRINCIPAL_IDENTIFIER
identifica a quién le otorgas acceso a la carpeta administrada. Por ejemplo,user:jane@gmail.com
Para obtener una lista de los formatos de identificador principal, consulta Identificadores de principal.
Usa
cURL
para llamar a la API de 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 creaste en el paso anterior.BUCKET_NAME
es el nombre del bucket que contiene la carpeta administrada a la que deseas aplicar la política de IAM. Por ejemplo,my-bucket
MANAGED_FOLDER_NAME
es el nombre de la carpeta administrada a la que le quieres otorgar acceso a la principal. Por ejemplo,my-managed-folder/
Visualiza la política de IAM para una carpeta administrada
Console
- En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.
En la lista de buckets, haz clic en el nombre del bucket que contiene la carpeta administrada para la que deseas ver las políticas de IAM.
En la página Detalles del bucket , haz clic en el ícono Más opciones
en el panel Folder browser junto a la carpeta administrada para la que deseas ver la política de IAM.Haz clic en acceso de edición.
En el panel Permissions for FOLDER_NAME
, se muestran los
permisos de la carpeta administrada, incluidos la principal,
el rol, los roles heredados y las condiciones de IAM.
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 bucket que contiene la carpeta administrada cuya política de IAM deseas ver. Por ejemplo,my-bucket
MANAGED_FOLDER_NAME
es el nombre de la carpeta administrada cuya política de IAM deseas ver. Por ejemplo,my-managed-folder/
API de REST
JSON
Tener la gcloud CLI instalada e inicializadaa fin de generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en el encabezado
Authorization
.Usa
cURL
para llamar a la API de 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 bucket que contiene la carpeta administrada cuya política de IAM deseas ver. Por ejemplo,my-bucket
MANAGED_FOLDER_NAME
es el nombre de la carpeta administrada cuya política de IAM deseas ver. Por ejemplo,my-managed-folder/
.
Quita una principal de una política de carpeta administrada
Console
- En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.
En la lista de buckets, haz clic en el nombre del bucket que contiene la carpeta administrada para la que deseas ver las políticas de IAM.
En la página Detalles del bucket , haz clic en el ícono Más opciones
en el panel Folder browser junto al carpeta administrada para la que deseas quitar una principal.Haz clic en acceso de edición.
En el panel Permissions for
FOLDER_NAME
, ingresa el nombre de la principal en el campo Filtro.Haz clic en el ícono Borrar
para borrar la principal.
Cloud Storage borra la principal de tu carpeta administrada.
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 bucket que contiene la carpeta administrada a la que le revocas el acceso. Por ejemplo,my-bucket
.MANAGED_FOLDER_NAME
es el nombre de la carpeta administrada cuya política de IAM deseas quitar. Por ejemplo,my-managed-folder/
.PRINCIPAL_IDENTIFIER
identifica a quién le revocas el acceso. Por ejemplo,user:jane@gmail.com
Para obtener una lista de los formatos de identificador principal, consulta Identificadores de principal.IAM_ROLE
es el rol de IAM que estás revocando. Por ejemplo,roles/storage.objectViewer
.
API de REST
JSON
Tener la gcloud CLI instalada e inicializadaa fin de generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en el encabezado
Authorization
.Obtén la política existente aplicada a tu carpeta administrada. Para ello, usa
cURL
para llamar a la API de 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 bucket que contiene la carpeta administrada a la que le revocas el acceso. Por ejemplo,my-bucket
.MANAGED_FOLDER_NAME
es el nombre de la carpeta administrada cuya política de IAM deseas quitar. Por ejemplo,my-managed-folder/
.
Crea un archivo JSON que contenga la política que recuperaste en el paso anterior.
Edita el archivo JSON para quitar al miembro de la política.
Usa
cURL
para llamar a la API de 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 de acceso del archivo que creaste en el paso 3.BUCKET_NAME
es el nombre del bucket que contiene la carpeta administrada a la que le revocas el acceso. Por ejemplo,my-bucket
MANAGED_FOLDER_NAME
es el nombre de la carpeta administrada cuya política de IAM deseas quitar. Por ejemplo,my-managed-folder/
Usa condiciones de IAM en carpetas administradas
En las siguientes secciones, se muestra cómo agregar y quitar condiciones de IAM en las carpetas administradas. Si deseas ver las condiciones de IAM para tus carpetas administradas, consulta Visualiza la política de IAM para una carpeta administrada. Si quieres obtener más información acerca del uso de las Condiciones de IAM con Cloud Storage, consulta Condiciones.
Debes habilitar el acceso uniforme a nivel del bucket en el bucket antes de agregar condiciones a las carpetas administradas.
Establece una nueva condición en una carpeta administrada
Línea de comandos
Crea un archivo JSON o YAML que defina la condición, incluido el
title
de la condición, laexpression
lógica basada en atributos para la condición y, de forma opcional, , unadescription
de la condición.Ten en cuenta que Cloud Storage solo admite los atributos de fecha/hora ,tipo de recurso y nombre del recurso en el
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 bucket que contiene la carpeta administrada a la que le otorgas acceso a la principal. Por ejemplo,my-bucket
.MANAGED_FOLDER_NAME
es el nombre de la carpeta administrada a la que le otorgas acceso a la principal. Por ejemplo,my-managed-folder/
.PRINCIPAL_IDENTIFIER
identifica a quién se aplica la condición. Por ejemplo,user:jane@gmail.com
Para obtener una lista de los formatos de identificador principal, consulta Identificadores principales.IAM_ROLE
es el rol de IAM que le estás otorgando a la principal. Por ejemplo,roles/storage.objectViewer
.CONDITION_FILE
es el archivo que creaste en el paso anterior.
Como alternativa, puedes incluir la condición de forma directa en el comando con la marca --condition
en lugar de la marca --condition-from-file
.
API de REST
JSON
Tener la gcloud CLI instalada e inicializadaa fin de generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en el encabezado
Authorization
.Usa una solicitud
GET getIamPolicy
para guardar la política de IAM de la carpeta administrada 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 bucket que contiene la carpeta administrada en la que deseas establecer una condición de IAM.MANAGED_FOLDER_NAME
es el nombre de la carpeta administrada en la que deseas establecer una condición de IAM.
Edita el archivo
tmp-policy.json
en un editor de texto para agregar condiciones nuevas a las vinculaciones en la política de IAM:{ "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 IAM, que debe ser 3 para las carpetas administradas con condiciones de IAM.IAM_ROLE
es la función a la 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:jane@gmail.com
Para obtener una lista de los formatos de identificador principal, consulta Identificadores de principal.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\")
. Si quieres obtener más ejemplos de expresiones, consulta la referencia de atributos para las Condiciones. Cloud Storage solo admite los atributos de fecha y hora, tipo de recurso y nombre de recurso.
No modifiques
ETAG
.Usa una solicitud
PUT setIamPolicy
para establecer la política de IAM modificada en el bucket: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 bucket que contiene la carpeta administrada en la que deseas establecer una condición de IAM.MANAGED_FOLDER_NAME
es el nombre de la carpeta administrada en la que deseas establecer una condición de IAM.
Quita una condición de una carpeta administrada
Línea de comandos
Usa el comando
gcloud storage managed-folders get-iam-policy
para guardar la política de IAM de la carpeta administrada 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 IAM.Usa el comando
gcloud storage managed-folders set-iam-policy
para establecer la política de IAM modificada en la carpeta administrada.gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME tmp-policy.json
API de REST
JSON
Tener la gcloud CLI instalada e inicializadaa fin de generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en el encabezado
Authorization
.Usa una solicitud
GET getIamPolicy
para guardar la política de IAM de la carpeta administrada 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 bucket que contiene la carpeta administrada a la que le cambias el acceso. Por ejemplo,my-bucket
.MANAGED_FOLDER_NAME
es el nombre de la carpeta administrada a la que le cambias 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 IAM.Usa una solicitud
PUT setIamPolicy
para establecer la política de IAM modificada en la carpeta administrada: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 bucket que contiene la carpeta administrada a la que le cambias el acceso. Por ejemplo,my-bucket
.MANAGED_FOLDER_NAME
es el nombre de la carpeta administrada a la que le cambias el acceso. Por ejemplo,my-managed-folder/
.
Usa IAM con proyectos
Consulta Administra el acceso a proyectos, carpetas y organizaciones para obtener guías sobre cómo otorgar y revocar roles de IAM a nivel de proyecto y superior.
Prácticas recomendadas
Debes establecer el mínimo rol posible que otorgue al principal el acceso requerido. Por ejemplo, si un miembro del equipo solo necesita ver las carpetas administradas de un bucket, otórgale el Administrador de objetos de almacenamiento (roles/storage.objectAdmin
) en lugar del rol de Administrador de carpetas de almacenamiento (roles/storage.folderAdmin
).
Del mismo modo, si el miembro del equipo necesita el control total de las carpetas administradas en un bucket, otórgale el rol de Administrador de carpetas de almacenamiento (roles/storage.folderAdmin
) en lugar del rol de Administrador de almacenamiento (roles/storage.admin
).
¿Qué sigue?
Aprende cómo compartir tus datos de forma pública.
Consulta Ejemplos de colaboración y uso compartido específicos.
Obtén información de las prácticas recomendadas para usar IAM.
Para solucionar problemas de operaciones fallidas relacionadas con los roles y los permisos de IAM, consulta Solución de problemas.