title | excerpt | updated |
---|---|---|
Premiers pas avec OVHcloud Key Management Service (KMS) |
Mettez en oeuvre votre OVHcloud KMS |
2025-01-15 |
L'objectif de ce guide est de présenter les différentes étapes pour mettre en place votre premier KMS (Key Management Service), créer une clé et un certificat d'accès.
- Disposer d'un compte client OVHcloud.
Chaque KMS est associé à une région, ainsi les clés qui y sont stockées ont la garantie de rester dans cette région.
Il est possible de commander plusieurs KMS, que ce soit dans des régions différentes ou dans une même région.
La facturation d'un KMS étant basée sur le nombre de clés y étant stockées, la commande d'un KMS ne génère pas de facturation en elle-même.
Vous pouvez commander un KMS depuis l'espace client OVHcloud en vous rendant sur l'un des menus suivants :
- Cliquez sur
Bare Metal Cloud
{.action} puis surIdentité, Sécurité & Opérations
{.action}. Cliquez surKey Management Service
{.action} puis sur le boutonCommander un KMS
{.action}. - Cliquez sur
Hosted Private Cloud
{.action} puis surIdentité, Sécurité & Opérations
{.action}. Cliquez surKey Management Service
{.action} puis sur le boutonCommander un KMS
{.action}.
Indiquez la région de votre KMS.
La commande est ensuite à finaliser dans un autre onglet. Si celui-ci ne s'est pas ouvert automatiquement, le lien de commande est affiché :
Après quelques secondes, le KMS est bien disponible dans votre espace client.
Vous pouvez créer une clé de chiffrement depuis le menu dédié de la console d'administration, en cliquant sur le bouton Créer une clé
{.action}.
Un formulaire permet alors de configurer la clé en sélectionnant le type de la clé, sa taille et ses usages.
Une fois la clé créée, cliquez dessus pour accéder à ses détails.
Le tableau de bord présente les propriétés cryptographiques de la clé, ainsi que les actions permettant de la renommer, la désactiver ou la supprimer.
Afin de limiter les risques de suppression accidentelle, il est nécessaire de désactiver la clé avant de la supprimer.
Warning
Il n'existe aucun moyen de récupérer une clé supprimée et sa suppression entraine la perte des données chiffrés avec celle-ci. Aussi, toute suppression doit être envisagée avec la plus grande précaution.
Afin de communiquer avec votre KMS, il est nécessaire de créer un certificat d'accès. Celui-ci sera utilisé pour toute interaction avec le KMS, que ce soit pour créer des clés de chiffrement ou effectuer des opérations avec celles-ci.
Il est possible de créer ce certificat depuis le menu dédié de la console d'administration, en cliquant sur le bouton Générer un certificat d'accès
{.action}.
La première partie du formulaire vous permet de préciser sa durée de validité ainsi que de fournir ou non votre Certificate Signing Request (CSR) dans le cas où vous posséderiez votre propre clé privée.
- Sans fournir de clé privée :
Si vous ne fournissez pas de CSR, OVHcloud génèrera le certificat d'accès ainsi qu'une clé privée.
- Avec une CSR :
Si vous disposez de votre propre clé privée, il est possible de l'utiliser en fournissant une CSR.
La deuxième partie du formulaire permet d'indiquer les identités OVHcloud associées au certificat permettant de calculer les droits d'accès via l'IAM OVHcloud.
Il est possible d'ajouter l'identitée root
au certificat afin de ne pas être contraint par l'IAM OVHcloud.
Il est ensuite nécessaire de télécharger la clé privée du certificat.
[!alert]
La clé privée ne sera plus accessible par la suite. En cas de perte, il sera nécessaire de regénérer un certificat.
Warning
Le champ privateKeyPEM doit être modifié afin de remplacer les occurrences de \n
par des retours chariots.
Enfin, il est possible de télécharger la clé publique du certificat depuis le dashboard.
La création d'une clé se fait par l'API suivante :
Méthode | Chemin | Description |
---|---|---|
POST | /okms/resource/{okmsId}/serviceKey | Créer ou importer une CMK |
L'API attend les valeurs suivantes :
Champ | Valeur | Description |
---|---|---|
name | string | Nom de la clé |
context | string | Donnée d'identification complémentaire permettant de vérifier l'authenticité de la clé |
type | oct, RSA, EC | Type de la clé : Octet sequence (oct) for symmetric keys, RSA (RSA), Elliptic Curve (EC) |
size | Integer | Taille de la clé - voir table de correspondance ci-dessous |
operations | Array | Usage de la clé - voir table de correspondance ci-dessous |
curve | P-256, P-384, P-521 | (optionnel) Courbe cryptographique pour les clés de type EC |
Exemple de création de clé symétrique :
{
"name": "My first AES key",
"context": "project A",
"type": "oct",
"size": 256,
"operations": [
"encrypt",
"decrypt"
]
}
Exemple de création de clé asymétrique :
{
"name": "My first RSA key",
"context": "project A",
"type": "RSA",
"size": 4096,
"operations": [
"sign",
"verify"
]
}
Exemple de création de clé EC :
{
"name": "My first EC key",
"context": "project A",
"type": "EC",
"operations": [
"sign",
"verify"
],
"curve": "P-256"
}
Les tailles et opérations possibles en fonction du type de clé sont les suivantes :
- oct :
- taille : 128, 192, 256
- opérations :
- encrypt, decrypt
- wrapKey, unwrapKey
- RSA :
- taille : 2048, 3072, 4096
- opérations : sign, verify
- EC :
- taille : ne pas spécifier
- curve : P-256, P-384, P-521
- opérations : sign, verify
Afin de communiquer avec votre KMS, il est nécessaire de créer un certificat d'accès. Celui-ci sera utilisé pour toute interaction avec le KMS, que ce soit pour créer des clés de chiffrement ou effectuer des opérations avec celles-ci.
Chaque certificat contient une identité OVHcloud permettant de calculer les droits d'accès via l'IAM OVHcloud
Il est possible de générer ce certificat en laissant OVHcloud générer la clé privée, ou en fournissant votre Certificate Signing Request (CSR) dans le cas où vous posséderiez votre propre clé privée.
Si vous ne fournissez pas de CSR, OVHcloud génèrera le certificat d'accès ainsi qu'une clé privée.
La génération de certificat se fait via l'API suivante :
[!api]
@api {v2} /okms POST /okms/resource/{okmsId}/credential
Il est nécessaire d'indiquer les informations suivantes :
- name : le nom du certificat
- identityURNs : liste des identités OVHcloud sous format d'URN qui seront fournies à l'IAM pour le calcul des droits d'accès
- description : description du certificat (optionnel)
- validity : durée de validité du certificat en jours - 365 jours par défaut (optionnel)
Exemple de création de certificat avec le compte root :
{
"description": "My root access credential",
"identityURNs": [
"urn:v1:eu:identity:account:xx1111-ovh"
],
"name": "root",
"validity": 30
}
Exemple de création de certificat avec un compte utilisateur local :
{
"description": "My access credential",
"identityURNs": [
"urn:v1:eu:identity:user:xx1111-ovh/john.smith",
"urn:v1:eu:identity:group:xx1111-ovh/my_group"
],
"name": "John Smith",
"validity": 30
}
L'API retourne ensuite l'état de création du certificat :
{
"id": "f18b5e0d-75b8-40a3-9b0e-XXXXXX",
"name": "John Smith",
"description": "My access credential",
"identityURNs": [
"urn:v1:eu:identity:user:xx1111-ovh/john.smith",
"urn:v1:eu:identity:group:xx1111-ovh/my_group"
],
"status": "CREATING",
"fromCSR": false,
"privateKeyPEM": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIDOfWuMVQxl5quoURzThF4zTI9YYTmylSaPjneLBwP+2oAoGCCqGSM49\nAwEHoUQDQgAERd1eMw0YdAD+E9oSymGc4bCL1mfJl0EZwoM2ya/uKFFVFnGMnckg\nXXXXXXXXXXXXXXX==\n-----END EC PRIVATE KEY-----\n",
"createdAt": "2024-04-04T12:26:28.856619+02:00",
"expiredAt": "2025-04-04T12:26:28.856616+02:00"
}
Copiez la valeur du champ privateKeyPEM dans un fichier domain.key
[!alert]
La clé privée ne sera plus accessible par la suite. En cas de perte, il sera nécessaire de regénérer un certificat.
Warning
Le champ privateKeyPEM doit être modifié afin de remplacer les occurrences de \n
par des retours chariots.
Copiez ensuite l'ID du certificat et accédez au détail de ce dernier via l'API :
[!api]
@api {v2} /okms GET /okms/resource/{okmsId}/credential/{credentialId}
L'API renvoie le certificat au format PEM :
{
"id": "f18b5e0d-75b8-40a3-9b0e-XXXXXX",
"name": "John Smith",
"description": "My access credential",
"identityURNs": [
"urn:v1:eu:identity:user:xx1111-ovh/john.smith",
"urn:v1:eu:identity:group:xx1111-ovh/my_group"
],
"status": "READY",
"fromCSR": false,
"certificatePEM": "-----BEGIN CERTIFICATE-----\nMIIBqTCCAVCgAwIBAgIRAPGLXg11uECjmw5x/+X/A8swCgYIKoZIzj0EAwIwFTET\nMBEGA1UEAxMKQ0NNVXNlcnNDQTAeFw0yNDA0MDQxMDI2MjhaFw0yNTA0MDQxMDI2\nMjhaMC8xLTArBgNVBAMTJGU5MGM1ODQxLWYzOWUtNDk4My04NTk2LTYyZmYwYzUz\nOGI2YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEXdXjMNGHQA/hPaEsphnOGw\ni9ZnyZdBGcKDNsmv7ihRVRZxjJ3JICEusleqD4lE27DAAdzbRdqAhpCqsTks+sSj\nZzBlME4GA1UdEQEB/wREMEKgQAYKKwYBBAGCNxQCA6AyDDBva21zLmRvbWFpbjpl\nOTBjNTg0MS1mMzllLTQ5ODMtODU5Ni02MmZmMGM1MzhiNmIwEwYDVR0lBAwwCgYI\nKwYBBQUHAwIwCgYIKoZIzj0EAwIDRwAwRAIgdWGYm1UQMg0sTIgROFH5mWiAh/lk\nDlyP5HhrWyFB9BICIDl5wtUWgCmo6TjOqXXXXXXXXXXXXXX\n-----END CERTIFICATE-----",
"createdAt": "2024-04-04T12:26:28.856619+02:00",
"expiredAt": "2025-04-04T12:26:28.856616+02:00"
}
Copiez la valeur du champ certificatePEM dans un fichier client.cert.
Warning
Le champ certificatePEM doit être modifié afin de remplacer les occurrences de \n
par des retours chariots.
Si vous disposez de votre propre clé privée, il est possible de l'utiliser en fournissant une CSR.
La génération de certificat se fait via l'API suivante :
[!api]
@api {v2} /okms POST /okms/resource/{okmsId}/credential
Il est nécessaire d'indiquer les informations suivantes :
- name : le nom du certificat
- identityURNs : liste des identités OVHcloud sous format d'URN qui seront fournies à l'IAM pour le calcul des droits d'accès
- description : description du certificat (optionnel)
- validity : durée de validité du certificat en jours - 365 jours par défaut (optionnel)
- csr : le contenu de la CSR
Warning
La CSR doit être au format JSON. Le fichier doit être modifié afin de remplacer les retours chariots par des \n
(voir l'exemple ci-dessous). Vous pouvez aussi utiliser des outils tiers en ligne pour adapter le contenu dans un format JSON adapté.
Exemple de création de certificat :
{
"csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICvDCCAaQCAQAwdzELMAkGA1UEBhMCVVMxDTALBgNVBAgMBFV0YWgxDzANBgNV\nBAcMBkxpbmRvbjEWMBQGA1UECgwNRGlnaUNlcnQgSW5jLjERMA8GA1UECwwIRGln\naUNlcnQxHTAbBgNVBAMMFGV4YW1wbGUuZGlnaWNlcnQuY29tMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8+To7d+2kPWeBv/orU3LVbJwDrSQbeKamCmo\nwp5bqDxIwV20zqRb7APUOKYoVEFFOEQs6T6gImnIolhbiH6m4zgZ/CPvWBOkZc+c\n1Po2EmvBz+AD5sBdT5kzGQA6NbWyZGldxRthNLOs1efOhdnWFuhI162qmcflgpiI\nWDuwq4C9f+YkeJhNn9dF5+owm8cOQmDrV8NNdiTqin8q3qYAHHJRW28glJUCZkTZ\nwIaSR6crBQ8TbYNE0dc+Caa3DOIkz1EOsHWzTx+n0zKfqcbgXi4DJx+C1bjptYPR\nBPZL8DAeWuA8ebudVT44yEp82G96/Ggcf7F33xMxe0yc+Xa6owIDAQABoAAwDQYJ\nKoZIhvcNAQEFBQADggEBAB0kcrFccSmFDmxox0Ne01UIqSsDqHgL+XmHTXJwre6D\nhJSZwbvEtOK0G3+dr4Fs11WuUNt5qcLsx5a8uk4G6AKHMzuhLsJ7XZjgmQXGECpY\nQ4mC3yT3ZoCGpIXbw+iP3lmEEXgaQL0Tx5LFl/okKbKYwIqNiyKWOMj7ZR/wxWg/\nZDGRs55xuoeLDJ/ZRFf9bI+IaCUd1YrfYcHIl3G87Av+r49YVwqRDT0VDV7uLgqn\n29XI1PpVUNCPQGn9p/eX6Qo7vpDaPybRtA2R7XLKjQaF9oXWeCUqy1hvJac9QFO2\n97Ob1alpHPoZ7mWiEXXXXXXXXXXXXX\n-----END CERTIFICATE REQUEST-----",
"description": "My access credential",
"identityURNs": [
"urn:v1:eu:identity:user:xx1111-ovh/john.smith",
"urn:v1:eu:identity:group:xx1111-ovh/my_group"
],
"name": "John Smith",
"validity": 30
}
L'API retourne ensuite l'état de création du certificat :
{
"id": "f18b5e0d-75b8-40a3-9b0e-XXXXXX",
"name": "John Smith",
"description": "My access credential",
"identityURNs": [
"urn:v1:eu:identity:user:xx1111-ovh/john.smith",
"urn:v1:eu:identity:group:xx1111-ovh/my_group"
],
"status": "CREATING",
"fromCSR": true,
"createdAt": "2024-04-04T12:26:28.856619+02:00",
"expiredAt": "2025-04-04T12:26:28.856616+02:00"
}
Copiez l'ID du certificat et accédez au détail de ce dernier via l'API :
[!api]
@api {v2} /okms GET /okms/resource/{okmsId}/credential/{credentialId}
L'API renvoie le certificat au format PEM :
{
"id": "f18b5e0d-75b8-40a3-9b0e-XXXXXX",
"name": "John Smith",
"description": "My access credential",
"identityURNs": [
"urn:v1:eu:identity:user:xx1111-ovh/john.smith",
"urn:v1:eu:identity:group:xx1111-ovh/my_group"
],
"status": "READY",
"fromCSR": true,
"certificatePEM": "-----BEGIN CERTIFICATE-----\nMIIBqTCCAVCgAwIBAgIRAPGLXg11uECjmw5x/+X/A8swCgYIKoZIzj0EAwIwFTET\nMBEGA1UEAxMKQ0NNVXNlcnNDQTAeFw0yNDA0MDQxMDI2MjhaFw0yNTA0MDQxMDI2\nMjhaMC8xLTArBgNVBAMTJGU5MGM1ODQxLWYzOWUtNDk4My04NTk2LTYyZmYwYzUz\nOGI2YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEXdXjMNGHQA/hPaEsphnOGw\ni9ZnyZdBGcKDNsmv7ihRVRZxjJ3JICEusleqD4lE27DAAdzbRdqAhpCqsTks+sSj\nZzBlME4GA1UdEQEB/wREMEKgQAYKKwYBBAGCNxQCA6AyDDBva21zLmRvbWFpbjpl\nOTBjNTg0MS1mMzllLTQ5ODMtODU5Ni02MmZmMGM1MzhiNmIwEwYDVR0lBAwwCgYI\nKwYBBQUHAwIwCgYIKoZIzj0EAwIDRwAwRAIgdWGYm1UQMg0sTIgROFH5mWiAh/lk\nDlyP5HhrWyFB9BICIDl5wtUWgCmo6TjOqXXXXXXXXXXXXXX\n-----END CERTIFICATE-----",
"createdAt": "2024-04-04T12:26:28.856619+02:00",
"expiredAt": "2025-04-04T12:26:28.856616+02:00"
}
Copiez la valeur du champ certificatePEM dans un fichier client.cert.
Une fois votre KMS OVHcloud initialisé, il est possible de l'utiliser de deux manières différentes :
- En utilisant les API Rest, si vous souhaitez utiliser manuellement les API pour chiffrer ou signer vos données.
- En utilisant le protocole KMIP, si vous souhaitez connecter n'importe quel produit compatible KMIP avec le KMS OVHcloud.
Utiliser le KMS OVHcloud avec vos données Échangez avec notre communauté d'utilisateurs.