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

Cette page explique comment configurer les justifications d'accès aux clés avec Cloud HSM pour le package de contrôle des régions du Japon des Assured Workloads.

Lors de la procédure de création d'un dossier Assured Workloads pour les régions du Japon, vous pouvez créer un projet et un trousseau de clés pour vos clés cryptographiques. Vous pouvez ajouter des clés Cloud HSM à ce trousseau de clés, et 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 des clés Cloud HSM n'est disponible que pour le package de contrôle des régions du Japon dans Assured Workloads.
  • Assurez-vous que votre administrateur vous a accordé l'un des rôles IAM (Identity and Access Management) requis pour créer et gérer à la fois 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 des 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 des Key Access Justifications avec une clé Cloud HSM, vous pouvez inclure la stratégie 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 stratégie une fois la clé créée.

Créer une clé et une stratégie

REST

Créez une clé et une stratégie à 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 du 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é, consultez la section Objectifs des clés (par exemple, ENCRYPT_DECRYPT).
  • ALGORITHM: algorithme cryptographique à utiliser. Pour obtenir la liste des algorithmes disponibles, consultez la page Algorithmes Cloud KMS (par exemple, GOOGLE_SYMMETRIC_ENCRYPTION).
  • ALLOWED_ACCESS_REASONS: stratégie Key Access Justifications qui définit zéro ou plusieurs codes de justification autorisés pour accéder à la clé de chiffrement (par exemple, CUSTOMER_INITIATED_ACCESS).

L'exemple de requête et de corps de requête suivants n'autorisent 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"
    ]
  }
}

Modifier 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 la clé 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 du 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é, consultez la section Objectifs des clés (par exemple, ENCRYPT_DECRYPT).
  • ALGORITHM: algorithme cryptographique à utiliser. Pour obtenir la liste des algorithmes disponibles, consultez la page Algorithmes Cloud KMS (par exemple, GOOGLE_SYMMETRIC_ENCRYPTION).
  • ALLOWED_ACCESS_REASONS: stratégie Key Access Justifications qui définit zéro ou plusieurs codes de justification autorisés pour accéder à la clé de chiffrement (par exemple, CUSTOMER_INITIATED_ACCESS).

L'exemple de requête et de corps de requête suivants n'autorisent 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 les métadonnées d'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 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 de 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 votre dossier de charges de travail 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 récupère les métadonnées d'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 keyAccessJustificationsPolicy. Exemple :

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