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

Questa pagina mostra come impostare i criteri del ciclo di vita degli oggetti per i bucket di archiviazione air-gapped di Google Distributed Cloud (GDC).

Prima di iniziare

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

Ruoli IAM richiesti

Contatta l'amministratore del 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 maggiori informazioni, vedi Concedere l'accesso ai bucket.

Prepara l'ambiente

Per eseguire comandi sul server API di gestione o sul server API globale:

  1. Accedi e genera il file kubeconfig per il server API di gestione zonale, se non ne hai uno.
  2. Per i bucket a doppia zona:
    • 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 i criteri del ciclo di vita degli oggetti sul bucket

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

Puoi creare un bucket con o senza criteri del ciclo di vita degli oggetti. Inoltre, puoi applicare nuovi criteri del ciclo di vita, aggiornare quelli esistenti o rimuoverli dopo la creazione del bucket.

Per i bucket senza controllo delle versioni, la scadenza comporta la rimozione permanente asincrona dell'oggetto.

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

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

CLI

Di seguito sono riportati alcuni esempi di risorse bucket con criteri del ciclo di vita degli oggetti diversi configurati:

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/"

Tutti gli aggiornamenti ai criteri del ciclo di vita si applicano agli oggetti esistenti e agli oggetti caricati dopo l'aggiornamento.

Se nel bucket è configurato anche il blocco degli oggetti, questi vengono protetti dalla scadenza prima della fine dei giorni di conservazione.