Présentation stockage objet

Présentation

Le stockage objet est un service de stockage sur Internet. Il est conçu pour faciliter la gestion d’une grande quantité de données.

Une interface simple en mode Web service permet d’accéder et de modifier vos données, à tout moment et de n’importe où sur le Web. Cette interface est compatible avec l’API utilisée par Amazon Web Services pour son service S3 (Simple Storage Service).

Les concepts de bases sont expliqués dans les paragraphes suivants.

Le stockage objet offert par Cloud Avenue ajoute la possibilité d’utiliser le service directement depuis votre organisation Cloud Avenue

Le stockage S3 : Simple Storage Service

S3 est un web service de stockage objet standardisé par Amazon. Notre service Cloud Avenue est fourni sur le Web ou via des les réseaux Cloud Avenue à travers une API suivant le standard REST S3.

La simplicité de mise en œuvre pour le développement et la progression rapide de l’informatique dans le cloud ont conduit au succès de S3 et à l’adoption de son API pour le stockage en général.

Les domaines du stockage (matériel et/ou logiciel) et du cloud (public, privé et mixte) sont particulièrement concernés par le stockage objet. Il peut être utilisé par toute application depuis n’importe quel terminal (mobile, ordinateur personnel, serveur).

Cloud Avenue utilise le produit Ring de Scality pour fournir un stockage objet respectant l’API S3.

Objet (object)

Les objets sont les entités fondamentales stockées. Un objet est composé de données et de métadonnées associées.

Les données sont le contenu de l’objet. Par exemple, une photo au format JPEG, un document au format PDF ou une archive au format ZIP.

Les métadonnées fournissent des informations sur l’objet. Par exemple, la dernière date de modification, une métadonnée HTTP standard comme Content-Type (le type de contenu dans le standard MIME), ou une information spécifique définie par l’utilisateur.

Un objet est identifié de manière unique dans un bucket (ou compartiment) par une clé (nom) et un ID de version (identifiant).

Compartiment (bucket)

Les compartiments ou buckets sont des conteneurs pour les objets, un objet est forcément contenu dans un compartiment.

Le compartiment est un des éléments utilisés pour accéder à l’objet.

Par exemple, si l’objet factu_2020.xls est présent dans le compartiment facturation, il sera possible d’accéder à l’objet par l’url https://url-flexible-datastore/facturation/factu_2020.xls.

Une fois créé, un compartiment ne peut pas être utilisé par un autre client, sauf si vous le supprimez.

Limitations pour le nommage :

  • Il est partagé entre tous les clients (1er arrivé, 1er servi),
  • Les noms de compartiment comportent entre 3 et 63 caractères,
  • Les noms peuvent contenir des lettres minuscules, des chiffres, des traits d’union (-) et des points (.),
  • Les noms doivent commencer et se terminer par une lettre ou un chiffre,
  • Les noms ne doivent pas être des adresses IP.

Liste hiérarchique (préfixe et délimiteur)

Dans un compartiment, il est possible d’organiser hiérarchiquement les objets en utilisant préfixes et délimiteur. Ceci facile considérablement l’accès sélectif aux objets.

Les préfixes peuvent être considérés comme des dossiers. Le délimiteur par défaut est le caractère /.

Les préfixes (ou dossiers) ne sont pas vraiment des objets : il n’est donc pas possible de manipuler directement un préfixe.

Par contre, il est possible de copier/déplacer un fichier vers un compartiment en y ajoutant une hiérarchie décrite avec des délimiteurs et de préfixes. Par exemple, /emea/fr dans le compartiment mycompany.

La hiérarchie mycompany à emea à fr va subsister tant qu’un objet est associé à fr.

Si le dernier objet « dans » fr est supprimé, le préfixe fr est également supprimé automatiquement.

ID de version (version ID)

Un objet est identifié de façon unique avec un compartiment, une clé et un identifiant de version.

La plupart du temps, l’identifiant de version est omis car la gestion des versions (versioning) n’est pas activé dans le compartiment. Dans ce cas, il n’existe qu’une seule version de l’objet : la version courante.

Par contre, si le compartiment utilise la gestion des versions, il devient nécessaire de préciser dans les requêtes l’ID de version. En effet, chaque action sur l’objet va créer une nouvelle version de l’objet, y compris la suppression de l’objet.

La gestion des versions dans un compartiment permet de conserver l’historique des actions pour tous les objets. Ceci permet de faire un retour arrière sur un ou des objets en cas d’action involontaire d’un utilisateur ou encore d’erreur applicative.

Point de terminaison du service Web (Web service endpoint)

Le point de terminaison du service est le hostname ou URL que vous utilisez pour accéder à Cloud avenue avec le protocole HTTPS.

Plus de détails sur ces points d’accès sont disponible sur cette page : comment atteindre le stockage objet

Identité et gestion des accès

IAM : Identity and Acess Management, est un service de gestion des accès défini par Amazon Web Services à travers une interface web service suivant le standard REST.

Cette interface permet un contrôle des accès au stockage S3, en identifiant les utilisateurs et en autorisant les accès.

Identité IAM (IAM identity)

  • Les identités IAM sont :
  • L’utilisateur racine (identifié par clé d’accès),
  • Les utilisateurs IAM (identifiés par clé d’accès),
  • Les groupes IAM,
  • Les rôles IAM.

Utilisateur racine (root user)

L’utilisateur racine est l’utilisateur particulier qui possède un accès complet et sans restriction à votre compte stockage.

La clé d’accès (Access Key) et la clé secrète (Secret Key) du compte S3 qui vous ont été fournies après la souscription correspondent à l’utilisateur racine

Il n’est pas possible de restreindre les droits d’accès de l’utilisateur racine.

Utilisateur IAM (IAM user)

Pour éviter de partager les droits de l’utilisateur racine, il est possible de créer des utilisateurs IAM individuels qui représentent les personnes ou les services qui accèdent au stockage.

A l’identique de l’utilisateur racine, chaque utilisateur IAM dispose d’une clé d’accès et d’une clé secrète.

Groupe IAM (IAM group)

Un groupe IAM est un ensemble d’utilisateurs IAM.

Les groupes simplifient la gestion des autorisations lorsque le nombre d’utilisateurs augmente.

En effet, les autorisations pour un groupe s’appliquent automatiquement à l’ensemble de ses membres.

Rôle IAM (IAM role)

Un rôle IAM est similaire à un utilisateur IAM. Cependant il n’est pas identifiable directement (pas de clé d’accès).

Le rôle est conçu pour être utilisé par un utilisateur IAM de façon temporaire afin d’obtenir une autorisation spécifique.

Stratégie IAM (IAM policy)

Une stratégie est un objet IAM qui, associé à une identité IAM ou à une ressource (compartiment, objet,…), définit les autorisations de celle-ci.

Les stratégies sont stockées sous forme de document JSON.

Les types de stratégies :

  • Stratégie basée sur l’identité (s’applique à une identité IAM),
  • Stratégie basée sur les ressources (s’applique par exemple à un compartiment),
  • Limites d’autorisation (s’applique à une identité IAM),
  • Liste de contrôle d’accès (ACL),
  • Stratégie de session.