Rechiffrer les objets qui ne respectent pas les règles de chiffrement appliquées

Cette page explique comment utiliser le conseiller Storage Intelligence pour identifier et rechiffrer les objets qui ne respectent pas la configuration d'application du chiffrement de leur bucket.

Lorsque vous appliquez ou limitez les types de chiffrement pour un bucket, Cloud Storage applique cette configuration à tous les objets nouveaux ou réécrits dans le bucket. Toutefois, Cloud Storage ne rechiffre pas automatiquement les objets existants que vous avez importés avant l'entrée en vigueur de la configuration. 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 Les objets ne respectent pas les règles de chiffrement appliquées lorsqu'un bucket contient des objets qui utilisent une méthode de chiffrement restreinte. 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 une présentation du 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 objets par rapport aux configurations d'application du chiffrement au niveau des buckets 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 :

  • Le bucket limite une ou plusieurs méthodes de chiffrement dans sa configuration enforcedEncryptionAllowedTypes, telles que le chiffrement standard (chiffrement par défaut de Google ou GMEK), les clés de chiffrement gérées par le client (CMEK) ou les clés de chiffrement fournies par le client (CSEK).
  • Le bucket contient au moins un objet dont le champ de métadonnées encryptionType ne figure pas dans la liste enforcedEncryptionAllowedTypes du bucket.

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 réécrivez les objets non conformes avec une méthode de chiffrement autorisée :

  1. Affichez les détails du résultat pour identifier les buckets concernés et leurs types de chiffrement autorisés (CMEK, GMEK ou CSEK).

  2. Facultatif : Pour lister les objets d'un bucket concerné qui ne respectent pas la configuration de chiffrement appliquée, 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 NOT IN (ALLOWED_ENCRYPTION_TYPES)
      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é.
    • ALLOWED_ENCRYPTION_TYPES : liste des types de chiffrement autorisés par le bucket, séparés par une virgule, par exemple 'CMEK' ou 'CMEK', 'GMEK'.
  3. Utilisez le tableau suivant pour sélectionner la méthode de rechiffrement de vos objets actifs :

    Scénario Action recommandée Détails
    Le bucket autorise les clés de chiffrement gérées par le client (CMEK) Rechiffrer les objets avec une CMEK Pour les objets GMEK actifs, exportez les fichiers manifestes CSV depuis BigQuery et exécutez un job d'opérations de stockage par lot pour réécrire les objets avec une clé Cloud KMS. Pour les objets chiffrés par CSEK, exécutez la commande gcloud storage objects update.
    Le bucket autorise le chiffrement standard (GMEK) Rechiffrer les objets avec le chiffrement standard (GMEK) Vérifiez que le bucket ne possède pas de clé Cloud KMS par défaut, puis utilisez la commande gcloud storage objects update avec l'option --clear-encryption-key pour réécrire les objets concernés avec un chiffrement standard.
    Le bucket n'autorise que les clés de chiffrement fournies par le client (CSEK) Rechiffrer les objets avec une CSEK Exécutez la commande gcloud storage objects update avec l'option --encryption-key pour réécrire les objets concernés avec votre clé de chiffrement AES-256.

    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 les objets avec une CMEK

Si le bucket autorise les clés de chiffrement gérées par le client (CMEK), rechiffrez les objets concernés en fonction de leur méthode de chiffrement actuelle.

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

Pour rechiffrer à grande échelle des objets chiffrés avec une clé GMEK à l'aide d'une clé CMEK, 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 pour les objets actifs concernés qui utilisent le chiffrement standard (GMEK) :

    EXPORT DATA OPTIONS(
      uri='gs://DESTINATION_BUCKET/manifests/objects_violating_enforced_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 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 réécrire les objets avec votre clé Cloud KMS. 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_enforced_policies_*.csv" \
      --rewrite-object="kms-key=KMS_KEY"

    Remplacez les éléments suivants :

    • JOB_NAME : identifiant unique du job par lot, par exemple re-encrypt-objects-job.
    • BUCKET_NAME : nom du bucket concerné.
    • DESTINATION_BUCKET : nom du bucket contenant vos fichiers manifestes exportés.
    • KMS_KEY : nom de ressource de la clé Cloud KMS que vous souhaitez utiliser pour chiffrer les objets. La clé doit se trouver au même emplacement que le bucket et utiliser le 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 par CSEK avec une CMEK, 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=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.
  • KMS_KEY : nom de ressource de la clé Cloud KMS que vous souhaitez utiliser pour chiffrer l'objet, au format projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY.

Rechiffrer les objets avec un chiffrement standard (GMEK)

Pour rechiffrer des objets avec un chiffrement standard (chiffrement par défaut de Google ou GMEK), vérifiez que le bucket ne dispose pas d'une clé Cloud KMS par défaut et effacez la clé de chiffrement personnalisée sur chaque objet concerné :

  1. Vérifiez que le bucket ne possède pas de clé Cloud KMS par défaut. Lorsque vous effacez la clé de chiffrement personnalisée d'un objet, Cloud Storage ne chiffre l'objet avec le chiffrement standard (GMEK) que si le bucket ne possède pas de clé Cloud KMS par défaut. Si le bucket possède une clé Cloud KMS par défaut, Cloud Storage chiffre l'objet avec cette clé. Si le bucket limite également les clés CMEK, la réécriture échoue.

    Pour supprimer une clé Cloud KMS par défaut du bucket, exécutez la commande gcloud storage buckets update avec l'option --clear-default-encryption-key :

    gcloud storage buckets update gs://BUCKET_NAME \
      --clear-default-encryption-key

    Remplacez BUCKET_NAME par le nom du bucket concerné.

  2. Exécutez la commande gcloud storage objects update avec l'option --clear-encryption-key pour réécrire les objets concernés avec un chiffrement standard. Si les objets sont chiffrés avec des clés de chiffrement fournies par le client (CSEK), incluez également l'option --decryption-keys :

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

    Remplacez les éléments suivants :

    • BUCKET_NAME : nom du bucket concerné.
    • OBJECT_NAME : nom de l'objet que vous souhaitez rechiffrer. Pour mettre à jour plusieurs objets à l'aide d'une seule commande, utilisez des caractères génériques d'URI (tels que gs://BUCKET_NAME/**) ou l'option --read-paths-from-stdin (-I).
    • DECRYPTION_KEY : si l'objet est chiffré avec CSEK, la clé AES-256 encodée en base64 RFC 4648 qui chiffre l'objet. Si l'objet est chiffré avec CMEK, omettez l'option --decryption-keys.

Rechiffrer les objets avec une CSEK

Si le bucket n'autorise que les clés de chiffrement fournies par le client (CSEK), utilisez la commande gcloud storage objects update avec l'option --encryption-key pour réécrire les objets concernés avec votre clé de chiffrement AES-256. Si un objet est chiffré avec une autre CSEK, incluez également l'option --decryption-keys :

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

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket concerné.
  • OBJECT_NAME : nom de l'objet que vous souhaitez rechiffrer. Pour mettre à jour plusieurs objets à l'aide d'une seule commande, utilisez des caractères génériques d'URI ou l'option --read-paths-from-stdin (-I).
  • YOUR_ENCRYPTION_KEY : chaîne de clé de chiffrement AES-256 encodée en base64 RFC 4648.
  • DECRYPTION_KEY : si l'objet est chiffré avec une clé CSEK différente, la clé AES-256 encodée en base64 RFC 4648 qui chiffre l'objet. Si l'objet est chiffré avec GMEK ou CMEK, omettez l'option --decryption-keys.

Étapes suivantes