Utilizzo delle credenziali HMAC
Le credenziali HMAC sono costituite da una chiave di accesso e da una chiave segreta accoppiate per l'utilizzo con le librerie e gli strumenti S3-compatible che richiedono autenticazione.
Credenziali HMAC definite
L'API IBM Cloud® Object Storage è un'API basata su REST per la lettura e la scrittura di oggetti. Utilizza IBM Cloud® Identity and Access Management per l'autenticazione e l'autorizzazione e supporta un sottoinsieme dell'API S3 per una facile migrazione delle applicazioni a IBM Cloud.
Crea credenziali HMAC nella console
Gli utenti possono creare una serie di credenziali HMAC come parte di una Credenziale del servizio passando Include HMAC Credential a On durante la creazione delle credenziali nella console. La figura 1 mostra l'opzione per l'impostazione del parametro HMAC scegliendo "Opzioni avanzate".
Una volta creata la credenziale del servizio, la chiave HMAC viene inclusa nel campo cos_hmac_keys. Queste chiavi HMAC sono quindi associate ad un ID servizio e possono
essere utilizzate per accedere a qualsiasi risorsa od operazione consentita dal ruolo dell'ID servizio.
Quando si crea una credenziale del servizio, è possibile fornire un valore di None per il ruolo. Ciò impedirà la creazione di politiche di accesso IAM indesiderate o non necessarie. Tutte le politiche di accesso per l'ID servizio
associato dovranno essere gestite utilizzando la console IAM o le API.
Crea credenziali HMAC utilizzando la CLI
Puoi anche utilizzare la CLI IBM Cloud® Object Storage per creare le credenziali. Devi aver già installato le IBM Cloud Istruzioni della riga di comando della piattaforma prima di poter utilizzare l'esempio.
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 esempio di credenziali HMAC
Se vuoi archiviare i risultati della chiave generata, puoi accodare > file.skey alla fine dell'esempio. Per gli scopi di questa serie di istruzioni, devi solo trovare l'intestazione cos_hmac_keys con le chiavi secondarie,
access_key_id, e secret_access_key.
cos_hmac_keys:
access_key_id: 7exampledonotusea6440da12685eee02
secret_access_key: 8not8ed850cddbece407exampledonotuse43r2d2586
Impostazione delle credenziali HMAC come variabili di ambiente
Una volta create le credenziali, è possibile impostarle come variabili di ambiente (le cui istruzioni sono specifiche per il sistema operativo interessato). Nel caso, poniamo, dell'Esempio 3, uno script .bash_profile contiene
COS_HMAC_ACCESS_KEY_ID e COS_HMAC_SECRET_ACCESS_KEY che sono esportate all'avvio di una shell e utilizzate nello sviluppo.
export COS_HMAC_ACCESS_KEY_ID="7exampledonotusea6440da12685eee02"
export COS_HMAC_SECRET_ACCESS_KEY="8not8ed850cddbece407exampledonotuse43r2d2586"
Passi successivi
Nota: quando utilizzi le credenziali HMAC per creare le firme da utilizzare con le chiamate API REST dirette, sono necessarie delle intestazioni aggiuntive:
- Tutte le richieste devono avere un'intestazione
x-amz-datecon la data in formato%Y%m%dT%H%M%SZ. - Qualsiasi richiesta che abbia un carico utile (caricamento di oggetti, cancellazione di diversi oggetti e così via) deve fornire un'intestazione "
x-amz-content-sha256con un hash SHA256 del contenuto del carico utile. - Gli ACL (diversi da
public-read) non sono supportati.
Non tutti gli strumenti compatibili con S3 sono attualmente supportati. Alcuni strumenti provano a impostare ACL diversi da public-read alla creazione del bucket. La creazione di bucket tramite questi strumenti non riuscirà. Se
una richiesta 'PUT bucket fallisce con un errore ACL non supportato, utilizzare prima la console come mostrato nella guida introduttiva con IBM Cloud Object Storage per creare il bucket, quindi configurare lo strumento per leggere e scrivere oggetti in tale bucket. Gli strumenti che impostano gli ACL sulle scritture di oggetti non sono attualmente supportati.