Configurer les justifications d'accès aux clés avec Cloud HSM

Cette page explique comment configurer Key Access Justifications avec Cloud HSM pour le package de contrôles des régions japonaises d'Assured Workloads.

Lorsque vous créez un dossier Assured Workloads pour les régions du Japon, vous pouvez créer un projet et un trousseau pour vos clés cryptographiques. Vous pouvez ajouter des clés Cloud HSM à ce trousseau de clés. Vous pouvez également configurer une stratégie Key Access Justifications pour contrôler l'accès à chaque clé.

Avant de commencer

  • La possibilité d'utiliser des Key Access Justifications aux clés avec les clés Cloud HSM n'est disponible que pour le package de contrôles des régions du Japon dans Assured Workloads.
  • Assurez-vous que votre administrateur vous a attribué l'un des rôles IAM (Identity and Access Management) requis pour créer et gérer vos règles de Key Access Justifications et les clés Cloud HSM elles-mêmes.

Autorisations IAM requises

Pour obtenir les autorisations nécessaires pour créer et gérer les clés Cloud HSM et leurs règles de Key Access Justifications, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Cloud KMS (roles/cloudkms.admin) sur le projet contenant le trousseau de clés. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour créer et gérer des clés Cloud HSM et leurs règles de Key Access Justifications. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer et gérer des clés Cloud HSM et leurs règles de Key Access Justifications :

  • cloudkms.cryptoKeys.create
  • cloudkms.cryptoKeys.update
  • cloudkms.cryptoKeys.get

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Configurer une clé Cloud HSM avec des Key Access Justifications

Pour configurer Key Access Justifications aux clés avec une clé Cloud HSM, vous pouvez inclure la règle d'accès aux clés en tant que paramètre lorsque vous créez la clé, ou vous pouvez mettre à jour la clé avec la règle après sa création.

Créer une clé et une règle

REST

Créez une clé et une règle à l'aide de la méthode cryptoKeys.create :

POST https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME

Dans la requête, remplacez les valeurs d'espace réservé suivantes :

  • PROJECT_ID : ID du projet contenant le trousseau de clés auquel vous souhaitez ajouter une clé (par exemple, 919698201234).
  • LOCATION : emplacement du trousseau de clés (par exemple, us-west1).
  • KEY_RING : nom du trousseau de clés que vous avez spécifié lorsque vous avez créé le projet et le trousseau de clés de gestion des clés de votre dossier Assured Workloads (par exemple, my-key-ring).
  • KEY_NAME : nom de la clé HSM que vous souhaitez créer (par exemple, my-hsm-key).

Corps de la requête :

{
  "purpose": "PURPOSE",
  "versionTemplate": {
    "protectionLevel": "HSM",
    "algorithm": "ALGORITHM"
  },
  "keyAccessJustificationsPolicy": {
    "allowedAccessReasons": [
      ALLOWED_ACCESS_REASONS
    ]
  }
}

Dans le corps de la requête, remplacez les valeurs d'espace réservé suivantes :

  • PURPOSE : objectif de la clé. Pour obtenir la liste des différents objectifs de clés, consultez Objectifs des clés, par exemple ENCRYPT_DECRYPT.
  • ALGORITHM : algorithme cryptographique à utiliser. Pour obtenir la liste des algorithmes disponibles, consultez Algorithmes Cloud KMS (par exemple, GOOGLE_SYMMETRIC_ENCRYPTION).
  • ALLOWED_ACCESS_REASONS : stratégie de justification de l'accès aux clés qui définit zéro ou plusieurs codes de justification autorisés pour accéder à la clé de chiffrement (par exemple, ["CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION"]).

L'exemple de requête et de corps de requête suivant n'autorise les justifications d'accès que pour quelques raisons :

POST https://cloudkms.googleapis.com/v1/projects/919698201234/locations/us-west1/keyRings/my-key-ring/cryptoKeys?crypto_key_id=my-hsm-key
{
  "purpose": "ENCRYPT_DECRYPT",
  "versionTemplate": {
    "protectionLevel": "HSM",
    "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION"
  },
  "keyAccessJustificationsPolicy": {
    "allowedAccessReasons": [
      "CUSTOMER_INITIATED_ACCESS",
      "GOOGLE_INITIATED_SYSTEM_OPERATION"
    ]
  }
}

Mettre à jour la stratégie d'une clé existante

REST

Mettez à jour une clé existante dans Cloud KMS à l'aide de la méthode cryptoKeys.patch :

PATCH https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME?update_mask=keyAccessJustificationsPolicy

Dans la requête, remplacez les valeurs d'espace réservé suivantes :

  • PROJECT_ID : ID du projet contenant le trousseau de clés pour la clé (par exemple, 919698201234).
  • LOCATION : emplacement du trousseau de clés (par exemple, us-west1).
  • KEY_RING : nom du trousseau de clés que vous avez spécifié lorsque vous avez créé le projet et le trousseau de clés de gestion des clés de votre dossier Assured Workloads (par exemple, my-key-ring).
  • KEY_NAME : nom de la clé HSM que vous souhaitez mettre à jour (par exemple, my-hsm-key).

Corps de la requête :

{
  "purpose": "PURPOSE",
  "versionTemplate": {
    "protectionLevel": "HSM",
    "algorithm": "ALGORITHM"
  },
  "keyAccessJustificationsPolicy": {
    "allowedAccessReasons": [
      ALLOWED_ACCESS_REASONS
    ]
  }
}

Dans le corps de la requête, remplacez les valeurs d'espace réservé suivantes :

  • PURPOSE : objectif de la clé. Pour obtenir la liste des différents objectifs de clés, consultez Objectifs des clés, par exemple ENCRYPT_DECRYPT.
  • ALGORITHM : algorithme cryptographique à utiliser. Pour obtenir la liste des algorithmes disponibles, consultez Algorithmes Cloud KMS (par exemple, GOOGLE_SYMMETRIC_ENCRYPTION).
  • ALLOWED_ACCESS_REASONS : stratégie de justification de l'accès aux clés qui définit zéro ou plusieurs codes de justification autorisés pour accéder à la clé de chiffrement (par exemple, ["CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION"]).

L'exemple de requête et de corps de requête suivant n'autorise les justifications d'accès que pour quelques raisons :

PATCH https://cloudkms.googleapis.com/v1/projects/919698201234/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-hsm-key?keyAccessJustificationsPolicy
{
  "purpose": "ENCRYPT_DECRYPT",
  "versionTemplate": {
    "protectionLevel": "HSM",
    "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION"
  },
  "keyAccessJustificationsPolicy": {
    "allowedAccessReasons": [
      "CUSTOMER_INITIATED_ACCESS",
      "GOOGLE_INITIATED_SYSTEM_OPERATION"
    ]
  }
}

Obtenir la stratégie Key Access Justifications pour une clé

REST

Obtenez des métadonnées sur une clé existante dans Cloud KMS à l'aide de la méthode cryptoKeys.get :

GET https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME

Dans les paramètres de la requête, remplacez les valeurs d'espace réservé suivantes par les vôtres :

  • PROJECT_ID : ID du projet contenant le trousseau de clés pour la clé (par exemple, 919698201234).
  • LOCATION : emplacement du trousseau de clés (par exemple, us-west1).
  • KEY_RING : nom du trousseau de clés que vous avez spécifié lorsque vous avez créé le projet et le trousseau de clés de gestion des clés de votre dossier Assured Workloads (par exemple, my-key-ring).
  • KEY_NAME : nom de la clé HSM que vous souhaitez obtenir (par exemple, my-hsm-key).

L'exemple de requête suivant permet d'obtenir des métadonnées sur une clé dans Cloud KMS :

GET https://cloudkms.googleapis.com/v1/projects/919698201234/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-hsm-key

Le corps de la réponse contient des métadonnées sur votre clé, y compris le keyAccessJustificationsPolicy. Exemple :

{
  "purpose": "ENCRYPT_DECRYPT",
  "versionTemplate": {
    "protectionLevel": "HSM",
    "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION"
  },
  "keyAccessJustificationsPolicy": {
    "allowedAccessReasons": [
      "CUSTOMER_INITIATED_ACCESS",
      "GOOGLE_INITIATED_SYSTEM_OPERATION"
    ]
  }
}

Étapes suivantes