Utilización de credenciales de HMAC
Las credenciales de HMAC constan de una clave de acceso y una clave secreta emparejadas para su uso con herramientas y bibliotecas S3-compatible que requieren autenticación.
Credenciales HMAC definidas
La API de IBM Cloud® Object Storage es una API basada en REST para leer y escribir objetos. Utiliza IBM Cloud® Identity and Access Management para la autenticación y la autorización, y da soporte a un subconjunto de la API de S3 para facilitar la migración de aplicaciones a IBM Cloud.
Crear credenciales HMAC en la consola
Los usuarios pueden crear un conjunto de credenciales HMAC como parte de una credencial de servicio conmutando Include HMAC Credential
a On
durante la creación de credenciales en la consola. La Figura 1 muestra la opción para establecer el parámetro HMAC eligiendo "Opciones avanzadas".

Una vez creada la credencial de servicio, la clave HMAC se incluye en el campo cos_hmac_keys
. A continuación, estas claves HMAC se asocian con un ID de servicio y
se pueden utilizar para acceder a cualquier recurso u operación permitido por el rol del ID de servicio.
Al crear una credencial de servicio, es posible proporcionar un valor de None
para el rol. Esto impedirá la creación de políticas de acceso de IAM indeseadas o innecesarias. Las políticas de acceso para el ID de servicio asociado
deberán gestionarse utilizando la consola o las API de IAM.
Crear credenciales HMAC utilizando la CLI
También puede utilizar la CLI de IBM Cloud® Object Storage para crear sus credenciales. Debe tener las Instrucciones de línea de mandatos deIBM Cloud Platform ya instaladas para poder utilizar el ejemplo.
ibmcloud resource service-key-create <key-name-without-spaces> Writer --instance-name "<instance name--use quotes if your instance name has spaces>" --parameters '{"HMAC":true}'
Un ejemplo de credenciales HMAC
Si desea almacenar los resultados de la clave generada, puede añadir > file.skey
al final del ejemplo. En este conjunto de instrucciones, solo necesita encontrar la cabecera cos_hmac_keys
con las claves hijo, access_key_id
y secret_access_key
.
cos_hmac_keys:
access_key_id: 7exampledonotusea6440da12685eee02
secret_access_key: 8not8ed850cddbece407exampledonotuse43r2d2586
Establecimiento de credenciales HMAC como variables de entorno
Una vez que haya creado las credenciales, puede establecerlas como variables de entorno (cuyas instrucciones son específicas del sistema operativo implicado). Por ejemplo, en el Ejemplo 3, un script .bash_profile
contiene COS_HMAC_ACCESS_KEY_ID
y COS_HMAC_SECRET_ACCESS_KEY
que se exportan al iniciar un shell y se utilizan en el desarrollo.
export COS_HMAC_ACCESS_KEY_ID="7exampledonotusea6440da12685eee02"
export COS_HMAC_SECRET_ACCESS_KEY="8not8ed850cddbece407exampledonotuse43r2d2586"
Próximos pasos
Tenga en cuenta que, cuando se utilizan credenciales de HMAC para crear firmas que se utilizan con llamadas directas a la API REST, se necesitan cabeceras adicionales:
- Todas las solicitudes deben tener una cabecera
x-amz-date
con la fecha en el formato%Y%m%dT%H%M%SZ
. - Cualquier solicitud que tenga una carga útil (carga de objetos, supresión de varios objetos, etc.) debe proporcionar una cabecera
x-amz-content-sha256
con un hash SHA256 del contenido de la carga útil. - Las ACL (que no sean
public-read
) no reciben soporte.
Actualmente no todas las herramientas compatibles con S3 reciben soporte. Algunas herramientas intentan establecer ACL que no son public-read
durante la creación de grupos. La creación de cubos a través de estas herramientas fallará.
Si una solicitud ' PUT bucket
' falla con un error ACL no soportado, primero utilice la consola como se muestra en la puesta en marcha con IBM Cloud Object Storage para crear el bucket, a continuación, configure la herramienta para leer y escribir objetos en ese bucket. Las herramientas que establecen las ACL al escribir objetos no reciben soporte actualmente.