Rechiffrer les objets qui ne respectent pas les règles de bucket CMEK par défaut

Cette page explique comment utiliser le conseiller Storage Intelligence pour identifier et rechiffrer les objets qui ne respectent pas la règle de clé de chiffrement gérée par le client (CMEK) par défaut d'un bucket.

Lorsque vous définissez une clé Cloud KMS par défaut sur un bucket, Cloud Storage chiffre les nouveaux objets avec cette clé, sauf si votre requête d'importation spécifie une autre clé. Toutefois, Cloud Storage ne rechiffre pas automatiquement les objets existants que vous avez importés avant de définir la clé par défaut. Ces objets restent chiffrés avec leur méthode de chiffrement d'origine. Pour en savoir plus sur les méthodes de chiffrement disponibles, consultez Options de chiffrement des données.

Le conseiller Storage Intelligence affiche le résultat Objets ne respectant pas les règles CMEK par défaut du bucket lorsqu'un bucket avec une clé Cloud Key Management Service (Cloud KMS) par défaut contient des objets qui ne sont pas chiffrés avec une CMEK. Un résultat est une anomalie ou un écart de configuration de sécurité détecté à partir de vos métriques et des métadonnées d'objet qui nécessite votre attention. Pour en savoir plus sur le conseiller Storage Intelligence, consultez À propos du conseiller Storage Intelligence. Pour obtenir la liste complète des résultats, consultez le catalogue de référence des résultats.

Seuils qui déclenchent un résultat

Lorsque vous activez Storage Intelligence, Cloud Storage évalue automatiquement les métadonnées de chiffrement au niveau des buckets et des objets dans votre projet, dossier ou organisation. Le conseiller Storage Intelligence génère un résultat lorsqu'un bucket répond aux deux critères suivants :

Les premiers résultats de référence s'affichent dans les 48 heures suivant l'activation de Storage Intelligence et sont actualisés toutes les 24 heures. Pour réduire le volume d'alertes, le conseiller Storage Intelligence regroupe les cas de non-conformité au niveau des objets par bucket sur votre tableau de bord. Vous pouvez interroger les métadonnées de chiffrement au niveau de l'objet dans les ensembles de données Storage Insights.

Répondre à un résultat

Pour répondre au résultat, identifiez les objets concernés dans chaque bucket et rechiffrez-les avec la clé Cloud KMS par défaut du bucket :

  1. Affichez les détails du résultat pour identifier les buckets concernés et copiez le nom de ressource de la clé KMS par défaut de chaque bucket.

  2. Facultatif : Pour afficher la liste des objets du bucket qui ne sont pas chiffrés avec une CMEK, interrogez votre ensemble de données Storage Insights dans BigQuery. Si vous n'avez pas configuré d'ensemble de données associé, consultez Configurer des ensembles de données Storage Insights.

    SELECT
      bucket,
      name,
      encryptionType
    FROM
      `DATASET_NAME.object_attributes_latest_snapshot_view`
    WHERE
      bucket = 'BUCKET_NAME'
      AND encryptionType != 'CMEK'
      AND timeDeleted IS NULL
      AND softDeleteTime IS NULL;

    Remplacez les éléments suivants :

    • DATASET_NAME : nom de votre ensemble de données associé à Storage Insights dans BigQuery.
    • BUCKET_NAME : nom du bucket concerné.
  3. Utilisez le tableau suivant pour sélectionner la méthode de rechiffrement de vos objets actifs :

    Scénario Action recommandée Détails
    Les objets actifs concernés utilisent le chiffrement standard (GMEK) Rechiffrer des objets chiffrés avec une GMEK à grande échelle à l'aide d'opérations de stockage par lot Exportez les fichiers manifestes CSV des objets GMEK actifs concernés depuis BigQuery, puis exécutez un job d'opérations de stockage par lot pour réécrire les objets avec la clé Cloud KMS par défaut du bucket.
    Les objets actifs concernés utilisent des clés de chiffrement fournies par le client (CSEK) Rechiffrer des objets chiffrés par CSEK à l'aide de la Google Cloud CLI Étant donné que Google Cloud ne stocke pas les clés de chiffrement fournies par le client (CSEK), les opérations de stockage par lot ne peuvent pas déchiffrer les objets chiffrés avec une CSEK. Utilisez la commande gcloud storage objects update pour réécrire les objets chiffrés par CSEK avec la clé Cloud KMS par défaut du bucket.

    Une fois que vous avez rechiffré tous les objets non conformes d'un bucket, le résultat est effacé pour ce bucket lors du cycle d'actualisation suivant de 24 heures. Toutefois, le résultat reste actif dans les cas suivants jusqu'à ce que vous ou Cloud Storage supprimiez définitivement les versions d'objets conservées :

Rechiffrer des objets chiffrés avec une GMEK à grande échelle à l'aide d'opérations de stockage par lot

Pour rechiffrer des objets GMEK actifs à grande échelle, exportez des fichiers manifestes CSV depuis BigQuery et exécutez un job d'opérations de stockage par lot :

  1. Exécutez la requête EXPORT DATA suivante dans BigQuery pour créer un fichier manifeste CSV à l'aide des ensembles de données Storage Insights :

    EXPORT DATA OPTIONS(
      uri='gs://DESTINATION_BUCKET/manifests/objects_violating_default_policies_*.csv',
      format='CSV',
      overwrite=true,
      header=true
    ) AS
    SELECT
      bucket,
      name
    FROM
      `DATASET_NAME.object_attributes_latest_snapshot_view`
    WHERE
      bucket = 'BUCKET_NAME'
      AND encryptionType = 'GMEK'
      AND timeDeleted IS NULL
      AND softDeleteTime IS NULL;

    Remplacez les éléments suivants :

    • DESTINATION_BUCKET : nom du bucket Cloud Storage dans lequel vous souhaitez stocker les fichiers manifestes CSV exportés.
    • DATASET_NAME : nom de votre ensemble de données associé à Storage Insights dans BigQuery.
    • BUCKET_NAME : nom du bucket concerné.
  2. Remplissez les conditions préalables pour les opérations de stockage par lot et demandez à votre administrateur d'accorder le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) sur la clé Cloud KMS par défaut du bucket aux deux agents de service suivants :

    • Agent de service des opérations Storage par lot (service-PROJECT_NUMBER@gcp-sa-storagebatchoperations.iam.gserviceaccount.com)
    • Agent de service Cloud Storage (service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com)

    Remplacez PROJECT_NUMBER par le numéro du projet contenant le bucket.

  3. Exécutez la commande gcloud storage batch-operations jobs create pour créer un job d'opérations de stockage par lot à l'aide du fichier manifeste et rechiffrer les objets avec la clé Cloud KMS par défaut du bucket. Pour vérifier la configuration du job avant de modifier des objets, incluez l'option --dry-run :

    gcloud storage batch-operations jobs create JOB_NAME \
      --bucket="BUCKET_NAME" \
      --manifest-location="gs://DESTINATION_BUCKET/manifests/objects_violating_default_policies_*.csv" \
      --rewrite-object="kms-key=DEFAULT_KMS_KEY"

    Remplacez les éléments suivants :

    • JOB_NAME : identifiant unique du job par lot, par exemple update-encryption-to-cmek-job.
    • BUCKET_NAME : nom du bucket concerné.
    • DESTINATION_BUCKET : nom du bucket contenant vos fichiers manifestes exportés.
    • DEFAULT_KMS_KEY : nom de ressource de la clé Cloud KMS par défaut du bucket, au format projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY.

Rechiffrer des objets chiffrés par CSEK à l'aide de la Google Cloud CLI

Étant donné que Google Cloud ne stocke pas les clés de chiffrement fournies par le client (CSEK), les opérations de stockage par lot ne peuvent pas déchiffrer les objets chiffrés par CSEK. Pour rechiffrer des objets chiffrés avec une CSEK à l'aide de la clé Cloud KMS par défaut du bucket, exécutez la commande gcloud storage objects update avec les options --decryption-keys et --encryption-key :

gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME \
  --decryption-keys=DECRYPTION_KEY \
  --encryption-key=DEFAULT_KMS_KEY

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket concerné.
  • OBJECT_NAME : nom de l'objet chiffré par CSEK que vous souhaitez rechiffrer. Pour mettre à jour plusieurs objets en une seule commande, utilisez des caractères génériques d'URI ou l'option --read-paths-from-stdin (-I).
  • DECRYPTION_KEY : clé AES-256 encodée en base64 selon la norme RFC 4648 qui chiffre l'objet.
  • DEFAULT_KMS_KEY : nom de ressource de la clé Cloud KMS par défaut du bucket, au format projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY.

Étapes suivantes