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.
Requisitos
Antes de usar esta función en Cloud Storage, ten en cuenta lo siguiente:
Ten permisos suficientes para trabajar con claves HMAC en tu proyecto:
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.
Asegúrate de que la restricción
restrictAuthTypes
esté inhabilitada para la autenticación de claves HMAC.
Crea una clave HMAC
A fin de crear una clave HMAC para una cuenta de servicio, realiza lo siguiente:
Console
- En Google Cloud Console, ve a la página Navegador de Cloud Storage.
Haga clic en Configuración.
Selecciona la pestaña Interoperabilidad.
Haz clic en + 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 aprender a obtener información detallada sobre errores en las operaciones fallidas en el navegador de Cloud Storage, consulta Solución de problemas.
gsutil
Usa el comando hmac create
:
gsutil 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 tiene éxito, la respuesta se ve de la siguiente manera:
AccessId: GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSA SecretKey: de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9
Muestras de código
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C#.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Go.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Node.js.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para PHP.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Ruby.
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
- Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
Usa
cURL
para llamar a la API de JSON con una solicitudPOST
hmacKeys:curl -X POST \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys?serviceAccountEmail=SERVICE_ACCOUNT_EMAIL"
En el ejemplo anterior, se ilustra lo siguiente:
OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.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
- Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
Usa
cURL
para llamar a la API de XML con una solicitudPOST
de clave HMAC:curl -X POST \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/?Action=CreateAccessKey&UserName=SERVICE_ACCOUNT_EMAIL"
En el ejemplo anterior, se ilustra lo siguiente:
OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.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
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 Google Cloud Console, ve a la página Navegador de Cloud Storage.
Haga clic en Configuración.
Selecciona la pestaña Interoperabilidad.
gsutil
Usa el comando
hmac list
para mostrar las claves hmac en tu proyecto:gsutil hmac list
Si se ejecuta correctamente, en gsutil, se muestra una lista de los ID de acceso de la clave hmac, junto con la cuenta de servicio asociada a cada clave.
Usa el comando
hmac get
para recuperar los metadatos de una clave específica:gsutil hmac get KEY_ACCESS_ID
En el ejemplo anterior,
KEY_ACCESS_ID
es el ID de acceso para la clave deseada.
Muestras de código
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.
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 para C#.
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 para Go.
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 para Java.
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 para Node.js.
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 para PHP.
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 para Python.
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 para Ruby.
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
- Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
Usa
cURL
para llamar a la API de JSON con una solicitudLIST
hmacKeys:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys"
En el ejemplo anterior, se ilustra lo siguiente:
OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.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
- Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
Usa
cURL
para llamar a la API de XML con una solicitudGET
de clave HMAC:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/?Action=ListAccessKeys&UserName=SERVICE_ACCOUNT_EMAIL"
En el ejemplo anterior, se ilustra lo siguiente:
OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.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
Actualiza el estado de una clave HMAC
Para cambiar entre inactiva y activa una clave HMAC, realiza lo siguiente:
Console
- En Google Cloud Console, ve a la página Navegador de Cloud Storage.
Haga clic en Configuración.
Selecciona la pestaña Interoperabilidad.
Haz clic en el nombre de la cuenta de servicio asociada con la clave que deseas actualizar.
Haz clic en el menú más acciones (
) asociado con la clave que deseas actualizar.
Selecciona el estado que deseas aplicar a la clave.
En la ventana de confirmación que aparece, confirma que quieres cambiar el estado de la clave.
gsutil
Usa el comando hmac update
:
gsutil hmac update -s STATE ACCESS_KEY_ID
Aquí:
STATE
es el estado deseado para la clave. Por ejemplo,INACTIVE
.ACCESS_KEY_ID
es el ID de acceso asociado a la clave que estás actualizando.
Si se ejecuta de manera correcta, gsutil muestra los metadatos actualizados de la clave HMAC.
Muestras de código
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.
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 para C#.
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 para Go.
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 para Java.
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 para Node.js.
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 para PHP.
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 para Python.
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 para Ruby.
En el siguiente ejemplo, se desactiva una clave HMAC:
En el siguiente ejemplo, se activa una clave HMAC:
API de REST
API de JSON
- Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
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 OAUTH2_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.OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.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
- Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
Usa
cURL
para llamar a la API de XML con una solicitudPOST
de clave HMAC:curl -X POST \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/?Action=UpdateAccessKey&AccessKeyId=ACCESS_KEY_ID&Status=STATUS"
En el ejemplo anterior, se ilustra lo siguiente:
OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.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 Google Cloud Console, ve a la página Navegador de Cloud Storage.
Haga clic en Configuración.
Selecciona la pestaña Interoperabilidad.
Haz clic en el nombre de la cuenta de servicio asociada con la clave que deseas actualizar.
Haz clic en el menú más acciones (
) asociado con la clave que deseas actualizar.
Selecciona Borrar en el menú desplegable.
En el cuadro de texto que aparece, ingresa los primeros 10 caracteres del ID de la clave de acceso como aparecen en la ventana.
Haz clic en Borrar.
gsutil
Usa el comando hmac delete
:
gsutil 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 ejecuta de manera correcta, gsutil no muestra una respuesta.
Muestras de código
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C#.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Go.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Node.js.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para PHP.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Ruby.
API de REST
API de JSON
- Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
Usa
cURL
para llamar a la API de JSON con una solicitudDELETE
hmacKeys:curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys/ACCESS_KEY_ID"
En el ejemplo anterior, se ilustra lo siguiente:
OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.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
- Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
Usa
cURL
para llamar a la API de XML con una solicitudPOST
de clave HMAC:curl -X POST \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/?Action=DeleteAccessKey&AccessKeyId=ACCESS_KEY_ID"
En el ejemplo anterior, se ilustra lo siguiente:
OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.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.