Crea bucket WORM di archiviazione per i progetti

Questa pagina mostra come creare bucket WORM di archiviazione con air gap di Google Distributed Cloud (GDC).

Prima di iniziare

I bucket di archiviazione sono risorse con ambito limitato a un progetto specifico. Il progetto funge da container, raggruppando i bucket e consentendone la gestione tramite il server dell'API di gestione. Prima di poter eseguire le operazioni in questa pagina, devi creare un nuovo progetto o selezionarne uno esistente per 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:

  • Bucket Project Admin (project-bucket-admin): crea, aggiorna ed elimina i bucket di archiviazione.
  • Bucket Object Project Viewer (project-bucket-object-viewer): visualizza e controlla i dettagli dei bucket e degli oggetti di archiviazione.

Per saperne di più, consulta Concedi l'accesso al bucket.

prepara l'ambiente

Per eseguire comandi sul server API di gestione o sul server API globale, segui questi passaggi:

  1. Accedi e genera il file kubeconfig per il server API di gestione a livello di zona, se non ne hai uno.
  2. Per i bucket a due zone, segui questi passaggi:
    • 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.

Crea un bucket WORM

Un bucket WORM garantisce che nessun altro sovrascriva gli oggetti e li conserva per un periodo di tempo minimo. L'audit logging è un esempio di caso d'uso per un bucket WORM.

Per creare un bucket WORM, segui questi passaggi:

  1. Imposta un periodo di conservazione durante la creazione del bucket. Il periodo di conservazione definisce il numero di giorni in cui ogni versione dell'oggetto è bloccata per impedire l'eliminazione o la modifica. Questo periodo di conservazione è distinto 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 il tuo Infrastructure Operator (IO) se devi superare i limiti delle 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