Imposta la policy del ciclo di vita degli oggetti per i bucket di archiviazione

Le policy del ciclo di vita degli oggetti in Google Distributed Cloud (GDC) con air gap ti consentono di automatizzare la conservazione dei dati e la scadenza nei bucket di archiviazione. Puoi definire regole relative a età, prefisso e tag per eliminare oggetti non sottoposti a controllo delle versioni o per eseguire la transizione e la scadenza delle versioni senza pulizia manuale.

Prima di iniziare

I bucket di archiviazione sono risorse con ambito limitato a un progetto specifico. Il progetto funge da container, raggruppando i bucket e consentendone la gestione tramite il server dell'API di gestione. Prima di poter eseguire le operazioni in questa pagina, devi creare un nuovo progetto o selezionarne uno esistente per cui disponi di autorizzazioni sufficienti.

Ruoli IAM richiesti

Contatta l'amministratore di progetto IAM per richiedere i seguenti ruoli nello spazio dei nomi del progetto:

  • Project Bucket Admin (project-bucket-admin): crea, aggiorna ed elimina i bucket di archiviazione.
  • Project Bucket Object Viewer (project-bucket-object-viewer): visualizza e controlla i dettagli dei bucket e degli oggetti di archiviazione.

Per saperne di più, consulta Concedi l'accesso al bucket.

prepara l'ambiente

Per eseguire comandi sul server API di gestione o sul server API globale, segui questi passaggi:

  1. Accedi e genera il file kubeconfig per il server API di gestione a livello di zona, se non ne hai uno.
  2. Per i bucket a due zone, segui questi passaggi:
    • Verifica con l'operatore dell'infrastruttura (IO) che la risorsa personalizzata BucketLocationConfig sia stata creata per le zone accoppiate.
    • Genera il file kubeconfig per il server API globale.

Imposta la policy del ciclo di vita degli oggetti sul bucket

Puoi utilizzare la policy del ciclo di vita degli oggetti per gestire automaticamente gli oggetti nei tuoi bucket. In questo modo, puoi archiviare i dati in modo più efficiente per tutta la loro durata. Una configurazione del ciclo di vita è un elenco di regole per la scadenza di un gruppo di oggetti in base a determinati criteri di corrispondenza.

Puoi creare un bucket con o senza policy del ciclo di vita degli oggetti. Puoi applicare nuove policy del ciclo di vita, aggiornare quelle esistenti o rimuoverle dopo la creazione del bucket.

Per i bucket senza controllo delle versioni, la scadenza comporta la rimozione definitiva dell'oggetto in modo asincrono.

Per i bucket con controllo delle versioni, se la versione corrente dell'oggetto non è un indicatore di eliminazione, la scadenza rende non corrente la versione corrente e aggiunge un indicatore di eliminazione alla versione corrente.

Per impostare e modificare la policy del ciclo di vita degli oggetti, aggiorna il campo Bucket.spec.bucketPolicy.lifecyclePolicy.

Interfaccia a riga di comando

Di seguito sono riportati alcuni esempi di risorse bucket con diverse policy del ciclo di vita degli oggetti configurate:

apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with lifecycle rule to expire all objects after 365 days"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      - expiration:
          days: 365
        id: expire-all-after-365-days
        status: Enabled
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with lifecycle rule to expire objects in the logs/ directory after 30 days"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      - expiration:
          days: 30
        id: expire-logs-dir-after-30-days
        status: Enabled
        filter:
          prefixFilter: "logs/"
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with lifecycle rule to expire objects having specific tag after 30 days"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      - expiration:
          days: 30
        id: expire-tagged-objects-after-30-days
        status: Enabled
        filter:
          tagFilters:
          - key: environment
            value: dev
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with lifecycle rule to expire noncurrent versions after 90 days"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      - noncurrentExpiration:
          noncurrentDays: 90
        id: expire-noncurrent-after-90-days
        status: Enabled
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with lifecycle rule to expire objects on a specific date"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      - expiration:
          date: "2027-01-01T00:00:00Z"
        id: expire-on-specific-date
        status: Enabled
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with multiple lifecycle rules and advanced filters"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      # Rule 1: Expire objects in 'tmp/' directory AND tagged with 'status=ready' after 7 days
      - expiration:
          days: 7
        id: expire-ready-tmp-objects
        status: Enabled
        filter:
          prefixFilter: "tmp/"
          tagFilters:
          - key: status
            value: ready
      # Rule 2: Expire all objects in 'logs/' directory after 90 days
      - expiration:
          days: 90
        id: expire-logs-after-90-days
        status: Enabled
        filter:
          prefixFilter: "logs/"

Eventuali aggiornamenti alla policy del ciclo di vita si applicano agli oggetti esistenti e a quelli caricati dopo l'aggiornamento.

Quando nel bucket è configurato anche il blocco degli oggetti, questi sono protetti dalla scadenza prima del termine dei giorni di conservazione.