Cette page explique comment créer des buckets de stockage isolés (air-gapped) Google Distributed Cloud (GDC).
Avant de commencer
Un espace de noms de projet gère les ressources de bucket dans le serveur de l'API Management. 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.
Consignes de dénomination des buckets de stockage
Les noms de bucket doivent respecter les conventions de dénomination suivantes :
- Être uniques dans le projet. Le serveur de l'API de gestion ajoute un préfixe unique au nom complet du bucket, ce qui évite les conflits au sein de l'organisation. Dans le cas peu probable d'un conflit entre un préfixe et un nom de bucket entre plusieurs organisations, la création du bucket échoue et une erreur "bucket name in use" (nom de bucket déjà utilisé) s'affiche.
- Ne pas inclure d'informations permettant d'identifier l'utilisateur.
- Être conformes au DNS.
- Comporter entre 1 et 55 caractères.
- Commencer par une lettre et n'utiliser que des lettres, des chiffres et des traits d'union.
Créer un bucket
Par défaut, les buckets utilisent la classe de stockage Standard. Si le stockage Nearline a été activé par votre opérateur d'infrastructure, vous pouvez également sélectionner la classe de stockage Nearline pour les données moins fréquemment consultées. Le stockage Nearline est compatible avec les buckets à zone unique et à double zone.
Console
- Dans le menu de navigation, cliquez sur Object Storage (Stockage d'objets).
- Dans le sélecteur de projet, sélectionnez le projet dans lequel vous souhaitez créer le bucket.
- Cliquez sur Create Bucket (Créer un bucket).
- Dans le flux de création de bucket, attribuez un nom unique à tous les buckets du projet.
- Saisissez une description.
- Sous Storage class (Classe de stockage), sélectionnez Standard ou Nearline. L'option Nearline n'est visible que si le stockage Nearline est activé.
- Facultatif : Cliquez sur le bouton bascule toggle_off pour définir une règle de conservation et saisissez le nombre de jours de votre choix. Contactez votre OI si vous devez dépasser les limites de la règle de conservation.
- Cliquez sur Create (Créer). Un message de confirmation s'affiche et vous êtes redirigé vers la page Buckets.
Pour vérifier que vous avez bien créé un bucket, actualisez la page Buckets après quelques minutes et vérifiez que l'état du bucket passe de Not ready à Ready.
API
Pour créer un bucket, appliquez une spécification de bucket à l'espace de noms de votre projet :
kubectl apply -f bucket.yaml
Voici un exemple de spécification de bucket utilisant la classe de stockage 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
Voici un exemple de spécification de bucket utilisant la classe de stockage 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
Voici un exemple de spécification de bucket avec la version de chiffrement 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
Pour en savoir plus, consultez la documentation de référence de l'API Bucket.
Voici un exemple de spécification de bucket à double zone dans l'API globale d'administrateur d'organisation :
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
Pour créer un bucket à double zone à l'aide du stockage Nearline, définissez storageClass: Nearline.
Notez que seul le chiffrement V2 est compatible avec les buckets à double zone et que toutes les opérations de création, de mise à jour ou de suppression d'une ressource de bucket à double zone doivent être effectuées sur le serveur de l'API globale.
gdcloud
Pour créer un bucket à zone unique avec gdcloud à l'aide de la classe de stockage Nearline :
gdcloud storage buckets create BUCKET_NAME \
--location=ZONE_NAME \
--location-type=SingleZone \
--storage-class=Nearline
Pour créer un bucket à double zone avec gdcloud à l'aide de l'emplacement global :
gdcloud storage buckets create BUCKET_NAME \
--location=ZONE_1,ZONE_2 \
--location-type=AsyncDualZone \
--storage-class=Nearline
Si --storage-class est omis, Standard est utilisé par défaut.
Pour en savoir plus, consultez gdcloud storage buckets create.
Vérifier la création du bucket et des ressources associées
Une fois le bucket créé, vous pouvez exécuter la commande suivante pour confirmer et vérifier les détails du bucket :
kubectl describe buckets BUCKET_NAME -n PROJECT_NAMESPACE
La section Status (État) comporte deux champs importants : Encryption (Chiffrement) (pour les détails de chiffrement) et Fully Qualified Name (Nom complet) (qui contient le FULLY_QUALIFIED_BUCKET_NAME).
Chiffrement v1
Les informations concernent l'AEADKey nommé obj-FULLY_QUALIFIED_BUCKET_NAME, qui sert de référence à la clé de chiffrement utilisée pour chiffrer les objets stockés dans le bucket. Voici un exemple :
Status:
Encryption:
Key Ref:
Kind: AEADKey
Name: obj-FULLY_QUALIFIED_BUCKET_NAME
Namespace: PROJECT_NAMESPACE
Type: CMEK
Chiffrement v2
Les informations concernent le secret nommé kek-ref-FULLY_QUALIFIED_BUCKET_NAME, qui sert de référence pour les AEADKeys par défaut actives. Les AEADKeys par défaut actives sont sélectionnées de manière aléatoire pour chiffrer les objets importés dans le bucket lorsqu'aucune AEADKey spécifique n'est spécifiée.
Voici un exemple :
Status:
Encryption:
Key Ref:
Kind: Secret
Name: kek-ref-FULLY_QUALIFIED_BUCKET_NAME
Namespace: PROJECT_NAMESPACE
Type: CMEK
Vous pouvez également exécuter la commande suivante pour vérifier que les AEADKeys nécessaires sont créées :
kubectl get aeadkeys -n PROJECT_NAMESPACE -l cmek.security.gdc.goog/resource-name=FULLY_QUALIFIED_BUCKET_NAME