Utilisation des données d'identification HMAC
Les données d'identification HMAC se composent d'une clé d'accès et d'une clé secrète appariées pour être utilisées avec des outils et des bibliothèques S3-compatible qui requièrent une authentification.
Données d'identification HMAC définies
L'API IBM Cloud® Object Storage est un API REST pour la lecture et l'écriture d'objets. Elle utilise IBM Cloud® Identity and Access Management pour l'authentification et l'autorisation et prend en charge un sous-ensemble de l'API S3 afin de faciliter la migration des applications vers IBM Cloud.
Création de données d'identification HMAC dans la console
Les utilisateurs peuvent créer un ensemble de données d'identification HMAC dans le cadre d'une donnée d'identification de service en basculant le Include HMAC Credential sur On lors de la création des données d'identification dans la console. La figure 1 montre l'option permettant de définir le paramètre HMAC en choisissant "Options avancées".
Une fois les données d'identification de service créées, la clé HMAC est incluse dans la zone cos_hmac_keys. Ces clés HMAC sont ensuite associées à un ID de service et peuvent être utilisées pour accéder à toutes les ressources ou opérations autorisées par le rôle de l'ID de service.
Lors de la création d'une donnée d'identification de service, il est possible de fournir une valeur de None pour le rôle. Cela empêchera la création de règles d'accès IAM non intentionnelles ou inutiles. Les règles d'accès pour
l'ID de service associé doivent être gérées à l'aide de la console IAM ou des API.
Création de données d'identification HMAC à l'aide de l'interface CLI
Vous pouvez également utiliser l'interface de ligne de commande IBM Cloud® Object Storage pour créer vos données d'identification. Vous devez avoir déjà installé les instructions de ligne de commandeIBM Cloud Platform pour pouvoir utiliser l'exemple.
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}'
Exemple d'informations d'identification HMAC
Si vous souhaitez stocker les résultats de la clé générée, vous pouvez ajouter > file.skey à la fin de l'exemple. Pour les besoins de cet ensemble d'instructions, vous devez seulement rechercher l'en-tête cos_hmac_keys avec les clés enfant access_key_id et secret_access_key :
cos_hmac_keys:
access_key_id: 7exampledonotusea6440da12685eee02
secret_access_key: 8not8ed850cddbece407exampledonotuse43r2d2586
Définition des données d'identification HMAC en tant que variables d'environnement
Une fois que vous avez créé vos données d'identification, vous pouvez les définir en tant que variables d'environnement (dont les instructions sont spécifiques au système d'exploitation impliqué). Ainsi, dans l'exemple 3, un script .bash_profile contient COS_HMAC_ACCESS_KEY_ID et COS_HMAC_SECRET_ACCESS_KEY. Ce script est exporté lors du démarrage d'un interpréteur de commandes et utilisé pour le développement.
export COS_HMAC_ACCESS_KEY_ID="7exampledonotusea6440da12685eee02"
export COS_HMAC_SECRET_ACCESS_KEY="8not8ed850cddbece407exampledonotuse43r2d2586"
Etapes suivantes
Notez que lorsque vous utilisez les données d'identification HMAC pour créer des signatures à utiliser avec des appels d'API REST directs, d'autres en-têtes sont requis :
- Toutes les demandes doivent comporter un en-tête
x-amz-dateavec la date au format%Y%m%dT%H%M%SZ. - Toute demande comportant une charge utile (téléchargement d'objets, suppression de plusieurs objets, etc.) doit fournir un en-tête "
x-amz-content-sha256contenant un hachage SHA256 du contenu de la charge utile. - Les listes de contrôle d'accès (ACL) (autres que
public-read) ne sont pas prises en charge.
Les outils compatibles S3 ne sont pas tous pris en charge actuellement. Certains outils tentent de définir des listes de contrôle d'accès autres que public-read pour la création de compartiment. La création de godets à l'aide de
ces outils échouera. Si une requête " PUT bucket échoue avec une erreur ACL non supportée, utilisez d'abord la console comme indiqué dans le guide de démarrage avec IBM Cloud Object Storage pour créer le seau, puis configurez l'outil pour lire et écrire des objets dans ce seau. Les outils qui définissent des listes de contrôle d'accès sur les écritures d'objet ne sont pas pris en charge actuellement.