Establece la política de ciclo de vida de objetos para los buckets de almacenamiento

En esta página, se muestra cómo establecer la política del ciclo de vida de los objetos para los buckets de almacenamiento aislados de Google Distributed Cloud (GDC).

Antes de comenzar

Los buckets de almacenamiento son recursos que se limitan a un proyecto específico. El proyecto actúa como un contenedor, agrupa tus buckets y habilita su administración a través del servidor de la API de Management. Antes de realizar las operaciones de esta página, debes crear un proyecto nuevo o seleccionar uno existente en el que tengas los permisos suficientes.

Roles de IAM obligatorios

Comunícate con el administrador de IAM de tu proyecto para solicitar los siguientes roles en el espacio de nombres del proyecto:

  • Administrador de proyectos de buckets (project-bucket-admin): Crea, actualiza y borra buckets de almacenamiento.
  • Visualizador de proyectos de objetos de bucket (project-bucket-object-viewer): Permite ver y verificar los detalles de los buckets y objetos de almacenamiento.

Para obtener más información, consulta Otorga acceso al bucket.

Prepara el entorno

Para ejecutar comandos en el servidor de la API de administración o en el servidor de la API global, haz lo siguiente:

  1. Accede y genera el archivo kubeconfig para el servidor de la API de administración zonal si no tienes uno.
  2. En el caso de los buckets de zona doble, haz lo siguiente:
    • Verifica con tu operador de infraestructura (IO) que se haya creado el recurso personalizado BucketLocationConfig para tus zonas vinculadas.
    • Genera el archivo kubeconfig para el servidor de la API global.

Establece la política del ciclo de vida de los objetos en el bucket

Puedes usar la política del ciclo de vida de los objetos para administrarlos de forma automática en tus buckets. Esto te ayuda a almacenar datos de manera más eficiente durante su vida útil. Una configuración del ciclo de vida es una lista de reglas para que venza un grupo de objetos según ciertos criterios de coincidencia.

Puedes crear un bucket con o sin una política de ciclo de vida de los objetos. Puedes aplicar una política de ciclo de vida nueva, actualizar una existente o quitarla después de crear el bucket.

En el caso de los buckets sin control de versiones, el vencimiento significa quitar el objeto de forma permanente y asíncrona.

En el caso de los buckets con control de versiones, si la versión actual del objeto no es un marcador de eliminación, el vencimiento hace que la versión actual no sea actual y, luego, agrega un marcador de eliminación a la versión actual.

Para establecer y modificar la política del ciclo de vida de los objetos, actualiza el campo Bucket.spec.bucketPolicy.lifecyclePolicy.

CLI

Los siguientes son algunos ejemplos de recursos de bucket con diferentes políticas de ciclo de vida de objetos configuradas:

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

Cualquier actualización de la política de ciclo de vida se aplica a los objetos existentes y a los que se suban después de la actualización.

Cuando el bucket también tiene configurado el bloqueo de objetos, estos se protegen del vencimiento antes de que finalicen los días de retención.