Crea bucket WORM di archiviazione per i progetti

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

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 maggiori informazioni, vedi Concedere l'accesso ai bucket.

Prepara l'ambiente

Per eseguire 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.

Crea un bucket WORM

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

Per creare un bucket WORM:

  1. Imposta un periodo di conservazione quando crei il bucket. Il periodo di conservazione definisce per quanti giorni ogni versione dell'oggetto è bloccata per 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