Activer et utiliser des configurations de conservation des objets

Overview

Cette page explique comment utiliser la fonctionnalité de verrouillage de conservation des objets, y compris comment l'activer pour un bucket et définir des configurations de conservation pour les objets qu'il contient.

Rôles requis

Pour obtenir les autorisations nécessaires pour activer la fonctionnalité de verrou de conservation des objets sur un bucket et définir des configurations de conservation sur les objets, demandez à votre administrateur de vous accorder le rôle IAM "Administrateur de l'espace de stockage" (roles/storage.admin) sur le bucket ou le projet contenant le bucket. Ce rôle prédéfini contient les autorisations requises pour définir et gérer les configurations de conservation. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

  • storage.buckets.create
  • storage.buckets.enableObjectRetention
  • storage.buckets.get
  • storage.buckets.list
    • Cette autorisation n'est nécessaire que si vous prévoyez d'utiliser la console Google Cloud pour suivre les instructions de cette page.
  • storage.objects.get
  • storage.objects.list
    • Cette autorisation n'est nécessaire que si vous prévoyez d'utiliser la console Google Cloud pour suivre les instructions de cette page.
  • storage.objects.overrideUnlockedRetention
    • Cette autorisation n'est requise que si vous envisagez de verrouiller ou de raccourcir une configuration de conservation existante.
  • storage.objects.setRetention
  • storage.objects.update

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés.

Pour en savoir plus sur l'attribution de rôles dans des buckets, consultez la page Utiliser IAM avec des buckets. Pour savoir comment attribuer des rôles aux projets, consultez la page Gérer l'accès aux projets.

Activer la conservation des objets pour un bucket

L'activation de la conservation des objets n'est possible qu'au moment de la création du bucket. Si la conservation des objets est activée sur un bucket, elle ne peut pas être désactivée. Suivez les instructions ci-dessous pour activer la conservation des objets pour un bucket :

Console

Créez un bucket comme à votre habitude, puis à l'étape Choisir comment protéger les données d'objet, sélectionnez Conservation (pour la conformité), puis Activer la conservation des objets.

Ligne de commande

Créez un bucket comme à votre habitude et ajoutez l'option --enable-per-object-retention dans la commande.

API REST

API JSON

Créez un bucket comme à votre habitude et incluez le paramètre de requête enableObjectRetention=true dans la requête.

API XML

Créez un bucket comme à votre habitude et incluez l'en-tête x-goog-bucket-object-lock-enabled: True dans la requête.

Afficher l'état de conservation des objets d'un bucket

Pour savoir si la conservation des objets est activée sur un bucket, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

    Accéder à la page "Buckets"

  2. Cliquez sur le nom du bucket dont vous souhaitez vérifier l'état.

  3. Cliquez sur l'onglet Protection.

  4. L'état de conservation des objets du bucket s'affiche dans la section Conservation des objets.

Ligne de commande

Exécutez la commande gcloud storage buckets describe avec l'option --format :

gcloud storage buckets describe gs://BUCKET_NAME --format="default(per_object_retention)"

BUCKET_NAME correspond au nom du bucket dont vous souhaitez afficher la règle de conservation. Exemple :my-bucket

Si l'opération réussit et qu'une règle de conservation existe pour le bucket, la réponse est semblable à celle-ci :

per_object_retention:
  mode: Enabled

Si l'opération réussit et qu'aucune règle de conservation n'existe pour le bucket, la réponse est semblable à celle-ci :

null

API REST

API JSON

  1. Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête Authorization.

    Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête Authorization.

  2. Exécutez cURL pour appeler l'API JSON avec une requête de bucket GET incluant le champ objectRetention :

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=objectRetention"

    BUCKET_NAME est le nom du bucket concerné. Exemple :my-bucket

API XML

  1. Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête Authorization.

    Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête Authorization.

  2. Utilisez cURL pour appeler l'API XML avec une requête de bucket GET limitée à ?object-lock :

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/BUCKET_NAME?object-lock"

    BUCKET_NAME est le nom du bucket concerné. Exemple :my-bucket

Définir la configuration de conservation d'un objet

Pour définir la configuration de conservation d'un objet, celui-ci doit être stocké dans un bucket pour lequel la conservation des objets est activée. Pour définir une configuration de conservation pour un objet, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket qui contient l'objet dont vous souhaitez définir ou modifier la configuration de conservation.

    La page Informations sur le bucket s'ouvre avec l'onglet Objets sélectionné.

  3. Accédez à l'objet, qui peut se trouver dans un dossier.

  4. Cliquez sur le nom de l'objet.

    La page Détails de l'objet s'ouvre. Elle contient les métadonnées de l'objet.

  5. Dans la section Protection, cliquez sur l'icône Modifier () associée à À partir de la configuration de conservation des objets.

    Le volet Modifier la conservation s'ouvre.

  6. Dans la section Configuration de la conservation des objets, cliquez sur Activé ou Désactivé.

    1. Si la configuration de conservation est activée, sélectionnez une date et une heure pour la configuration dans Conserver jusqu'à cette date puis cliquez sur Déverrouillé ou Verrouillé dans Mode de conservation.
  7. Cliquez sur Confirm (Confirmer).

Ligne de commande

Exécutez la commande gcloud storage objects update avec les options appropriées. Pour ajouter ou modifier une configuration de conservation, exécutez la commande suivante. Notez que vous devez également inclure l'option --override-unlocked-retention si vous modifiez une configuration existante de manière à la verrouiller ou à raccourcir son délai de conservation :

gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --retain-until=DATETIME --retention-mode=STATE

Où :

  • BUCKET_NAME correspond au nom du bucket concerné. Exemple :my-bucket

  • OBJECT_NAME correspond au nom de l'objet concerné. Exemple :kitten.png

  • DATETIME correspond à la date et à l'heure les plus anciennes auxquelles l'objet a pu être supprimé. Par exemple, 2028-02-15T05:30:00Z.

  • STATE correspond à Locked ou Unlocked.

Si l'opération réussit, la réponse se présente comme suit :

Updating gs://my-bucket/kitten.png...
  Completed 1  

Pour supprimer une configuration de conservation d'un objet, exécutez la commande suivante :

gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --clear-retention --override-unlocked-retention

Où :

  • BUCKET_NAME correspond au nom du bucket concerné. Exemple :my-bucket

  • OBJECT_NAME correspond au nom de l'objet concerné. Exemple :kitten.png

API REST

API JSON

  1. Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête Authorization.

    Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête Authorization.

  2. Créez un fichier JSON contenant les informations suivantes :

    {
      "retention": {
        "mode": STATE,
        "retainUntilTime": "DATETIME"
      }
    }

    Où :

    • STATE correspond à Locked ou Unlocked.

    • DATETIME correspond à la date et à l'heure les plus anciennes auxquelles l'objet a pu être supprimé. Exemple : 2028-02-15T05:30:00Z.

  3. Exécutez cURL pour appeler l'API JSON avec une requête d'objet PATCH :

    curl -X PATCH --data-binary @JSON_FILE_NAME \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?overrideUnlockedRetention=BOOLEAN"

    Où :

    • JSON_FILE_NAME correspond au chemin d'accès au fichier que vous avez créé à l'étape 2.
    • BUCKET_NAME correspond au nom du bucket concerné. Exemple :my-bucket
    • OBJECT_NAME correspond au nom encodé au format URL de l'objet pertinent. Par exemple, pets/kitten.png, encodé au format URL sous la forme pets%2Fkitten.png.
    • La valeur BOOLEAN doit être true si la requête raccourcit, supprime ou verrouille une configuration de conservation existante. Sinon, le paramètre overrideUnlockedRetention peut être exclu complètement de la requête.

API XML

  1. Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête Authorization.

    Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête Authorization.

  2. Créez un fichier XML contenant les informations suivantes :

    <Retention>
      <Mode>
        STATE
      </Mode>
      <RetainUntilDate>
        DATETIME
      </RetainUntilDate>
    </Retention>

    Où :

    • STATE correspond à GOVERNANCE ou COMPLIANCE.

    • DATETIME correspond à la date et à l'heure les plus anciennes auxquelles l'objet a pu être supprimé. Exemple : 2028-02-15T05:30:00Z.

  3. Utilisez cURL pour appeler l'API XML avec une requête d'objet PUT limitée à ?retention :

    curl -X PUT --data-binary @XML_FILE_NAME \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "x-goog-bypass-governance-retention: BOOLEAN" \
      "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?retention"

    Où :

    • XML_FILE_NAME correspond au chemin d'accès au fichier XML que vous avez créé à l'étape 2.
    • La valeur BOOLEAN doit être true si la requête raccourcit, supprime ou verrouille une configuration de conservation existante. Sinon, l'en-tête x-goog-bypass-governance-retention peut être exclu complètement de la requête.
    • BUCKET_NAME correspond au nom du bucket concerné. Exemple :my-bucket
    • OBJECT_NAME correspond au nom encodé au format URL de l'objet pertinent. Par exemple, pets/kitten.png, encodé au format URL sous la forme pets%2Fkitten.png.

Afficher la configuration de conservation d'un objet

Pour afficher la configuration de conservation définie sur un objet, le cas échéant, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket qui contient l'objet dont vous souhaitez afficher la configuration de conservation.

    La page Informations sur le bucket s'ouvre avec l'onglet Objets sélectionné.

  3. Accédez à l'objet, qui peut se trouver dans un dossier.

  4. Cliquez sur le nom de l'objet.

    La page Détails de l'objet s'ouvre. Elle contient les métadonnées de l'objet. Les informations sur la configuration de conservation de l'objet s'affichent dans la section Protection.

Ligne de commande

Exécutez la commande gcloud storage objects describe avec l'option --format :

gcloud storage objects describe gs://BUCKET_NAME/OBJECT_NAME --format="default(retention_settings)"

Où :

  • BUCKET_NAME correspond au nom du bucket concerné. Exemple :my-bucket

  • OBJECT_NAME correspond au nom de l'objet concerné. Exemple :kitten.png

Si l'opération réussit et qu'il existe une configuration de conservation pour l'objet, la réponse est semblable à celle-ci :

retention_settings:
  mode: Unlocked
  retainUntilTime: '2028-11-30T14:11:14+00:00'

Si l'opération aboutit et qu'aucune configuration de conservation n'existe pour l'objet, la réponse est semblable à celle-ci :

null

API REST

API JSON

  1. Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête Authorization.

    Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête Authorization.

  2. Utilisez cURL pour appeler l'API JSON avec une requête d'objet GET incluant le champ retention :

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/OBJECT_NAME?fields=retention"

    Où :

    • BUCKET_NAME correspond au nom du bucket concerné. Exemple :my-bucket
    • OBJECT_NAME correspond au nom de l'objet concerné. Exemple :kitten.png

API XML

  1. Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête Authorization.

    Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête Authorization.

  2. Utilisez cURL pour appeler l'API XML avec une requête d'objet GET limitée à ?retention :

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?retention"

    Où :

    • BUCKET_NAME correspond au nom du bucket concerné. Exemple :my-bucket
    • OBJECT_NAME correspond au nom de l'objet concerné. Exemple :kitten.png

Étapes suivantes