Les politiques de gestion des Buckets fournissent à des Object Users spécifiques, ou à tous les Object Users, des autorisations conditionnelles et granulaires pour des actions spécifiques.
Les conditions des politiques peuvent être utilisées pour attribuer des autorisations à une série d'objets qui correspondent à la condition souhaitée et peuvent être utilisées pour attribuer automatiquement des autorisations aux objets nouvellement téléchargés.
La manière dont l'accès aux ressources est gérée lors de l'utilisation du protocole S3 est décrite dans https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html et vous pouvez utiliser ces informations comme base pour comprendre et utiliser les politiques de gestion des Buckets fournit par le service de Stockage d'Objet de cegedim.cloud.
Cette section fournit des informations de base sur l'utilisation des politiques de gestion des Buckets.
Les politiques de gestion des Buckets peuvent être gérées en utilisant le client aws s3api (d'autres outils ou SDK fonctionnent aussi):
get-bucket-policy
put-bucket-policy
delete-bucket-policy
Nous utilisons les utilitaires aws s3 et aws s3api issues du client S3 AWSCLIv2 sur Linux. ${S3_ENDPOINT}
& ${S3_PROFILE}
sont des variables d'environnement.
Créez un fichier et insérez votre politique de gestion au format JSON :
L’élément Principal spécifie les Access Key des Object Users qui sont autorisés ou non, à effectuer les actions sur les différentes ressources spécifiées.
Vous pouvez spécifier un wildcard '*
' pour indiquer tous les Object Users.
Attention, utiliser le wildcard '*
' dans une politique de gestion de Buckets, signifie que tout le monde peut accéder aux ressources spécifiées et effectuer les actions spécifiées
Appliquez la politique des gestions sur le Bucket: bucket-test
Le service de Stockage d'Objet de cegedim.cloud est directement accessible depuis Internet.
Si vous accordez un accès public à votre Bucket ou à un sous-ensemble de votre Bucket, tout le monde peut obtenir vos objets.
Pour plus d'informations, consulter Gérer l'accès à un Bucket.
Avec l'accès public, le contenu du Bucket peut être consulté directement à l'aide d'un navigateur web.
L'URL pour accéder à un Bucket public suit ce format : https://<objectstore_name>.storage-[eb4|et1].cegedim.cloud/<bucket_name>
Par exemple : https://cos-cegedimit-myit.storage-eb4.cegedim.cloud/mybucket
Le service de Stockage d'Objet de cegedim.cloud est directement accessible depuis Internet.
Si vous accordez un accès public à votre Bucket ou à un sous-ensemble de votre Bucket, tout le monde peut obtenir vos objets.
Avec la politique suivante, tous les objets du Bucket my-bucket
et sous le préfixe public/
sont accessibles publiquement, sans authentification :
L'élément "condition" est utilisé pour spécifier les conditions qui déterminent quand une règle s'applique.
Les tableaux suivants référencent les conditions qui sont supportées par le service de Stockage Objet de cegedim.cloud et qui peuvent être utilisées dans les expressions de condition.
Permissions | Opérations S3 |
---|---|
Permissions | Opérations S3 |
---|---|
Permissions | Opérations S3 |
---|---|
Condition | Description | Opérateurs applicables |
---|---|---|
Nom de la clé | Description | Autorisations applicables |
---|---|---|
Nom de la clé | Description | Autorisations applicables |
---|---|---|
s3:GetObject
S'applique à la dernière version d'un objet dans un Bucket où la gestion des version es activée.
GET
Objet, HEAD
Objet
s3:GetObjectVersion
GET
Objet, HEAD
Objet. (pour une version spécifique de l'objet)
s3:PutObject
Objet PUT
, Objet POST
, Initier un téléchargement "mulitpart" ou un télécharger d'une "part"
Objet PUT Terminer un téléchargement "mulitpart"
s3:GetObjectAcl
GET
Objet ACL
s3:GetObjectVersionAcl
GET
ACL (pour une version spécifique de l'objet)
s3:PutObjectAcl
PUT
Object ACL
s3:PutObjectVersionAcl
PUT
Objet (pour une version spécifique de l'objet)
s3:DeleteObject
DELETE
Objet
s3:DeleteObjectVersion
DELETE
Objet (une version spécifique de l'objet)
s3:ListMultipartUploadParts
Liste des ''parts" dans un téléchargement "mulitpart"
s3:AbortMultipartUpload
Terminer le téléchargement "mulitpart"
s3:DeleteBucket
DELETE
Bucket
s3:ListBucket
GET
Bucket (Liste les objets), HEAD
Bucket
s3:ListBucketVersions
GET
Bucket (pour une version spécifique de l'objet))
s3:GetLifecycleConfiguration
GET
politique de gestion du Cycle de vie d'un Bucket
s3:PutLifecycleConfiguration
PUT
politique de gestion de Cycle de vie sur un Bucket
s3:GetBucketAcl
GET
Bucket acl
s3:PutBucketAcl
PUT
Bucket acl
s3:GetBucketCORS
GET
Bucket cors
s3:PutBucketCORS
PUT
Bucket cors
s3:GetBucketVersioning
GET
Bucket versioning
s3:PutBucketVersioning
PUT
Bucket versioning
s3:GetBucketPolicy
GET
Politique de gestion du Bucket
s3:DeleteBucketPolicy
DELETE
Politique de gestion du Bucket
s3:PutBucketPolicy
PUT
Politique de gestion du Bucket
aws:CurrentTime
Utilisé pour vérifier les conditions basées sur la date et l'heure
Opérateur de date
aws:EpochTime
Utilisé pour vérifier les conditions basées sur la date et l'heure en utilisant le format EPOCH (voir Opérateurs de condition de date).
Opérateur de date
aws:principalType
Utilisé pour vérifier le type de principal (utilisateur, compte, utilisateur fédéré, etc.) pour la requête en cours.
Opérateur de chaîne de caractères
aws:SourceIp
Utilisé pour vérifier l'adresse IP source.
Opérateur de chaîne caractères
aws:UserAgent
Utilisé pour vérifier "UserAgent" du demandeur.
Opérateur de chaîne caractères
aws:nom d'utilisateur
Utilisé pour vérifier le nom d'utilisateur du demandeur.
Opérateur de chaîne caractères
s3:x-amz-acl
Condition pour exiger des autorisations d'accès spécifiques lorsque l'utilisateur télécharge un objet.
s3:PutObject
s3:PutObjectAcl
s3:PutObjectVersionAcl
s3:x-amz-grant-permission
(pour les permissions explicites), où la permission peut être : lecture, écriture, lecture-acp, écriture-acp, contrôle total
Le propriétaire du Bucket peut ajouter des conditions en utilisant ces clés pour exiger certaines permissions.
s3:PutObject
s3:PutObjectAcl
s3:PutObjectVersionAcl
s3:x-amz-server-side-encryption
Oblige l'utilisateur à spécifier cet en-tête dans la requête.
s3:PutObject
s3:PutObjectAcl
s3:VersionId
Restreindre l'utilisateur à l'accès aux données uniquement pour une version spécifique de l'objet.
s3:PutObject
s3:PutObjectAcl
s3:DeleteObjectVersion
s3:x-amz-acl
Définir une condition pour exiger des autorisations d'accès spécifiques lorsque l'utilisateur télécharge un objet.
s3:CreateBucket
s3:PutBucketAcl
s3:x-amz-grant-permission
(pour les permissions explicites), où la permission peut être : lecture, écriture, lecture-acp, écriture-acp, contrôle total
Le propriétaire du Bucket peut ajouter des conditions en utilisant ces clés pour exiger certaines permissions.
s3:CreateBucket
s3:PutBucketAcl
s3:prefix
Oblige l'utilisateur à spécifier cet en-tête dans la requête.
s3:PutObject
s3:PutObjectAcl
s3:delimiter
Exiger que l'utilisateur spécifie le paramètre de délimitation dans la requête Get Bucket (List Objects).
s3:PutObject
s3:PutObjectAcl
s3:DeleteObjectVersion
s3:max-keys
Limitez le nombre de clés que Object Storage Service renvoie en réponse à la requête Get Bucket (List Objects) en demandant à l'utilisateur de spécifier le paramètre max-keys.
s3:ListBucket
s3:ListBucketVersions
Le service de stockage Stockage Objet de cegedim.cloud prend en charge la génération d'URL pré-signées afin d'accorder l'accès aux objets sans avoir besoin d'authentification.
Les URL pré-signées sont utilisées pour fournir un accès à durée limitée, à un objet privé dans votre Bucket S3. Ils fonctionnent en ajoutant une Access key
, une date d'expiration et une signature (Sigv4) comme paramètres de requête à l'objet S3.
Il y a deux cas d'utilisation courants où vous pouvez les utiliser :
Partage simple et occasionnel d'objets.
Accès fréquent et programmatique pour visualiser un objet dans une application
Accès fréquent et programmatique au téléchargement d'un objet par l'intermédiaire d'une application
Nous utilisons les utilitaires aws s3 et aws s3api issues du client S3 AWSCLIv2 sur Linux. ${S3_ENDPOINT}
et ${S3_PROFILE}
sont des variables d'environnement.
Dans cet exemple, l'URL générée a une expiration de 10 minutes. Passé ce délai, l'objet ne sera plus accessible, via cette URL.
--expires-in : Nombre de secondes avant l'expiration de l'URL pré-signée. La valeur par défaut est de 3600 secondes. Le délai maximal d'expiration est de 7 jours (604800 secondes).
Si un objet ayant la même clé existe déjà dans le bucket spécifié dans l'URL pré-signée, l'objet existant sera remplacé.
aws s3 et aws s3api ne supportent pas la génération d'url pré-signées pour l'upload.
Vous devez utiliser AWS SDK pour créer une url pré-signée pour l'upload.
Ci-dessous, un exemple simple utilisant [AWS SDK pour Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)
L'URL pré-signée d'upload ne fonctionne qu'avec un adressage de type chemin.
Remplacez aws_access_key_id
et aws_secret_access_key
par vos propres identifiants.
ExpiresIn
(entier) : Nombre de secondes avant l'expiration de l'URL pré-signée. La valeur par défaut est de 3600 secondes. Le délai d'expiration maximal est de 7 jours.
Vous pouvez utiliser un outil tel que curl
pour télécharger votre fichier dans le bucket, en utilisant l'URL générée précédemment :
La configuration d'un cycle de vie vous permet de définir une politique d'expiration de vos objets et de les supprimer automatiquement.
Dans cet exemple, nous allons créer une politique de gestion du cycle de vie pour supprimer les objets dont la clé commence par rapports/
et qui ont plus de 90 jours.
La gestion des configuration des Cycle de Vie est possible avec des clients avec interface graphique (S3 Browser) ou les SDK AWS.
Dans cet exemple, nous utiliserons le client en ligne de commande AWS CLI.
Le cycle de vie est définit au niveau du Bucket.
Un maximum de 1000 règles de cycle de vie par Bucket est applicable.
Il peut y avoir un délai entre la date d'expiration et la date à laquelle le service de Stockage Objet supprime l'objet.
Toujours arrondir l'heure au jour suivant à minuit UTC.
Un objet supprimé ne peut être restauré.
La configuration d'un cycle de vie peut être gérée en utilisant aws s3api (d'autres outils ou SDK fonctionnent aussi) :
put-bucket-lifecycle
get-bucket-lifecycle
delete-bucket-lifecycle
Nous utilisons les utilitaires aws s3 et aws s3api issues du client S3 AWSCLIv2 sur Linux.${S3_ENDPOINT}
&${S3_PROFILE}
sont des variables d'environnement
Créez un fichier et insérez votre configuration au format JSON :
Appliquez-le au Bucket : bucket-test
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 nom simple (voir #limitations-et-bonnes-pratiques)
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.
Pour plus d'informations sur la création d'un Object Store, veuillez lire les #premiers-pas.
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**.**
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 :
Dans cet exemple "/
" est le délimiteur, et client1/2020/04
est un un préfixe.
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.
Le service de Stockage Objet de cegedim.cloud fournit 2 points endpoints:
https://storage-eb4.cegedim.cloud
Permet d'utiliser le service de Stockage Objet via EB4 - Centre de données de Boulogne.
https://storage-et1.cegedim.cloud
Permet d'utiliser le service de Stockage Objet via ET1 - Centre de données de Toulouse.
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.
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.
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.
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.
Le service de stockage objet cegedim.cloud est uniquement disponible via le protocole HTTPS sur le port 443.
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.
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 #objectstoragearchitecture-urlpresignee.
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 :
Pour plus d'informations sur les politiques de gestion des Buckets, reportez-vous à la page Politiques de Buckets.
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 :
Pour plus d'informations sur la gestion des configurations de cycle de vie, reportez-vous à la page Configuration de cycle de vie.
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 :
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.
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 :
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 le mode gouvernance pour effectuer des tests, puis de passer ensuite, en mode conformité.
Pour plus d'informations, voir :
Object Lock nécessite la désactivation de la fonctionnalité ADO (Access During Outage) au niveau du magasin d'objets.
Les Object Stores sans ADO ne peuvent pas être créés au travers d'ITCare et doivent manuellement par les équipes de cegedim.cloud.
Object Lock ne fonctionne qu'avec les Object Users de type IAM.
Object Lock ne fonctionne qu'avec des Buckets où le versionnage est activé.
L'activation de Object Lock sur le Bucket active automatiquement le versionnage .
Une fois Object Lock activé, il n'est pas possible de le désactiver ou de suspendre le versionnage au niveau du Bucket.
Object Lock n'est pas compatible avec les Buckets où la fonctionnalité "système de fichiers" est activée.
Object Lock est uniquement supporté l'API S3.
Un Bucket peut avoir une configuration Object Lock par défaut comprenant un mode de rétention (gouvernance ou conformité) et une période de rétention (exprimée en jours ou en années).
Object Lock s'appliquent uniquement aux versions individuelles des objets
Les différentes versions d'un même objet peuvent avoir des modes et des périodes de rétention différents.
Object Lock empêche la suppression ou la modification d'un objet. La modification ne signifie pas que de nouvelles versions ne peuvent pas être créées (de nouvelles versions peuvent être créées avec leurs propres paramètres de rétention).
Un objet peut toujours être supprimé en fonction de sa version. Un marqueur de suppression est créé. La version existe toujours et est verrouillée.
Le mode conformité est plus strict : les périodes de rétention ne peuvent pas être supprimées, réduites ou déclassés en mode gouvernance.
Le mode gouvernance est moins strict : les période de rétention peuvent être supprimées, contournées, ou même élevés en mode conformité.
La mise à jour des métadonnées d'une version d' un objet, qui se produit lorsque vous placez ou modifiez Object Lock, n'écrase pas la version de l'objet et ne réinitialise pas son horodatage "Last-Modified".
La période de rétention peut être placée explicitement sur un objet ou implicitement, par le biais d'une configuration Object Lock définit au niveau du Bucket.
Le fait de placer une une configuration Object Lock sur un Bucket n'a aucun effet les objets déjà présents dans le Bucket.
La modification de période de rétention définit au niveau du Bucket ne change pas la période de rétention sur les objets déjà présent dans le Bucket.
Les objets sous verrou sont protégés contre les suppressions de cycle de vie.
La logique du cycle de vie est rendue difficile en raison de la variété des comportements des différents verrous.
Du point de vue du cycle de vie, il existe des verrous sans date, des verrous dont la date peut être prolongée et des verrous dont la date peut être réduite.
Pour le Mode de conformité : la date de conservation ne peut pas être réduite, mais elle peut être augmentée.
Pour le Mode de gouvernance : la date de verrouillage peut augmenter, diminuer ou être supprimée.
Pour la protection de type Legal Hold, la rétention est indéfinie.
Le contrôle d'accès au travers des politiques IAM est une partie importante de la fonctionnalité Object Lock.
La permission s3:BypassGovernanceRetention
est importante car elle permet supprimer un objet protégé par Object Lock avec une configuration en mode gouvernance.
Les conditions des politiques IAM sont décrites ci-dessous et vous permettent de limiter la période de rétention et le type de protection (Legal Hold) spécifiés sur les objets.
Il n'est pas possible de gérer les politiques IAM avec ITCare.
Ces condition peuvent être utilisées dans les politiques de gestion des Buckets et IAM pour contrôler les comportements de Objet Lock sur objets.
Par exemple: s'assurer à ce que la période de rétention ne dépasse pas 5 ans.
Nous utilisons les utilitaires aws s3 et aws s3api issues du client S3 AWSCLIv2 sur Linux. ${S3_ENDPOINT}
& ${S3_PROFILE}
sont des variables d'environnement.
Créez un Bucket avec le Object Lock activé :
Vous ne pouvez activer Object Lock uniquement à la création d'un Bucket.
Vous ne pouvez pas activer Object Lock sur un Bucket existant.
Ajoutez une configuration Object Lock sur votre Bucket :
Obtenir la configuration Object Lock actuelle d'un Bucket :
Dans ce contexte, il n'y a pas de configuration Object Lock définie au niveau du Bucket.
Mais le Bucket a été créé avec le paramètre --object-lock-enabled-for-bucket.
Nous utilisons les utilitaires aws s3 et aws s3api issues du client S3 AWSCLIv2 sur Linux. ${S3_ENDPOINT}
& ${S3_PROFILE}
sont des variables d'environnement.
Téléchargez un objet dans un Bucket :
Appliquez la période de rétention sur l'objet :
Utilisez head-object
pour obtenir les métadonnées de l'objet et les informations sur la rétention :
Augmentez la rétention (+1 jours) :
Supprimez l'objet :
Vérifiez la version :
Cela affichera toutes les versions de l'objet ainsi que le marqueur de suppression
(DeleteMarker)
, créé lorsque nous avons supprimé l'objet.
Supprimez le marqueur de suppression
(DeleteMarker)
en utilisant l'identifiant de la version :
Uploadez une nouvelle version de l'objet :
Nous avons maintenant 2 versions de l'objet feather.ttf.
Supprimez une version spécifique :
La version de l'objet supprimée "devient" un marqueur de suppression
(DeleteMarker).
Lister les versions :
Utilisez l'option --bypass-governance-retention
pour contourner la mode gouvernance et supprimer le marqueur de suppression
(DeleteMarker)
:
Lister les versions :
Supprimer la dernière version de l'objet avec --bypass-governance-retention
:
Lister les versions :
Résultat vide.
Résultat vide - bucket vide.
Les configurations Object Lock peuvent être appliquées au niveau du Bucket.
La rétention sera appliquée sur chaque objet mis dans le Bucket.
Definition d'une configuration Object Lock
La configuration Object Lock est un document JSON :
Le mode de rétention par défaut que vous souhaitez appliquer aux nouveaux objets placés dans le Bucket. Doit être utilisé avec Jours ou Années.
Les valeurs possibles sont COMPLIANCE ou GOVERNANCE.
Le nombre de jours de la période de rétention appliquée par défaut. Doit être utilisé avec Mode.
Années
Le nombre d'années de la période de rétention appliquée par défaut. Doit être utilisé avec Mode. Les jours et les années sont mutuellement exclusif.
s3Browser est un client Windows freeware pour Amazon S3.
s3Browser ne vous permet pas de gérer les configurations Object Lock sur les Buckets ou les objets.
Avec s3Browser, vous pouvez voir les métadonnées des objets et obtenir la configuration Object Lock actuellement définie sur l'objet :
Méthodes | Notes |
---|---|
Comportements spécifiques par rapport à l'API AWS.
La création de Buckets utilisant des noms de moins de trois caractères échoue avec le message :
Lors de la création d'un Bucket ou d'un objet avec un contenu vide, le service de Stockage Objet cegedim.cloud renvoie une erreur 400 invalid content-length
ce qui diffère d'AWS qui renvoie une erreur 400 Bad Request
.
La copie d'un objet dans un autre Bucket qui indexe la même clé d'indexation des métadonnées utilisateur mais avec un type de données différent n'est pas prise en charge et échoue avec une erreur 500 Server Error
.
Lors de l'énumération des objets d'un Bucket, si vous utilisez un préfixe et un délimiteur mais fournissez un marker invalide, le service de Stockage Objet cegedim.cloud renvoie une erreur 500 Server Error
ou 400 Bad Request
pour un Bucket si la fonctionnalité "Système de fichier" est activée.
Cependant, AWS renvoie 200 OK
et les objets ne sont pas répertoriés.
Pour les Buckets où la gestion des versions est activée, le service de Stockage Objet cegedim.cloud ne crée pas de marqueur de suppression (Delete marker) lorsqu'un objet déjà supprimé est supprimé à nouveau.
Cela diffère de l'API AWS S3, qui insère toujours un marqueur de suppression (Delete marker) pour la suppression d'objets supprimés dans les Buckets où le versionnage est activé.
Ce changement de comportement n'est applicable que lorsque l'objet supprimé est à nouveau supprimé de la zone propriétaire.
Lorsqu'une tentative est faite pour créer un Bucket avec un nom déjà existant, le comportement de service de Stockage Objet cegedim.cloud peut différer de celui d'AWS.
l'API AWS retourne toujours une erreur 409 Conflit
lorsqu'un utilisateur disposant des permissions (ACL) FULL_CONTROL
sur le Bucket, ou de toute autre autorisation, tente de recréer le Bucket.
Lorsqu'un Object User avec les permissions (ACL) FULL_CONTROL
ou WRITE_ACP
sur le Bucket tente de recréer le Bucket,
Le service de Stockage Objet cegedim.cloud renvoie 200 OK
et l'ACL est écrasée, cependant, le propriétaire n'est pas modifié.
Un Object User avec des permissions WRITE/READ
obtiendra une erreur 409 Conflit
s'il tente de recréer un bucket.
Lorsqu'une tentative de recréer un bucket est faite par le propriétaire du bucket, le service renvoie 200 OK
et écrase l'ACL. L'API AWS S3 se comporte de la même manière.
Lorsqu'un Object User n'a pas de privilèges d'accès au Bucket, une tentative pour recréer le Bucket entraîne une erreur 409 Conflit
. L'API AWS S3 se comporte de la même manière.
Nom | Description | Requis |
---|---|---|
Cela signifie que, sans ADO, toutes opérations (lecture, création, mise à jour et suppression ainsi que lister des buckets), sur un site qui n'est pas propriétaire de l'objet ou du bucket, échoueront.
Les Object Users de type IAM ne peuvent pas être gérés au travers d'ITCare et doivent être créés manuellement par les équipes de cegedim.cloud.
Condition | Description |
---|---|
Fonctionnalité | Notes |
---|---|
s3:object-lock-legal-hold
Permet l'application de la protection "Legal Hold" sur l'objet spécifié.
s3:object-lock-mode
Active l'application de la protection "Retention Period" sur l'objet spécifié.
s3:object-lock-retain-until-date
Permet l'application d'une date de conservation spécifique.
s3:object-lock-remaining-retention-days
Permet l'exécution d'un objet par rapport aux jours de rétention restants.
And
Conteneur pour spécifier les filtres de règles. Ces filtres déterminent le sous-ensemble d'objets auquel la règle s'applique.
Type : Chaîne de caractères
Parent: Rule
Oui, si vous spécifiez plus d'une condition de filtre (par exemple, un préfixe et une ou plusieurs tags).
Date
Date à laquelle vous voulez que l'action s'applique.
La valeur de la date doit être conforme au format ISO 8601. L'heure est toujours minuit UTC.
Type : Chaîne de caractères
Parent: Expiration
Oui, si Days
et ExpiredObjectDeleteMarker
sont absents.
Days
Spécifie le nombre de jours après la création de l'objet où l'action de la règle spécifique prend effet.
Type : Nombre entier positif lorsqu'il est utilisé avec Expiration.
Parent: Expiration
Oui, si Date
et ExpiredObjectDeleteMarker
sont absents.
Expiration
Cette action spécifie la durée de vie d'un objet. L'action dépend du status du versionnage dans le Bucket.
Si le versionnage n'a jamais été activé sur le Bucket, l'objet est supprimé. Sinon, si le versionnage est activé(ou suspendu), l'action s'applique uniquement à la version actuelle de l'objet. Dans un Bucket avec le versionnage activé, un objet peut avoir plusieurs version, une version courante et zéro ou 'n' versions non courantes.
Au lieu de supprimer la version actuelle, un marqueur de suppression (DeleteMarker)
est appliqué et ce marqueur devient la version courante le l'objet.
Note:
Si le versionnage dans votre Bucket est suspendu, marqueur de suppression (DeleteMarker)
sera créé avec un ID nul.
Pour supprimer les versions non courantes d'un objet, vous devez utiliser l'action NoncurrentVersionExpiration
Type : Container
Enfants : Days
ou Date
Parent: Rule
Oui, si aucune autre action n'est présente dans la règle.
Filter
Conteneur pour les éléments qui décrivent le filtre identifiant un sous-ensemble d'objets auquel la règle de cycle de vie s'applique. Si vous spécifiez un filtre vide ("Prefixe": {}
), la règle s'applique à tous les objets du seau.
Type : Chaîne de caractères
Enfants : Prefixe
, Tag
Parent: Rule
Oui
ID
Identifiant unique pour la règle. La valeur ne peut être supérieure à 255 caractères.
Type : Chaîne de caractères
Parent: Rule
Non
Key
Spécifie la clé d'un tag. Une clé d'un tag peut comporter jusqu'à 128 caractères Unicode.
Les clés des tags que vous spécifiez dans un filtre de règle de cycle de vie doivent être uniques.
Type : Chaîne de caractères
Parent: Tag
Oui, si le parent <
Tag
>
est spécifié.
LifecycleConfiguration
Conteneur pour les règles du cycle de vie. Vous pouvez ajouter jusqu'à 1000 règles.
Type : Container
Enfant: Rule
Parent: Aucun
Oui
ExpiredObjectDeleteMarker
Dans un Bucket où le versionnage est activé (ou suspendu), vous pouvez ajouter cette action pour supprimer les marqueur de suppression (DeleteMarker)
. Sur Bucket sans versionnage, cette action n'a aucun effet.
Cette action ne peut utiliser un filtre basé sur les tags
Valeur valide: true | false
Parent: Expiration
Oui. si Date
and Days
sont absent.
NoncurrentDays
Spécifie le nombre de jours un objet est non courant avant que l'action s'applique.
Valeur: entier
Parent: NoncurrentVersionExpiration
Oui
NoncurrentVersionExpiration
Indique quand un objet non courant expire. A l'expiration les versions non courantes de l'objet sont supprimées.
Positionnez cette configuration sur un Bucket, avec le versionnage activé (ou suspendu) afin de supprimer les versions non courante d'un objet au-delà d'un certaine période.
Type: Container
Enfant: NoncurrentDays
Parent: Rule
Oui, si aucune autre action est présente dans le conteneur Rule.
Prefixe
Préfixe de la clé d'objet identifiant un ou plusieurs objets auxquels la règle s'applique. Le préfixe vide (<Prefix></Prefix>) indique qu'il n'y a pas de filtre basé sur le préfixe de la clé.
Note:
Prise en charge <Prefixe> avec et sans <Filtre>.
PUT Bucket lifecycle avec un filtre:
"Prefix": {}, # No Prefix"Prefix": "documents/",
Il ne peut y avoir qu'un seul préfixe dans un filtre de règles de cycle de vie.
Type : Chaîne de caractères
Parent: Filter
ou And
(si vous spécifiez plusieurs filtres tels qu'un préfixe et un ou plusieurs tags)
Non
Rule
Conteneur pour une règle de cycle de vie. Une configuration de cycle de vie peut contenir jusqu'à 1 000 règles.
Type : Container
Ancêtre : LifecycleConfiguration
Oui
Status
si elle est activée, S3 exécute la règle comme prévu. Si elle est désactivée, S3 ignore la règle.
Type : Chaîne de caractères
Ancêtre : Rule
Valeurs valides : Enabled, Disabled.
Oui
Value
Spécifie la valeur d'une clé de balise. Chaque balise d'objet est une paire clé-valeur.
La valeur de la balise peut comporter jusqu'à 256 caractères Unicode.
Type : Chaîne de caractères
Ancêtre : Tag
Oui, si le parent <
Tag
>
est spécifié.
Service GET
Le service de stockage objet cegedim.cloud supporte les paramètres marker
et max-keys
pour permettre la pagination des listes lors de l'énumération des objets dans le Buckets.
DELETE Bucket
DELETE Bucket cors
DELETE Bucket lifecycle
Seules les actions d'expiration sont supportées.
Les configurations liées à l'archivage (comme AWS Glacier) ne sont pas supportées.
Les configurations de cycle de vue ne sont pas supportées les buckets où la fonctionnalité "system de fichier
" est activée.
DELETE Bucket policy
GET Bucket (List Objects)
Pour les buckets où la fonctionnalité "system de fichier
" est activée, le "slash" (/)
est le seul délimiteur pris en charge lors de l'énumération des objets dans le buckets.
GET Bucket cors
GET Bucket acl
GET Bucket lifecycle
Seule les actions d'expiration sont supportées.
Les configurations liées à l'archivage (comme AWS Glacier) ne sont pas supportées.
Les configurations de cycle de vue ne sont pas supportées les buckets où la fonctionnalité "system de fichier
" est activée.
GET Bucket policy
GET Bucket Object versions
GET Bucket versioning
HEAD Bucket
List Multipart Uploads
PUT Bucket
Lorsqu'une requête de type PUT est effectuée sur un buckets existant, reportez-vous à la section "Comportements spécifiques" lorsque le buckets existe déjà.
PUT Bucket cors
PUT Bucket acl
PUT Bucket lifecycle
Seule les actions d'expiration sont supportées.
Les configurations liées à l'archivage (comme AWS Glacier) ne sont pas supportées.
Les configurations de cycle de vue ne sont pas supportées les buckets où la fonctionnalité "system de fichier
" est activée.
PUT Bucket policy
Les politiques de gestion des Buckets ne peuvent pas être configurées pour des opérations qui ne sont pas prises en charge par le service de stockage objet cegedim.cloud.
Vous pouvez retrouver la liste complète des opérations et des conditions supportées ici.
PUT Bucket versioning
DELETE Object
Delete Multiple Objects
GET Object
GET Object ACL
HEAD Objec
PUT Object
Supports chunked PUT
PUT Object acl
PUT Object - Copy
OPTIONS object
Initiate Multipart Upload
Upload Part
Upload Part - Copy
Complete Multipart Upload
Le service de Stockage Objet cegedim.cloud renvoie un ETag de 00 pour cette requête. Cette réponse diffère de celle d'Amazon S3.
Abort Multipart Upload
List Parts
DELETE Bucket tagging
DELETE Bucket website
GET Bucket location
GET Bucket logging
GET Bucket notification
GET Bucket tagging
GET Bucket requestPayment
Le service de Stockage Objet cegedim.cloud utilise son propre modèle pour les paiements. Cette fonctionnalité n'est pas supportée.
GET Bucket website
PUT Bucket logging
PUT Bucket notification
PUT Bucket tagging
PUT Bucket requestPayment
Le service de Stockage Objet cegedim.cloud utilise son propre modèle pour les paiements. Cette fonctionnalité n'est pas supportée.
PUT Bucket website
Object APIs
GET Object torrent
POST Object
POST Object restore
Cette opération est liée à AWS Glacier. Cette fonctionnalité n'est pas supportée.