Crea bucket di archiviazione

Questa pagina spiega come creare un bucket di archiviazione per i tuoi progetti Google Distributed Cloud (GDC) con air gap. Illustra i prerequisiti, i passaggi di creazione e verifica e le linee guida per la denominazione. In questo modo, puoi creare uno spazio di archiviazione degli oggetti conforme e ben configurato che soddisfi le esigenze dei tuoi deployment isolati.

Questa pagina è rivolta a segmenti di pubblico come gli amministratori IT del gruppo di operatori dell'infrastruttura o gli sviluppatori del gruppo di operatori delle applicazioni che vogliono eseguire il provisioning e gestire i bucket di archiviazione di oggetti per i progetti 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:

  • Project Bucket Admin (project-bucket-admin): crea, aggiorna ed elimina i bucket di archiviazione.
  • Project Bucket Object 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.

Linee guida per la denominazione dei bucket di archiviazione

I nomi dei bucket devono rispettare le seguenti convenzioni di denominazione:

  • Essere univoco all'interno del progetto. Il server dell'API di gestione antepone un prefisso univoco al nome completo del bucket, garantendo che non si verifichino conflitti all'interno dell'organizzazione. Nell'improbabile caso di un conflitto tra il prefisso e il nome del bucket tra organizzazioni, la creazione del bucket non va a buon fine e viene visualizzato l'errore "Nome del bucket in uso".
  • Evita di includere informazioni che consentono l'identificazione personale (PII).
  • Essere conformi al DNS.
  • Contenere almeno 1 carattere e non più di 55 caratteri.
  • Inizia con una lettera e utilizza solo lettere, numeri e trattini.

Crea un bucket

Per impostazione predefinita, i bucket utilizzano la classe di archiviazione Standard. Se l'operatore di infrastruttura (IO) ha attivato Nearline Storage, puoi anche selezionare la classe di archiviazione Nearline per i dati a cui si accede meno di frequente. Nearline Storage è supportato sia per i bucket a zona singola sia per quelli a due zone.

Console

  1. Nel menu di navigazione, fai clic su Archiviazione di oggetti.
  2. Nel selettore di progetti, seleziona il progetto in cui vuoi creare il bucket.
  3. Fai clic su Crea bucket.
  4. Nel flusso di creazione del bucket, assegna un nome univoco per tutti i bucket all'interno del progetto.
  5. Inserisci una descrizione.
  6. In Classe di archiviazione, seleziona Standard o Nearline. L'opzione Nearline è visibile solo se è abilitata l'archiviazione Nearline.
  7. (Facoltativo) Fai clic sul pulsante di attivazione/disattivazione toggle_off per impostare una policy di conservazione e inserisci il numero di giorni che preferisci. Contatta il tuo IO se devi superare i limiti delle policy di conservazione.
  8. Fai clic su Crea. Viene visualizzato un messaggio di operazione riuscita e viene visualizzata nuovamente la pagina Bucket.

Per verificare di aver creato correttamente un nuovo bucket, aggiorna la pagina Bucket dopo qualche minuto e controlla che lo stato del bucket venga aggiornato da Not ready a Ready.

gdcloud

Per creare un bucket a zona singola con gdcloud utilizzando la classe di archiviazione Nearline:

gdcloud storage buckets create BUCKET_NAME \
    --location=ZONE_NAME \
    --location-type=SingleZone \
    --storage-class=Nearline

Per creare un bucket dual-zone con gdcloud utilizzando la località globale:

gdcloud storage buckets create BUCKET_NAME \
    --location=ZONE_1,ZONE_2 \
    --location-type=AsyncDualZone \
    --storage-class=Nearline

Se --storage-class viene omesso, per impostazione predefinita viene utilizzato Standard.

Per maggiori dettagli, consulta gdcloud storage buckets create.

API

Per creare un bucket a livello di zona, applica una specifica del bucket allo spazio dei nomi del progetto:

kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f bucket.yaml

Di seguito è riportato un esempio di specifica di un bucket che utilizza la classe di archiviazione Standard:

apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: DESCRIPTION
  storageClass: Standard
  bucketPolicy:
    lockingPolicy:
      defaultObjectRetentionDays: RETENTION_DAY_COUNT

Di seguito è riportato un esempio di specifica di un bucket che utilizza la classe di archiviazione Nearline:

apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: DESCRIPTION
  storageClass: Nearline
  bucketPolicy:
    lockingPolicy:
      defaultObjectRetentionDays: RETENTION_DAY_COUNT

Di seguito è riportato un esempio di specifica di un bucket con la versione di crittografia v1:

apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
  labels:
    object.gdc.goog/encryption-version: v1
spec:
  description: DESCRIPTION
  storageClass: Standard
  bucketPolicy:
    lockingPolicy:
      defaultObjectRetentionDays: RETENTION_DAY_COUNT

Per maggiori dettagli, consulta il Riferimento API Bucket.

Di seguito è riportato un esempio di specifica di un bucket a due zone per il server API globale:

apiVersion: object.global.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: PROJECT_NAME
spec:
  location: LOCATION_NAME
  description: Sample DZ Bucket
  storageClass: Standard

Per creare un bucket a doppia zona utilizzando Nearline Storage, imposta storageClass: Nearline.

Tieni presente che per i bucket a doppia zona è supportata solo la crittografia V2 e tutte le operazioni di creazione, aggiornamento o eliminazione di una risorsa bucket a doppia zona devono essere eseguite sul server API globale.

Per creare un bucket a due zone, applica la specifica al server API globale:

kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f bucket.yaml

Dopo aver creato il bucket, esegui questo comando per confermare e controllare i dettagli del bucket:

kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG describe buckets BUCKET_NAME -n PROJECT_NAMESPACE

La sezione Stato contiene due campi importanti: Crittografia (per i dettagli della crittografia) e Nome completo (che contiene FULLY_QUALIFIED_BUCKET_NAME).

Crittografia v1

Le informazioni riguardano la chiave AEAD denominata obj-FULLY_QUALIFIED_BUCKET_NAME, che funge da riferimento alla chiave di crittografia utilizzata per criptare gli oggetti archiviati nell'archivio di oggetti. Ecco un esempio:

Status:
  Encryption:
    Key Ref:
      Kind: AEADKey
      Name: obj-FULLY_QUALIFIED_BUCKET_NAME
      Namespace: PROJECT_NAMESPACE
    Type: CMEK

Crittografia v2

Le informazioni riguardano il secret denominato kek-ref-FULLY_QUALIFIED_BUCKET_NAME, che funge da riferimento per le chiavi AEADKeys predefinite attive. Le chiavi AEADKeys predefinite attive vengono selezionate in modo casuale per criptare gli oggetti caricati nel bucket quando non viene specificata una chiave AEADKey specifica.

Ecco un esempio:

Status:
  Encryption:
    Key Ref:
      Kind: Secret
      Name: kek-ref-FULLY_QUALIFIED_BUCKET_NAME
      Namespace: PROJECT_NAMESPACE
    Type: CMEK

Puoi anche eseguire il seguente comando per verificare che siano state create le chiavi AEADKeys necessarie:

kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get aeadkeys -n PROJECT_NAMESPACE -l  cmek.security.gdc.goog/resource-name=FULLY_QUALIFIED_BUCKET_NAME

Dopo aver creato un bucket, puoi gestirlo per conto degli operatori dell'applicazione (AO) creando un file delle policy quando concedi l'accesso al bucket e assegnando la policy a un bucket.