Cette page vous explique comment créer des buckets de stockage WORM (Write Once Read Many) dans des environnements avec air gap Google Distributed Cloud (GDC). Vous y trouverez les conditions préalables 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ôles. Ces informations vous permettent d'appliquer des pratiques strictes de conservation et d'immuabilité des données, ce qui vous permet de stocker des données de manière robuste et conforme pour les enregistrements et les cas d'utilisation tels que la journalisation d'audit.
Cette page s'adresse aux administrateurs informatiques du groupe d'opérateurs d'infrastructure ou aux développeurs du groupe d'opérateurs d'applications qui gèrent les paramètres de conservation des données et de conformité pour les buckets de stockage dans les environnements GDC sous air gap. Pour en savoir plus, consultez la documentation sur les audiences pour GDC sous air gap.
Avant de commencer
Les buckets de stockage sont des ressources limitées à un projet spécifique. Le projet agit comme un conteneur, regroupant vos buckets et permettant leur gestion via le serveur d'API Management. Avant de pouvoir effectuer les opérations décrites sur cette page, vous devez créer un projet ou en sélectionner un existant pour lequel vous disposez des autorisations suffisantes.
Rôles IAM requis
Contactez l'administrateur de projet IAM pour demander les rôles suivants dans l'espace de noms de votre projet :
- Administrateur de projet de bucket (
project-bucket-admin) : créer, mettre à jour et supprimer des buckets de stockage. - Lecteur de projet d'objets de bucket (
project-bucket-object-viewer) : permet d'afficher et de vérifier les détails des buckets et des objets de stockage.
Pour en savoir plus, consultez Accorder l'accès à un bucket.
Préparer votre environnement
Pour exécuter des commandes sur le serveur de l'API de gestion ou le serveur de l'API globale, procédez comme suit :
- Connectez-vous et générez le fichier kubeconfig pour le serveur d'API de gestion zonale si vous n'en avez pas.
- Pour les buckets birégionaux, procédez comme suit :
- Vérifiez auprès de votre opérateur d'infrastructure (IO) que la ressource personnalisée
BucketLocationConfiga été créée pour vos zones associées. - Générez le fichier kubeconfig pour le serveur d'API global.
- Vérifiez auprès de votre opérateur d'infrastructure (IO) que la ressource personnalisée
Créer un bucket WORM
Un bucket WORM garantit qu'aucun autre élément n'écrase les objets et les conserve 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 :
Définissez une durée de conservation lors de la création du bucket. La durée de conservation définit le nombre de jours pendant lesquels chaque version d'objet est verrouillée contre la suppression ou la modification. Cette durée de conservation est distincte de la durée de stockage minimale de la classe de stockage (par exemple, la durée minimale de 30 jours pour la classe de stockage
Standard). Par exemple, le bucket suivant définit une durée de conservation de 365 jours. Contactez votre opérateur d'infrastructure (IO) si vous devez dépasser les limites de la règle de conservation.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: 365Attribuez 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.ioAttribuez le rôle
project-bucket-object-adminaux 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-admin apiGroup: rbac.authorization.k8s.io subjects: - kind: ServiceAccount namespace: foo-service name: foo-service-account