Utiliser CMEK avec Managed Service pour Apache Spark

Par défaut, Managed Service pour Apache Spark chiffre le contenu client au repos. Managed Service pour Apache Spark gère le chiffrement sans intervention de votre part. Cette option est appelée chiffrement par défaut de Google.

Si vous souhaitez contrôler vos clés de chiffrement, vous pouvez utiliser des clés de chiffrement gérées par le client (CMEK) dans Cloud KMS avec des services bénéficiant d'une intégration des CMEK, y compris Managed Service pour Apache Spark. L'utilisation de clés Cloud KMS vous permet de contrôler leur niveau de protection, leur emplacement, leur calendrier de rotation, leurs autorisations d'utilisation et d'accès, ainsi que leurs limites cryptographiques. Cloud KMS vous permet également de suivre l'utilisation des clés, de consulter les journaux d'audit et de contrôler les cycles de vie des clés. Au lieu de laisser Google posséder et gérer les clés de chiffrement de clés (KEK) symétriques qui protègent vos données, c'est vous qui vous chargez de cette tâche dans Cloud KMS.

Une fois que vous avez configuré vos ressources avec des CMEK, l'accès à vos ressources Managed Service pour Apache Spark est semblable à celui du chiffrement par défaut de Google. Pour en savoir plus sur les options de chiffrement, consultez Clés de chiffrement gérées par le client (CMEK).

Utiliser CMEK

Suivez les étapes de cette section pour utiliser CMEK afin de chiffrer les données que Managed Service pour Apache Spark écrit sur un disque persistant et dans le bucket de préproduction Managed Service pour Apache Spark.

Vous pouvez utiliser Cloud Key Management Service pour créer et gérer des trousseaux de clés et des clés, ou utiliser Cloud KMS Autokey pour simplifier la création automatique de trousseaux de clés et de clés.

Utiliser Cloud KMS Autokey

  1. Activez Autokey sur le dossier contenant votre projet.
  2. Créez un descripteur de clé. Lorsque vous créez le descripteur de clé, spécifiez dataproc.googleapis.com/Batch ou dataproc.googleapis.com/Session comme --resource-type. Autokey génère une clé et l'attribue au descripteur de clé.
  3. Accordez des autorisations aux comptes de service et configurez votre charge de travail par lot ou de session en suivant les étapes 4 et 5 de la section Créer et utiliser des clés manuellement ci-dessous. Lorsque vous envoyez votre charge de travail, spécifiez le nom de ressource du descripteur de clé à la place du nom de ressource de la clé dans le champ kmsKey.

Créer et utiliser des clés manuellement

Suivez ces étapes pour créer manuellement des clés Cloud KMS et les utiliser avec Managed Service pour Apache Spark.

  1. Créez une clé à l'aide du service Cloud Key Management Service (Cloud KMS).

  2. Copiez le nom de la ressource.

    Copiez le nom de la ressource.
    Le nom de la ressource se construit de la façon suivante :
    projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
    

  3. Autorisez les comptes de service Compute Engine, Managed Service pour Apache Spark et Cloud Storage Service Agent à utiliser votre clé :

    1. Consultez Protéger les ressources à l'aide de clés Cloud KMS > Rôles requis pour attribuer le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS au compte de service de l'agent de service Compute Engine. Si ce compte de service n'est pas listé sur la page IAM de la Google Cloud console, cliquez sur Inclure les attributions de rôles fournies par Google pour l'afficher.
    2. Attribuez le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS au compte de service de l'agent de service Managed Service pour Apache Spark. Pour attribuer le rôle, vous pouvez utiliser Google Cloud CLI comme suit :

       gcloud projects add-iam-policy-binding KMS_PROJECT_ID \
       --member serviceAccount:service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \
       --role roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      Remplacez les éléments suivants :

      KMS_PROJECT_ID : ID de votre Google Cloud projet qui exécute Cloud KMS. Ce projet peut également être celui qui exécute les ressources Managed Service pour Apache Spark.

      PROJECT_NUMBER : numéro de votre projet qui exécute les ressources Managed Service pour Apache Spark (et non son ID). Google Cloud

    3. Activez l'API Cloud KMS sur le projet qui exécute les ressources Managed Service pour Apache Spark.

    4. Si le rôle d'agent de service Managed Service pour Apache Spark n'est pas associé au compte de service de l'agent de service Managed Service pour Apache Spark, ajoutez l'autorisation serviceusage.services.use au rôle personnalisé associé au compte de service de l'agent de service Managed Service pour Apache Spark. Si le rôle d'agent de service Managed Service pour Apache Spark est associé au compte de service de l'agent de service Managed Service pour Apache Spark, vous pouvez ignorer cette étape.

    5. Suivez les étapes pour ajouter votre clé au bucket.

  4. Lorsque vous envoyez une charge de travail par lot :

    1. Spécifiez votre clé dans le paramètre du lot kmsKey.
    2. Spécifiez le nom de votre bucket Cloud Storage dans le paramètre du lot stagingBucket.
  5. Lorsque vous créez une session interactive ou un modèle de session :

    1. Spécifiez votre clé dans le paramètre kmsKey de la session.
    2. Spécifiez le nom de votre bucket Cloud Storage dans le paramètre de la session stagingBucket.