Chiffrer et déchiffrer des données

L'AO effectue des opérations de chiffrement et de déchiffrement via la CLI isolée Google Distributed Cloud (GDC) vers le KMS via un client gRPC.

Avant de commencer

Avant d'effectuer des opérations KMS, configurez kubectl pour accéder au serveur de l'API Management et obtenir les autorisations nécessaires.

Configurer l'accès au serveur de l'API Management

Configurez kubectl pour accéder au serveur de l'API Management :

  1. Si vous ne l'avez pas déjà fait, obtenez un fichier kubeconfig pour le serveur d'API Management à l'aide de l'interface de ligne de commande (CLI) gdcloud.
  2. Définissez la variable d'environnement MANAGEMENT_API_SERVER :

    export MANAGEMENT_API_SERVER=PATH_TO_KUBECONFIG
    

    Remplacez PATH_TO_KUBECONFIG par le chemin d'accès au fichier kubeconfig généré.

  3. Si vous ne l'avez pas déjà fait, téléchargez, installez et configurez la gdcloud CLI. Pour ce faire, consultez la présentation de la gdcloud CLI.

Autorisations requises

Pour obtenir les autorisations nécessaires, demandez à votre administrateur IAM de l'organisation de vous accorder le rôle Développeur KMS (kms-developer) dans votre projet.

Chiffrer des données

Pour chiffrer des données, utilisez la commande gdcloud kms keys encrypt. Cette commande chiffre un fichier en texte brut donné à l'aide de la clé AEAD et l'écrit dans un fichier de texte chiffré nommé.

  • Pour chiffrer des données, transmettez le nom de la clé et les éléments suivants :

    gdcloud kms keys encrypt namespaces/NAMESPACE/aeadKeys/KEY_NAME \
      --plaintext-file=PLAINTEXT_PATH \
      --additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE \
      --ciphertext-file=CIPHERTEXT_PATH
    

    Remplacez les variables suivantes :

    • NAMESPACE : espace de noms du projet, par exemple, kms-test1.
    • KEY_NAME : nom de la clé utilisée pour chiffrer le texte brut, par exemple key-1.
    • PLAINTEXT_PATH : chemin d'accès au fichier contenant le texte brut à chiffrer.
    • ADDITIONAL_AUTHENTICATED_DATA_FILE : fichier facultatif contenant des données authentifiées supplémentaires (AAD). Le contrôle AAD permet de vérifier l'intégrité et de protéger les données contre une attaque de type "confused deputy". L'AAD et le texte brut sont chacun limités à 64 Ko.
    • CIPHERTEXT_PATH : chemin d'accès au fichier contenant le texte brut chiffré.

    Après avoir exécuté la commande, vous verrez un fichier que vous avez spécifié dans l'indicateur --ciphertext-file et qui contient le contenu chiffré du fichier en texte brut.

Déchiffrer des données

Pour déchiffrer des données, utilisez la commande gdcloud kms keys decrypt. Cette commande déchiffre un fichier de texte chiffré donné à l'aide de la clé AEAD et l'écrit dans un fichier de texte brut nommé.

  • Pour déchiffrer le texte chiffré, transmettez le nom de la clé et les éléments suivants :

    gdcloud kms keys decrypt namespaces/NAMESPACE/aeadKeys/KEY_NAME \
     --ciphertext-file=CIPHERTEXT_PATH \
     --additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE \
     --plaintext-file=PLAINTEXT_PATH
    

    Remplacez les variables suivantes :

    • NAMESPACE : espace de noms du projet.
    • KEY_NAME : nom de la clé utilisée pour chiffrer le texte brut.
    • CIPHERTEXT_PATH : chemin d'accès au fichier que vous souhaitez déchiffrer.
    • ADDITIONAL_AUTHENTICATED_DATA_FILE : fichier facultatif contenant des données authentifiées supplémentaires (AAD). Le contrôle AAD permet de vérifier l'intégrité et de protéger les données contre une attaque de type "confused deputy". L'AAD et le texte brut sont chacun limités à 64 Ko.
    • PLAINTEXT_PATH : chemin d'accès au fichier contenant le texte brut déchiffré.

    Après avoir exécuté la commande, vous verrez un fichier que vous avez spécifié dans l'indicateur --plaintext-file et qui contient les données déchiffrées.