En esta página, se muestra cómo hacer que los objetos que posees sean legibles para todos en la Internet pública. Para obtener más información sobre cómo acceder a los datos que se hicieron públicos, consulta Accede a datos públicos.
Cuando un objeto se comparte de forma pública, cualquier usuario que conozca el URI del objeto puede acceder a él mientras sea público.
Roles obligatorios
Para obtener los permisos necesarios para que los objetos sean legibles de forma pública, pídele a tu administrador que te otorgue los siguientes roles:
Para que los objetos individuales sean legibles de forma pública: administrador de objetos de Storage (
roles/storage.objectAdmin
)- Si planeas usar la consola de Google Cloud, necesitarás el rol de
administrador de Storage (
roles/storage.admin
) en lugar del rol de administrador de objetos de Storage.
- Si planeas usar la consola de Google Cloud, necesitarás el rol de
administrador de Storage (
Para que todos los objetos de un bucket sean legibles de forma pública: administrador de Storage (
roles/storage.admin
) o propietario de buckets heredados de Storage (roles/storage.legacyBucketOwner
)
Estos roles contienen los permisos necesarios para hacer públicos los objetos. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
storage.objects.get
storage.objects.getIamPolicy
storage.objects.setIamPolicy
storage.objects.update
Los siguientes permisos solo son necesarios para usar la consola de Google Cloud para realizar la tarea en esta página:
storage.buckets.list
storage.objects.list
También puedes obtener estos permisos con otros roles predefinidos o roles personalizados.
Para obtener instrucciones para otorgar roles a los buckets, consulta Usa IAM con buckets.
Haz que los objetos individuales se puedan leer de forma pública
Para que los objetos individuales sean legibles para todos en la Internet pública, otorga
a la principal allUsers
el rol de READER
:
Console
- En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.
Haz clic en el nombre del bucket que contiene el objeto que quieres hacer público y navega hasta el objeto si está en un subdirectorio.
Haz clic en el nombre del objeto.
Haz clic en acceso de edición.
En la superposición que aparece, haz clic en el botón add_box Agregar entrada.
Para allUsers, agrega un permiso.
- En Entidad, selecciona Pública.
- En Nombre, selecciona allUsers.
- En Acceso, selecciona Lector.
Haz clic en Guardar.
Una vez que se otorgue el acceso público, Copiar URL aparecerá en la columna de acceso público. Puedes hacer clic en este botón para obtener la URL pública del objeto.
Para obtener información sobre cómo ver detalles de errores acerca de operaciones fallidas de Cloud Storage en la consola de Google Cloud, consulta Solución de problemas.
Línea de comandos
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
En tu entorno de desarrollo, ejecuta el comando
objects update
con la marca--add-acl-grant
:gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --add-acl-grant=entity=AllUsers,role=READER
Aquí:
BUCKET_NAME
es el nombre del bucket que contiene el objeto que quieres hacer público. Por ejemplo,my-bucket
OBJECT_NAME
es el nombre del objeto que quieres hacer público. Por ejemplo,pets/dog.png
Bibliotecas cliente
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C#.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage PHP.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Ruby.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
API de REST
API de 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:
{ "entity": "allUsers", "role": "READER" }
Usa
cURL
para llamar a la API de JSON con una solicitud de LCAInsert
:curl -X POST --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/o/OBJECT_NAME/acl"
Aquí:
JSON_FILE_NAME
es la ruta de acceso del archivo que creaste en el paso 2.BUCKET_NAME
es el nombre del bucket que contiene el objeto que quieres hacer público. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre con codificación URL del objeto que deseas hacer público. Por ejemplo,pets/dog.png
, codificado en URL comopets%2Fdog.png
.
API de XML
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 XML que contenga la siguiente información:
<AccessControlList> <Entries> <Entry> <Scope type="AllUsers"/> <Permission>READ</Permission> </Entry> </Entries> </AccessControlList>
Usa
cURL
para llamar a la API de XML con una solicitudSet Object ACL
:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?acl"
Aquí:
XML_FILE_NAME
es la ruta de acceso del archivo que creaste en el paso 2.BUCKET_NAME
es el nombre del bucket que contiene el objeto que quieres hacer público. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre con codificación URL del objeto que deseas hacer público. Por ejemplo,pets/dog.png
, codificado en URL comopets%2Fdog.png
.
Haz que todos los objetos de un bucket se puedan leer de forma pública
Para que todos los objetos de un bucket sean legibles para todos en la Internet pública,
otorga a la principal allUsers
el rol de visualizador de objetos de Storage
(roles/storage.objectViewer
):
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 deseas hacer público.
Selecciona la pestaña Permisos cerca de la parte superior de la página.
En la sección Permisos, haz clic en el botón
Otorgar acceso.Aparecerá el cuadro de diálogo Otorgar acceso.
En el campo Principales nuevas, ingresa
allUsers
.En el menú desplegable Seleccionar un rol, ingresa Lector de objetos de almacenamiento en el cuadro de filtro y selecciona Lector de objetos de almacenamiento a partir de los resultados filtrados.
Haz clic en Guardar.
Haga clic en Permitir acceso público.
Una vez que se otorgue el acceso público, aparecerá Copiar URL para cada objeto de la columna de acceso público. Puedes hacer clic en este botón para obtener la URL pública del objeto.
Para obtener información sobre cómo ver detalles de errores acerca de operaciones fallidas de Cloud Storage en la consola de Google Cloud, consulta Solución de problemas.
Línea de comandos
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
En tu entorno de desarrollo, ejecuta el comando
buckets add-iam-policy-binding
:gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
En este comando,
BUCKET_NAME
es el nombre del bucket cuyos objetos quieres hacer públicos. Por ejemplo,my-bucket
Bibliotecas cliente
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C#.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage PHP.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Ruby.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Terraform
Puedes usar un recurso de Terraform para hacer públicos todos los objetos en un bucket.
API de REST
API de 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": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Usa
cURL
para llamar a la API de JSON con una solicitud de bucketPUT
: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/iam"
Aquí:
JSON_FILE_NAME
es la ruta de acceso del archivo que creaste en el paso 2.BUCKET_NAME
es el nombre del bucket cuyos objetos quieres hacer públicos. Por ejemplo,my-bucket
.
API de XML
La API de XML no admite que todos los objetos de un bucket se hagan legibles de forma pública. En su lugar, usa la consola de Google Cloud o gcloud storage
.
¿Qué sigue?
- Accede a los datos que se hicieron públicos.
- Obtén información sobre más opciones de control de acceso para tus depósitos y objetos.