Cette page explique comment créer des buckets de stockage isolés de Google Distributed Cloud (GDC).
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 de l'API Management. Pour 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 votre administrateur de projet IAM pour demander les rôles suivants dans l'espace de noms de votre projet :
- Administrateur de bucket de projet (
project-bucket-admin) : créez, mettez à jour et supprimez des buckets de stockage. - Lecteur d'objets de bucket de projet (
project-bucket-object-viewer) : affichez et vérifiez 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 global, procédez comme suit :
- Connectez-vous et générez le fichier kubeconfig pour le serveur de l'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 appairées. - Générez le fichier kubeconfig pour le serveur de l'API global.
- Vérifiez auprès de votre opérateur d'infrastructure (IO) que la ressource personnalisée
Consignes de dénomination des buckets de stockage
Les noms de buckets doivent respecter les conventions de dénomination suivantes :
- Être unique au sein du projet. Le serveur de l'API de gestion ajoute un préfixe unique au nom de domaine 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.
- Éviter d'inclure des informations permettant d'identifier l'utilisateur.
- Être conforme au DNS.
- Comporter au moins 1 caractère et au maximum 55.
- 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 (IO), 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 birégionaux.
Console
- Dans le menu de navigation, cliquez sur Object Storage.
- Dans le sélecteur de projet, sélectionnez le projet dans lequel vous souhaitez créer le bucket.
- Cliquez sur 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 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 IO si vous devez dépasser les limites de la règle de conservation.
- Cliquez sur 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 zonal, appliquez une spécification de bucket à l'espace de noms de votre projet :
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG 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 birégional pour le serveur de l'API global :
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 birégional à l'aide du stockage Nearline, définissez storageClass: Nearline.
Notez que seul le chiffrement V2 est compatible avec les buckets birégionaux et que toutes les opérations de création, de mise à jour ou de suppression d'une ressource de bucket birégional doivent être effectuées sur le serveur de l'API global.
Pour créer un bucket birégional, appliquez la spécification au serveur de l'API global :
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f bucket.yaml
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 birégional 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
Après avoir créé le bucket, exécutez la commande suivante pour confirmer et vérifier les détails du bucket :
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG describe buckets BUCKET_NAME -n PROJECT_NAMESPACE
La section Status (État) comporte deux champs importants : Encryption (Chiffrement) pour les détails du chiffrement et Fully Qualified Name (Nom de domaine 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 actifs. Les AEADKeys par défaut actifs sont sélectionnés de manière aléatoire pour chiffrer les objets importés dans le bucket lorsqu'aucun AEADKey spécifique n'est spécifié.
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éés :
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get aeadkeys -n PROJECT_NAMESPACE -l cmek.security.gdc.goog/resource-name=FULLY_QUALIFIED_BUCKET_NAME