Crea buckets de almacenamiento WORM para proyectos

En esta página, se muestra cómo crear buckets WORM de almacenamiento aislado de Google Distributed Cloud (GDC).

Antes de comenzar

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

Roles de IAM obligatorios

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

  • Administrador de buckets de proyecto (project-bucket-admin): Crea, actualiza y borra buckets de almacenamiento.
  • Visualizador de objetos de buckets de proyecto (project-bucket-object-viewer): Visualiza y verifica los detalles de los buckets y objetos de almacenamiento.

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

Prepara el entorno

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

  1. Accede y genera el archivo kubeconfig para el servidor de la API de Management zonal si no tienes uno.
  2. Para los buckets birregionales, 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.

Crea un bucket WORM

Un bucket WORM garantiza que nada más reemplace los objetos y los retiene durante un período mínimo. El registro de auditoría es un ejemplo de caso de uso para un bucket WORM.

Sigue estos pasos para crear un bucket WORM:

  1. Establece un período de retención cuando crees el bucket. El período de retención define cuántos días se bloquea cada versión del objeto contra la eliminación o modificación. Este período de retención es distinto de la duración mínima de almacenamiento de la clase de almacenamiento (como el mínimo de 30 días para la clase de almacenamiento Standard). Por ejemplo, el siguiente bucket establece un período de retención de 365 días. Comunícate con tu operador de infraestructura (IO) si necesitas superar los límites de la política de retención.

    apiVersion: object.gdc.goog/v1
    kind: Bucket
    metadata:
      name: foo-logging-bucket
      namespace: foo-service
    spec:
      description: "Audit logs for foo"
      storageClass: Standard
      bucketPolicy:
        lockingPolicy:
          defaultObjectRetentionDays: 365
    
  2. Otorga el rol project-bucket-object-viewer a todos los usuarios que necesiten acceso de solo lectura:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      namespace: foo-service
      name: object-readonly-access
    roleRef:
      kind: Role
      name: project-bucket-object-viewer
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: ServiceAccount
      namespace: foo-service
      name: foo-log-processor
    - kind: User
      name: bob@example.com
      apiGroup: rbac.authorization.k8s.io
    
  3. Otorga el rol project-bucket-object-admin a los usuarios que necesiten escribir contenido en el bucket:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      namespace: foo-service
      name: object-write-access
    roleRef:
      kind: Role
      name: project-bucket-object-admin
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: ServiceAccount
      namespace: foo-service
      name: foo-service-account