Criar buckets WORM de armazenamento

Esta página orienta você sobre 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). Ela aborda 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 papéis. Essas informações permitem que você aplique práticas de retenção de dados e imutabilidade rigorosas, fornecendo armazenamento de dados robusto e em conformidade para registros e casos de uso, como 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 as configurações de retenção e conformidade de dados para buckets de armazenamento em ambientes GDC com isolamento físico.

Antes de começar

Um namespace do projeto gerencia recursos de bucket no servidor da API de gerenciamento. 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 operação a seguir. Consulte Conceder acesso ao bucket.

Para executar comandos no servidor da API de gerenciamento, faça login e gere o arquivo kubeconfig para o servidor da API de gerenciamento, se você não tiver um.

Criar um bucket WORM

Um bucket WORM garante que nada mais substitua objetos e os retenha 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 o papel 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 o papel 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