Questa pagina spiega come creare bucket di archiviazione Write Once Read Many (WORM) in ambienti Google Distributed Cloud (GDC) con air gap. Questo copre i prerequisiti e i passaggi per creare un bucket WORM con un periodo di conservazione definito e per concedere le autorizzazioni di accesso utilizzando le associazioni di ruoli. Queste informazioni ti consentono di applicare pratiche rigorose di conservazione e immutabilità dei dati, fornendo un'archiviazione dei dati solida e conforme per i record e i casi d'uso come l'audit logging.
Questa pagina è rivolta a utenti come gli amministratori IT del gruppo di operatori dell'infrastruttura o gli sviluppatori del gruppo di operatori delle applicazioni che gestiscono le impostazioni di conservazione dei dati e di conformità per i bucket di archiviazione negli ambienti GDC con air gap. Per saperne di più, consulta la documentazione relativa ai segmenti di pubblico per GDC con air gap.
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:
- Accedi e genera il file kubeconfig per il server API di gestione a livello di zona, se non ne hai uno.
- Per i bucket a due zone, segui questi passaggi:
- Verifica con l'operatore dell'infrastruttura (IO) che la risorsa personalizzata
BucketLocationConfigsia stata creata per le zone accoppiate. - Genera il file kubeconfig per il server API globale.
- Verifica con l'operatore dell'infrastruttura (IO) che la risorsa personalizzata
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:
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: 365Concedi il ruolo
project-bucket-object-viewera 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.ioConcedi il ruolo
project-bucket-object-adminagli 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