En esta página, se muestra cómo crear, inhabilitar y borrar claves de código de autenticación de mensajes basado en hash (HMAC) asociadas a cuentas de servicio de tu proyecto.
Antes de comenzar
Antes de usar esta función en Cloud Storage, debes cumplir con los siguientes requisitos:
Ten permisos suficientes para trabajar con claves HMAC en el proyecto seleccionado:
Si eres el propietario del proyecto, lo más probable es que tengas los permisos necesarios.
Debes tener los permisos de IAM con el prefijo
storage.hmacKeys
para el proyecto. Consulta Usa permisos de IAM si quieres ver las instrucciones para obtener una función, como Administrador de clave HMAC de almacenamiento, que tenga estos permisos.
Ten una cuenta de servicio en tu proyecto para la que quieras crear claves HMAC. Consulta Crea una cuenta de servicio si todavía no tienes una.
Ten inhabilitada la restricción
restrictAuthTypes
para la autenticación de clave HMAC. Consulta Crea y administra políticas de la organización a fin de obtener instrucciones para verificar y, también, inhabilitar la restricción.
Crea una clave HMAC
A fin de crear una clave HMAC para una cuenta de servicio, realiza lo siguiente:
Console
- En la consola de Google Cloud, ve a la página de Configuración de Cloud Storage.
Selecciona la pestaña Interoperabilidad.
Haz clic en add_box Crear una clave para una cuenta de servicio.
Selecciona la cuenta de servicio con la que quieres asociar la clave HMAC.
Haz clic en Crear clave.
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
Usa el comando hmac create
:
gcloud storage hmac create SERVICE_ACCOUNT_EMAIL
En el ejemplo anterior, SERVICE_ACCOUNT_EMAIL
es la dirección de correo electrónico asociada a tu cuenta de servicio. Por ejemplo, service-7550275089395@my-pet-project.iam.gserviceaccount.com
Si se ejecuta de forma correcta, la respuesta contiene un recurso de clave HMAC, incluidos los valores de accessId
y secret
.
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 crear una clave HMAC. Esta muestra también incluye un recurso para crear una cuenta de servicio.
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
.Usa
cURL
para llamar a la API de JSON con una solicitudPOST
hmacKeys:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys?serviceAccountEmail=SERVICE_ACCOUNT_EMAIL"
Aquí:
PROJECT_IDENTIFIER
es el ID o el número del proyecto asociado a la clave que deseas crear. Por ejemplo,my-pet-project
.SERVICE_ACCOUNT_EMAIL
es la dirección de correo electrónico asociada a tu cuenta de servicio. Por ejemplo,service-7550275089395@my-pet-project.iam.gserviceaccount.com
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
.Usa
cURL
para llamar a la API de XML con una solicitudPOST
de clave HMAC:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=CreateAccessKey&UserName=SERVICE_ACCOUNT_EMAIL"
Donde
SERVICE_ACCOUNT_EMAIL
es la dirección de correo electrónico asociada con tu cuenta de servicio. Por ejemplo,service-7550275089395@my-pet-project.iam.gserviceaccount.com
Obtén información sobre la clave HMAC
A fin de enumerar las claves HMAC para un proyecto y obtener información sobre ellas, realiza lo siguiente:
Console
- En la consola de Google Cloud, ve a la página de Configuración de Cloud Storage.
Selecciona la pestaña Interoperabilidad.
Las cuentas de servicio que tienen claves HMAC asociadas aparecen en la subsección Claves de acceso para cuentas de servicio de la sección de HMAC de cuenta de servicio.
Haz clic en el nombre de una cuenta de servicio específica para ver las claves HMAC asociadas a ella y el estado de esas claves.
Línea de comandos
Usa el comando
hmac list
para mostrar las claves hmac en tu proyecto:gcloud storage hmac list
Si se ejecuta correctamente, el comando muestra una lista de los IDs de acceso de la clave hmac, junto con el estado de cada clave y la cuenta de servicio asociada con cada una.
Usa el comando
hmac describe
para recuperar los metadatos de una clave específica:gcloud storage hmac describe KEY_ACCESS_ID
En el ejemplo anterior,
KEY_ACCESS_ID
es el ID de acceso para la clave deseada.
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.
En el siguiente ejemplo, se recupera una lista de claves HMAC asociadas con un proyecto:
En el siguiente ejemplo, se recupera información para una clave HMAC específica:
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.
En el siguiente ejemplo, se recupera una lista de claves HMAC asociadas con un proyecto:
En el siguiente ejemplo, se recupera información para una clave HMAC específica:
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.
En el siguiente ejemplo, se recupera una lista de claves HMAC asociadas con un proyecto:
En el siguiente ejemplo, se recupera información para una clave HMAC específica:
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.
En el siguiente ejemplo, se recupera una lista de claves HMAC asociadas con un proyecto:
En el siguiente ejemplo, se recupera información para una clave HMAC específica:
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.
En el siguiente ejemplo, se recupera una lista de claves HMAC asociadas con un proyecto:
En el siguiente ejemplo, se recupera información para una clave HMAC específica:
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.
En el siguiente ejemplo, se recupera una lista de claves HMAC asociadas con un proyecto:
En el siguiente ejemplo, se recupera información para una clave HMAC específica:
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.
En el siguiente ejemplo, se recupera una lista de claves HMAC asociadas con un proyecto:
En el siguiente ejemplo, se recupera información para una clave HMAC específica:
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.
En el siguiente ejemplo, se recupera una lista de claves HMAC asociadas con un proyecto:
En el siguiente ejemplo, se recupera información para una clave HMAC específica:
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
.Usa
cURL
para llamar a la API de JSON con una solicitudLIST
hmacKeys:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys"
Cuando
PROJECT_IDENTIFIER
es el ID o el número del proyecto asociado a las claves que deseas enumerar. Por ejemplo,my-pet-project
.
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
.Usa
cURL
para llamar a la API de XML con una solicitudGET
de clave HMAC:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=ListAccessKeys&UserName=SERVICE_ACCOUNT_EMAIL"
Donde
SERVICE_ACCOUNT_EMAIL
es la dirección de correo electrónico asociada con tu cuenta de servicio. Por ejemplo,service-7550275089395@my-pet-project.iam.gserviceaccount.com
Actualiza el estado de una clave HMAC
Para cambiar entre inactiva y activa una clave HMAC, realiza lo siguiente:
Console
- En la consola de Google Cloud, ve a la página de Configuración de Cloud Storage.
Selecciona la pestaña Interoperabilidad.
En la subsección Claves de acceso para cuentas de servicio, haz clic en el nombre de la cuenta de servicio asociada con la clave HMAC cuyo estado quieras actualizar.
Haz clic en el estado de la clave que quieres actualizar.
Si cambias el estado de la clave de Inactiva a Activa, haz clic en Desactivar en la ventana que aparece.
Si cambias el estado de la clave de Activa a Inactiva, no se requieren pasos adicionales.
Línea de comandos
Usa el comando hmac update
:
gcloud storage hmac update ACCESS_KEY_ID STATE
Aquí:
ACCESS_KEY_ID
es el ID de acceso asociado a la clave que estás actualizando.STATE
es--activate
o--deactivate
.
Si se ejecuta de forma correcta, el comando muestra los metadatos actualizados de la clave HMAC.
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.
En el siguiente ejemplo, se desactiva una clave HMAC:
En el siguiente ejemplo, se activa una clave HMAC:
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.
En el siguiente ejemplo, se desactiva una clave HMAC:
En el siguiente ejemplo, se activa una clave HMAC:
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.
En el siguiente ejemplo, se desactiva una clave HMAC:
En el siguiente ejemplo, se activa una clave HMAC:
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.
En el siguiente ejemplo, se desactiva una clave HMAC:
En el siguiente ejemplo, se activa una clave HMAC:
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.
En el siguiente ejemplo, se desactiva una clave HMAC:
En el siguiente ejemplo, se activa una clave HMAC:
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.
En el siguiente ejemplo, se desactiva una clave HMAC:
En el siguiente ejemplo, se activa una clave HMAC:
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.
En el siguiente ejemplo, se desactiva una clave HMAC:
En el siguiente ejemplo, se activa una clave HMAC:
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.
En el siguiente ejemplo, se desactiva una clave HMAC:
En el siguiente ejemplo, se activa una clave HMAC:
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:
{"state": "STATE"}
En el ejemplo anterior,
STATE
es el estado deseado para la clave. Por ejemplo,INACTIVE
.Usa
cURL
para llamar a la API de JSON con una solicitudPUT
hmacKeys: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/projects/PROJECT_IDENTIFIER/hmacKeys/ACCESS_KEY_ID"
Aquí:
JSON_FILE_NAME
es la ruta de acceso del archivo que creaste en el paso 2.PROJECT_IDENTIFIER
es el ID o el número del proyecto asociado a la clave que deseas actualizar. Por ejemplo,my-pet-project
.ACCESS_KEY_ID
es el ID de acceso asociado a la clave que estás actualizando.
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
.Usa
cURL
para llamar a la API de XML con una solicitudPOST
de clave HMAC:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=UpdateAccessKey&AccessKeyId=ACCESS_KEY_ID&Status=STATUS"
Aquí:
ACCESS_KEY_ID
es el ID de acceso asociado a la clave que estás actualizando.STATUS
es el estado deseado para la clave. Por ejemplo,Inactive
.
Cuando cambia el estado de una clave HMAC, el cambio de estado demora hasta 3 minutos en propagarse a través del sistema de Cloud Storage. Por este motivo, debes esperar al menos 3 minutos entre la inhabilitación de una clave HMAC y la eliminación de la clave.
Borra una clave HMAC
La clave HMAC debe tener un estado de inactiva para poder borrarla. Para borrar una clave HMAC inactiva, realiza lo siguiente:
Console
- En la consola de Google Cloud, ve a la página de Configuración de Cloud Storage.
Selecciona la pestaña Interoperabilidad.
En la subsección Claves de acceso para cuentas de servicio, haz clic en el nombre de la cuenta de servicio asociada con la clave HMAC que quieras borrar.
Haz clic en el ícono de la papelera asociado con la clave que quieras borrar.
En el cuadro de diálogo que aparece, ingresa los primeros 10 caracteres del ID de la clave de acceso como aparecen en la ventana.
Haz clic en Borrar.
Línea de comandos
Usa el comando hmac delete
:
gcloud storage hmac delete ACCESS_KEY_ID
En el ejemplo anterior, ACCESS_KEY_ID
es el ID de acceso asociado a la clave que estás borrando.
Si se completa correctamente, el comando no muestra una respuesta.
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
.Usa
cURL
para llamar a la API de JSON con una solicitudDELETE
hmacKeys:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys/ACCESS_KEY_ID"
Aquí:
PROJECT_IDENTIFIER
es el ID o el número del proyecto asociado a la clave que deseas borrar. Por ejemplo,my-pet-project
.ACCESS_KEY_ID
es el ID de acceso asociado a la clave que estás borrando.
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
.Usa
cURL
para llamar a la API de XML con una solicitudPOST
de clave HMAC:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=DeleteAccessKey&AccessKeyId=ACCESS_KEY_ID"
En el ejemplo anterior,
ACCESS_KEY_ID
es el ID de acceso asociado a la clave que estás borrando.
¿Qué sigue?
- Sigue las pautas para migrar de las claves HMAC de la cuenta de usuario a las claves HMAC de la cuenta de servicio.
- Usa una clave HMAC en una solicitud autenticada.