Créer des buckets WORM de stockage pour les projets

Cette page vous explique comment créer des buckets WORM de stockage isolé Google Distributed Cloud (GDC).

Avant de commencer

Un espace de noms de projet gère les ressources de bucket sur le serveur de l'API Management. Vous devez disposer d'un projet pour travailler avec 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.

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 des audits est un exemple de cas d'utilisation pour un bucket WORM.

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

  1. Définissez une période de conservation lorsque vous créez le 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. Attribuez 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. Attribuez 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