Stockage Objet - Architecture

Structure

Object Store

Un Object Store est un conteneur logique pour les Buckets et les objets stockés dans le service de stockage objet de cegedim.cloud.

Il est accompagné d'un Object User dédié qui est le seul autorisé à lister et à gérer les objets dans cet Object Store. Vous pouvez créer d'autres Object User.

Lors de la création d'un Object Store, vous devez choisir :

  • Un centre de données :

    • EB4 - Centres de données Boulogne (non répliqué)

    • ET1 - Centres de données Toulouse (non répliqué)

    • EB4-ET1 - Les données sont répliquées sur EB4 et ET1 et sont accessibles depuis les deux centres de données.

Vous n'êtes pas limité et pouvez créer autant de Object Store que vous le souhaitez.

Néanmoins, il peut être préférable de segmenter les objets par Bucket pour les objets d'une même application ou de différentes applications.

Nous recommandons d'utiliser un Object Store au niveau projet, "groupe de projets" ou application, et un Bucket au niveau de la "typologie des fichiers" ou de l'environnement.

Buckets

Un Bucket est un conteneur d'objets délimité logiquement. Chaque objet est stocké dans un Bucket.

Un Bucket peut être créé à l'aide d'un client S3 et possède des attributs que vous pouvez utiliser pour contrôler son comportement et celui de ses objets, par exemple :

  • Les politiques de gestion de version qui vous permettent le versionnage des objets

  • Les politiques de gestion de Bucket qui vous permettent de configurer les autorisations et les restrictions pour les objets situés dans un Bucket.

Objets

Un objet est l'équivalent d'un fichier sur un système de fichiers classique. Chaque objet appartient à un Bucket et possède une "clé" comme identifiant unique.

Notez que la notion de dossiers n'existent pas dans un service de stockage objet, mais vous pouvez utiliser des préfixes et des délimiteurs pour organiser les objets que vous stockez dans les Buckets.

Un préfixe est une chaîne de caractères au début du nom de la "clé" de l'objet. Un délimiteur est un caractère, généralement le slash "/", utilisé pour séparer chaque niveau d'objets et simuler une hiérarchie semblable à système de fichiers.

Par exemple, si vous stockez des informations sur les clients, organisées par années et par mois :

client1/2020/03
client1/2020/04
client1/2021/05
client2/2020/03
client2/2021/02

Dans cet exemple "/" est le délimiteur, et client1/2020/04 est un un préfixe.

Diagramme

Compatibilité avec l'API S3

Voir la page Compatibilité API S3 pour la liste des API S3 supportées, non supportées ainsi que les comportements spécifiques à la solution de stockage objet de cegedim.cloud.

Endpoints

Le service de Stockage Objet de cegedim.cloud fournit 2 points endpoints:

Géo-Répliqué

Dans le cas d'un Object Store géo-répliqué (EB4-ET1), les deux endpoints vous permettent d'accéder à vos objets.

Si vous téléchargez un objet en utilisant le endpoint EB4, le site EB4 deviendra le propriétaire de l'objet, et vice versa pour ET1.

Authentification

Object User

L'accès aux Buckets se fait par l'intermédiaire d'un Object User.

Lorsqu'un Object Store est créé, un Object User est automatiquement créé avec le label "Initial S3 user".

L'Object User dispose d'une access_key et d'une secret_key qui sont toutes deux générées automatiquement par cegedim.cloud.

Vous avez la possibilité de créer d'autres Object Users au sein de votre Object Store.

Un Object Users est lié à un seul Object Store et ne peut pas être utilisé pour effectuer des opérations sur un autre Object Store.

Pour plus d'informations, reportez-vous à la page Gérer des Objects Users.

Renouvellement de la secret_key

A tout moment, vous avez la possibilité de re-générer la secret_key d'un Object User, pour des raisons de sécurité ou lorsque l'Object User est compromis.

Lors de la modification de la secret_key, vous pouvez ajouter une "période de grâce" pendant laquelle l'ancienne et la nouvelle clé secret_key sont valides et acceptées par cegedim.cloud.

Autorisations

Les autorisations sont gérées au niveau du Bucket en utilisant les politiques de gestion des Buckets.

Les politiques de gestion des Buckets vous permettent d'avoir une gestion fine des permissions à appliquer sur les objets et les Object Users, basées ou non sur des déclarations conditionnelles, comme l'access_key de l'Object User ou le Adresse IP source.

Lors de la création d'un Bucket, par défaut, aucune politique de gestion n'existe. Aussi, par défaut, un Bucket ne dispose pas d’accès public/anonyme.

Cela signifie que seul l'Object Users qui a créé le Bucket peut y accéder.

Pour plus d'informations sur les politiques de gestion des Buckets, reportez-vous à la page Politiques de Buckets.

Transport sécurisé

Le service de stockage objet cegedim.cloud est uniquement disponible via le protocole HTTPS sur le port 443.

Gestion des journaux

La fonctionnalité S3 Bucket logging n'est pas supporté le service de Stockage Objet cegedim.cloud.

Toutes les opérations sont enregistrées par cegedim.cloud.

Les journaux incluent les opérations sur l'Object Store, l'Object User, ainsi que les opérations faites au niveau des Buckets et des objets (GET, PUT, DELETE,...).

Si vous avez besoin d'une extraction des opérations réalisées sur vos ressources, veuillez contacter le support cegedim.cloud.

Fonctionnalités

URL Pré-signée

Le service de Stockage Objet cegedim.cloud supporte le partage d'objets à l'aide d'URLs pré-signées. Vous pouvez partager des objets avec un tiers en créant une URL pré-signée.

Lorsque vous créez une URL pré-signée, vous devez fournir :

  • Vos informations d'identification de sécurité

  • Un nom de bucket et une clé d'objet

  • Une méthode HTTP (PUT pour le téléchargement d'objets)

  • Un délai d'expiration

Les URL pré-signées ne sont valables que pour la durée spécifiée.

Pour plus d'informations sur l'URL pré-signée, reportez-vous à la page URL Pré-signée.

Politique de gestion des buckets

Le service de Stockage Objet cegedim.cloud supporte la définition de politiques des gestion des Buckets.

Ces politiques fournissent à des utilisateurs spécifiques, ou à tous les utilisateurs, des autorisations conditionnelles et granulaires pour des actions spécifiques.

Les conditions de politique peuvent être utilisées pour attribuer des autorisations à une gamme d'objets qui correspondent à la condition et peuvent être utilisées pour attribuer automatiquement des autorisations aux objets nouvellement créés.

Exemple de politique de gestion d'un Bucket :

{
    "Version": "2012-10-17",
    "Id": "policyExample",
    "Statement":[
        {
            "Sid":"Granting PutObject permission to user24",
            "Effect":"Allow",
            "Principal": "user24 ",
            "Action":["s3:PutObject"],
            "Resource":["mybucket/*"],
            "Condition": {
                "StringEquals": {"s3:x-amz-server-side-encryption": [ "AES256"]
            }
        }
    ]
}

Pour plus d'informations sur les politiques de gestion des Buckets, reportez-vous à la page Politiques de Buckets.

Configuration de cycle de vie

Le service de Stockage Objet cegedim.cloud supporte les configuration de cycle de vie des objets dans un Bucket.

Une configuration de cycle de vie est un ensemble de règles définissant les actions applicables à un groupe d'objets. Seules les actions d'expiration sont prises en charge.

Vous pouvez définir une configuration de cycle de vie pour supprimer automatiquement les objets.

Exemple de configuration du cycle de vie :

{
    "Rules": [
        {
            "Expiration": {
                "Days": 30
            },
            "ID": "lifecycle-expire-non-current-and-mpu",
            "Prefix": "",
            "Status": "Enabled",
            "NoncurrentVersionExpiration": {
                "NoncurrentDays": 1
            },
            "AbortIncompleteMultipartUpload": {
                "DaysAfterInitiation": 1
            }
        }
    ]
}

Pour plus d'informations sur la gestion des configurations de cycle de vie, reportez-vous à la page Configuration de cycle de vie.

S3 Object Lock

Le service de stockage objet cegedim.cloud supporte le verrouillage des objets (Object Lock).

Object Lock empêche la suppression des objets et de leurs versions, pendant une période définie par l'utilisateur.

La politique de rétention est définie à l'aide de l'API S3 ou des valeurs par défaut au niveau du Bucket ou directement sur l'objet.

Les objets sont verrouillés pour la durée de la période de rétention. Les scénarios de rétention légale sont également pris en charge.

Il existe deux types de protection:

  • Retention period: Spécifie une période de temps fixe pendant laquelle une version d'objet est verrouillée. Pendant cette période, votre version de l'objet est protégée en écriture et ne peut pas être modifiée ou supprimée.

  • Legal hold: Offre la même protection qu'une période de rétention, mais sans date d'expiration. Au contraire, Legal hold reste en place jusqu'à ce que vous la désactiviez explicitement. Les legal hold sont indépendantes des périodes de rétention.

Il existe deux modes pour la période de rétention :

Mode Gouvernance

Les utilisateurs ne peuvent pas modifier ou supprimer un objet, ni modifier ses paramètres de rétention, sauf s'ils disposent d'autorisations appropriées.

Avec le mode Gouvernance, vous protégez les objets contre la suppression par la plupart des Object Users, mais vous avez la possibilité d'autoriser certains Object Users à modifier les paramètres de rétention ou à supprimer l'objet si besoin.

Vous pouvez également utiliser le mode Gouvernance pour tester les paramètres des délais de conservation avant de créer un délai de conservation en mode conformité.

  • Les Object Users ne peuvent pas modifier ou supprimer un objet.

  • Les Object Users disposant de l'autorisation s3:PutObjectRetention, peuvent augmenter la période de rétention d'un objet.

  • Les Object Users disposant de l'autorisation s3:BypassGovernanceRetention, peuvent supprimer ou réduire la période de rétention d'un objet.

  • Les Object Users disposant de l'autorisation s3:BypassGovernanceRetention peuvent également supprimer les objets verrouillés.

Mode Conformité

Un objet protégé avec le mode conformité ne peut être modifié ou supprimé par aucun Object Users, y compris l'Object Users root de votre compte.

Lorsqu'un objet est protégé en mode conformité, son mode de rétention ne peut être modifié et sa période de rétention ne peut être réduite.

Le mode conformité permet de s'assurer que la qu'un objet ne peut pas être modifié ou supprimée pendant la durée de la période de rétention.

  • Les Object Users ne peuvent pas modifier ou supprimer un objet.

  • Les Object Users disposant de l'autorisation s3:PutObjectRetention, peuvent augmenter la période de rétention d'un objet.

  • Les Object Users ne peuvent pas supprimer ou réduire la rétention d'un objet.

Avec le mode conformité, si vous appliquez une période de rétention par erreur (par exemple 6 ans au lieu de 6 jours), cegedim.cloud n'a aucune possibilité de supprimer ou de réduire la période de rétention.

Une bonne pratique consiste à commencer avec mode gouvernance pour effectuer des tests, puis de passer ensuite, en mode conformité.

Pour plus d'informations sur Object Lock, reportez-vous à la page Object Lock.

Dernière mise à jour