Nesta página, mostramos como criar buckets de armazenamento Write Once Read Many (WORM) em ambientes com isolamento físico 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 papéis. Essas informações permitem que você aplique práticas rigorosas de retenção de dados e imutabilidade, fornecendo repositório 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 de dados e compliance para buckets de armazenamento em ambientes GDC com isolamento físico. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.
Antes de começar
Os buckets de armazenamento são recursos com escopo definido para um projeto específico. O projeto funciona como um contêiner, agrupando seus buckets e permitindo o gerenciamento deles pelo servidor de API Management. Antes de realizar as operações nesta página, crie um novo projeto ou selecione um em que você tenha permissões suficientes.
Papéis necessários do IAM
Entre em contato com o administrador do projeto do IAM para solicitar os seguintes papéis no namespace do projeto:
- Administrador de projetos de bucket (
project-bucket-admin): criar, atualizar e excluir buckets de armazenamento. - Leitor de projetos de objetos de bucket (
project-bucket-object-viewer): visualizar e verificar detalhes de buckets e objetos de armazenamento.
Para mais informações, consulte Conceder acesso ao bucket.
Preparar o ambiente
Para executar comandos no servidor da API de gerenciamento ou no servidor da API global, faça o seguinte:
- Faça login e gere o arquivo kubeconfig para o servidor de API de gerenciamento zonal, se você não tiver um.
- Para buckets birregionais, faça o seguinte:
- Verifique com o operador de infraestrutura (IO) se o recurso personalizado
BucketLocationConfigfoi criado para as zonas pareadas. - Gere o arquivo kubeconfig para o servidor de API global.
- Verifique com o operador de infraestrutura (IO) se o recurso personalizado
Criar um bucket WORM
Um bucket WORM garante que nada mais substitua os objetos e os retém por um período mínimo. A geração de registros de auditoria é um exemplo de caso de uso de um bucket WORM.
Siga estas etapas para criar um bucket WORM:
Defina um período de armazenamento ao criar o bucket. O período de armazenamento define por quantos dias cada versão do objeto fica bloqueada contra exclusão ou modificação. Esse período de armazenamento é diferente da duração mínima de armazenamento da classe de armazenamento (como o mínimo de 30 dias para a classe de armazenamento
Standard). Por exemplo, o bucket a seguir define um período de armazenamento de 365 dias. Entre em contato com o operador de infraestrutura (IO) se precisar exceder os limites da política de retenção.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: 365Conceda o papel
project-bucket-object-viewera 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.ioConceda o papel
project-bucket-object-adminaos 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-admin apiGroup: rbac.authorization.k8s.io subjects: - kind: ServiceAccount namespace: foo-service name: foo-service-account