Créer des buckets de stockage WORM

Cette page explique comment créer des buckets de stockage WORM (Write Once Read Many) dans des environnements d'appliance isolée Google Distributed Cloud (GDC). Elle couvre les prérequis et les étapes à suivre pour créer un bucket WORM avec une période de conservation définie et pour accorder des autorisations d'accès à l'aide de liaisons de rôle. Ces informations vous permettent d'appliquer des pratiques strictes de conservation et d'immuabilité des données, ce qui vous offre un stockage de données robuste et conforme pour les enregistrements et les cas d'utilisation tels que la journalisation d'audit.

Cette page s'adresse à des audiences telles que les administrateurs informatiques du groupe d'opérateurs d'infrastructure ou les développeurs du groupe d'opérateurs d'applications qui gèrent les paramètres de conservation et de conformité des données pour les buckets de stockage dans les environnements GDC sous air gap.

Avant de commencer

Un espace de noms de projet gère les ressources de bucket dans le serveur d'API de gestion. Vous devez disposer d'un projet pour utiliser des buckets et des objets.

Vous devez également disposer des autorisations de bucket appropriées pour effectuer l'opération suivante. Consultez Accorder l'accès à un bucket.

Pour exécuter des commandes sur le serveur d'API de gestion, connectez-vous et générez le fichier kubeconfig pour le serveur d'API de gestion si vous n'en avez pas.

Créer un bucket WORM

Un bucket WORM garantit que rien d'autre n'écrase les objets et qu'ils sont conservés pendant une période minimale. La journalisation d'audit est un exemple de cas d'utilisation d'un bucket WORM.

Pour créer un bucket WORM, procédez comme suit :

  1. Définissez une période de conservation lors de la création du bucket. Par exemple, le bucket suivant a une période de conservation de 365 jours.

    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. Accordez le rôle project-bucket-object-viewer à tous les utilisateurs qui ont besoin d'un accès en lecture seule :

    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. Accordez le rôle project-bucket-object-admin aux utilisateurs qui doivent écrire du contenu dans le bucket :

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      namespace: foo-service
      name: object-write-access
    roleRef:
      kind: Role
      name: project-bucket-object-viewer
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: ServiceAccount
      namespace: foo-service
      name: foo-service-account