Criar buckets WORM de armazenamento

Esta página mostra como criar buckets de armazenamento de gravação única e várias leituras (WORM, na sigla em inglês) em ambientes de appliance isolados do Google Distributed Cloud (GDC). Isso abrange os pré-requisitos e as etapas para criar um bucket WORM com um período de armazenamento definido e para conceder permissões de acesso usando vinculações de função. Essas informações permitem aplicar práticas rígidas de retenção e imutabilidade de dados, oferecendo armazenamento de dados robusto e em conformidade para registros e casos de uso, como o registro de auditoria.

Esta página é destinada a públicos-alvo como administradores de TI no grupo de operadores de infraestrutura ou desenvolvedores no grupo de operadores de aplicativos que gerenciam configurações de retenção e compliance de dados para buckets de armazenamento em ambientes isolados do GDC.

Antes de começar

Um namespace de projeto gerencia recursos de bucket no servidor da API Management. Você precisa ter um projeto para trabalhar com buckets e objetos.

Você também precisa ter as permissões de bucket adequadas para realizar a seguinte operação. Consulte Conceder acesso ao bucket.

Criar um bucket WORM

Um bucket WORM garante que nada mais substitua os objetos e os retém por um período mínimo. O registro de auditoria é um exemplo de caso de uso para um bucket WORM.

Siga estas etapas para criar um bucket WORM:

  1. Defina um período de armazenamento ao criar o bucket. Por exemplo, o bucket de exemplo a seguir tem um período de armazenamento de 365 dias.

    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. Conceda a função project-bucket-object-viewer a todos os usuários que precisam de acesso somente leitura:

    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. Conceda a função project-bucket-object-admin aos usuários que precisam gravar conteúdo no bucket:

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