Crea bucket WORM di archiviazione

Questa pagina ti guida nella creazione di bucket di archiviazione Write Once Read Many (WORM) negli ambienti air-gap di Google Distributed Cloud (GDC). Vengono illustrati i prerequisiti e i passaggi per creare un bucket WORM con un periodo di conservazione definito e per concedere le autorizzazioni di accesso utilizzando i binding dei ruoli. Queste informazioni ti consentono di applicare pratiche di conservazione dei dati e immutabilità rigorose, fornendo un'archiviazione dei dati solida e conforme per record e casi d'uso come la registrazione degli audit.

Questa pagina è rivolta a destinatari come gli amministratori IT del gruppo di operatori dell'infrastruttura o gli sviluppatori del gruppo di operatori dell'applicazione che gestiscono le impostazioni di conservazione e conformità dei dati per i bucket di archiviazione negli ambienti GDC con air gap. Per ulteriori informazioni, consulta la sezione Destinatari della documentazione di GDC con air gap.

Prima di iniziare

I bucket di archiviazione sono risorse con ambito ristretto a un progetto specifico. Il progetto funge da container, raggruppando i bucket e consentendone la gestione tramite il server API di gestione. Prima di poter eseguire le operazioni descritte in questa pagina, devi creare un nuovo progetto o selezionarne uno esistente in cui disponi di autorizzazioni sufficienti.

Ruoli IAM richiesti

Contatta l'amministratore del progetto IAM per richiedere i seguenti ruoli nello spazio dei nomi del progetto:

  • Amministratore bucket progetto (project-bucket-admin): crea, aggiorna ed elimina i bucket di archiviazione.
  • Visualizzatore oggetti bucket progetto (project-bucket-object-viewer): visualizza e controlla i dettagli dei bucket e degli oggetti di archiviazione.

Per ulteriori informazioni, consulta Concedere l'accesso ai bucket.

prepara l'ambiente

Per eseguire i comandi sul server API di gestione o sul server API globale:

  1. Accedi e genera il file kubeconfig per il server API di gestione zonale, se non ne hai uno.
  2. Per i bucket a doppia zona:
    • Verifica con l'operatore dell'infrastruttura (IO) che la risorsa personalizzata BucketLocationConfig sia stata creata per le zone accoppiate.
    • Genera il file kubeconfig per il server API globale.

Creare un bucket WORM

Un bucket WORM garantisce che nient'altro sovrascriva gli oggetti e li conserva per un periodo di tempo minimo. La registrazione degli audit è un esempio di caso d'uso per un bucket WORM.

Per creare un bucket WORM:

  1. Imposta un periodo di conservazione durante la creazione del bucket. Il periodo di conservazione definisce per quanti giorni ogni versione dell'oggetto è bloccata contro l'eliminazione o la modifica. Questo periodo di conservazione è diverso dalla durata minima di archiviazione della classe di archiviazione (ad esempio, il minimo di 30 giorni per la classe di archiviazione Standard). Ad esempio, il seguente bucket imposta un periodo di conservazione di 365 giorni. Contatta l'operatore dell'infrastruttura (IO) se devi superare i limiti della policy di conservazione.

    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. Concedi il ruolo project-bucket-object-viewer a tutti gli utenti che hanno bisogno dell'accesso di sola lettura:

    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. Concedi il ruolo project-bucket-object-admin agli utenti che devono scrivere contenuti nel 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