Intégration de Key Protect
Génération 2
Les données que vous stockez dans l' Cloud Databases s sont chiffrées par défaut à l'aide de clés générées de manière aléatoire. Pour contrôler les clés de chiffrement, vous pouvez utiliser la fonctionnalité Bring Your Own Key (BYOK) via IBM Key Protect et utiliser l'une de vos propres clés pour chiffrer vos bases de données et vos sauvegardes.
Pour commencer, configurez Key Protect sur votre compte IBM Cloud.
Création ou ajout d'une clé dans Key Protect
Accédez à votre instance de Key Protect et générez ou entrez une clé.
Octroi d'une autorisation de service dans l'interface utilisateur
Autorisez Key Protect pour une utilisation avec des déploiements Cloud Databases :
- Ouvrez votre tableau de bord IBM Cloud.
- Dans la barre de menus, cliquez sur Gérer-> Accès (IAM).
- Dans la barre de navigation latérale, cliquez sur Autorisations.
- Cliquez sur Créer.
- Dans le menu Service source, sélectionnez le service du déploiement. Par exemple, Databases for PostgreSQL ou Databases for MongoDB.
- Dans le menu des ressources du service Source, sélectionnez Toutes les ressources.
- Dans le menu Service cible, sélectionnez Key Protect.
- Sélectionnez ou conservez la valeur par défaut Account comme groupe de ressources pour le service cible.
- Dans le menu ID instance du service cible, sélectionnez les instances de service à autoriser.
- Activez le rôle Lecteur.
- Pour utiliser la fonctionnalité Bring your own key (BYOK), cochez la case Activer la délégation des autorisations dans la section Autoriser les services dépendants.
- Cliquez sur Autoriser.
Si l'autorisation de service n'est pas présente avant la mise à disposition de votre déploiement avec une clé, la mise à disposition échoue.
Si vous souhaitez mettre en place une politique d'autorisation plus restrictive, configurez votre politique en spécifiant explicitement le CRN de la clé racine ou en indiquant une instance spécifique d' Key Protect. Les restrictions appliquées aux porte-clés « Key Protect » ne sont actuellement pas prises en charge.
Octroi d'une autorisation de service via l'interface CLI
- Créez une politique d'autorisation pour permettre au service « Cloud Databases » d'accéder à l'instance du service « Key Protect » via l'interface CLI. Pour connaître la liste complète des arguments, consultez la documentation de référence de l'interface CLI IAM.
ibmcloud iam authorization-policy-create <SERVICE-NAME> kms "Reader,AuthorizationDelegator"
Si l'autorisation de service n'est pas présente avant la mise à disposition de votre déploiement avec une clé, la mise à disposition échoue.
Si vous souhaitez mettre en place une politique d'autorisation plus restrictive, configurez votre politique en spécifiant explicitement le CRN de la clé racine ou en indiquant une instance spécifique d' Key Protect. Les restrictions appliquées aux porte-clés « Key Protect » ne sont actuellement pas prises en charge.
Octroi d'une autorisation de service via l'API REST
- Créez une politique d'autorisation pour permettre au service Cloud Databases d'accéder à l'instance du service Key Protect via l'API REST IAM.
Pour consulter la documentation complète de l'API, reportez-vous à l'API de gestion des politiques IAM.
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' -d '{
"type": "authorization",
"subjects": [
{
"attributes": [
{
"name": "accountId",
"value": "CUSTOMER_ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "<SERVICE-NAME>"
}
]
}
],
"roles": [
{
"role_id": "crn:v1:bluemix:public:iam::::serviceRole:Reader"
},
{
"role_id": "crn:v1:bluemix:public:iam::::role:AuthorizationDelegator"
}
],
"resources": [
{
"attributes": [
{
"name": "accountId",
"operator": "stringEquals",
"value": "CUSTOMER_ACCOUNT_ID"
},
{
"name": "serviceName",
"operator": "stringEquals",
"value": "kms"
}
]
}
]
}'
Si l'autorisation de service n'est pas présente avant la mise à disposition de votre déploiement avec une clé, la mise à disposition échoue.
Si vous souhaitez mettre en place une politique d'autorisation plus restrictive, configurez votre politique en spécifiant explicitement le CRN de la clé racine ou en indiquant une instance spécifique d' Key Protect. Les restrictions appliquées aux porte-clés « Key Protect » ne sont actuellement pas prises en charge.
Utilisation de la clé Key Protect
Une fois que vous avez accordé à vos déploiements Cloud Databases l'autorisation d'utiliser vos clés, fournissez le nom de clé ou un nom de ressource de cloud lorsque vous mettez à disposition un déploiement. Le déploiement utilise votre clé de chiffrement pour chiffrer vos données.
Utilisation de la clé « Key Protect » dans l'interface utilisateur lors de la mise en service
Si vous effectuez un provisionnement à partir de la page du catalogue, sélectionnez l'instance Key Protect et la clé dans le menu déroulant.
Utilisation de la clé « Key Protect » dans l'interface de ligne de commande (CLI) lors de la mise en service
Dans l'interface de ligne de commande (CLI), utilisez le paramètre « dataservices.encryption.disk » dans l'objet JSON des paramètres pour attribuer un CRN de clé racine à votre instance de service.
ibmcloud resource service-instance-create <INSTANCE-NAME> <SERVICE-NAME> <PLAN-NAME> REGION -p '{"dataservices":{"encryption":{"disk":"KMS_KEY_CRN"}}}'
La clé « Key Protect » doit être identifiée par son CRN complet, et non pas uniquement par son identifiant. Un CRN Key Protect se présente sous le format crn:v1:<...>:key:<id>.
Utilisation de la clé « Key Protect » dans l'API lors de la mise en service
Dans l'API, utilisez le paramètre dataservices.encryption.disk dans le corps de la requête.
curl -X POST https://resource-controller.cloud.ibm.com/v2/resource_instances -H "Authorization: Bearer <IAM token>" -H 'Content-Type: application/json' -d '{
"name": "<INSTANCE-NAME>",
"target": "ca-mon",
"resource_group": "<A RESOURCE GROUP GUID>",
"resource_plan_id": "<A PLAN ID>",
"parameters": {
"dataservices": {
"encryption": {
"disk": "KMS_KEY_CRN"
}
}
}
La clé « Key Protect » doit être identifiée par son CRN complet, et non pas uniquement par son identifiant. Un CRN Key Protect se présente sous le format crn:v1:<...>:key:<id>.
Rotation des clés
Key Protect propose une gestion manuelle et automatique des clés ( rotation de clé ) et la rotation des clés est prise en charge par les déploiements d' Cloud Databases. Lorsque vous effectuez la rotation d'une clé, le processus lance une tâche de synchronisation de l'état du KMS et votre déploiement est rechiffré avec la nouvelle clé. La tâche s'affiche sur la page Tâches de la vue d'ensemble de votre déploiement, et les événements associés Key Protect et Cloud Databases sont envoyés à Activity Tracker.
Pour plus d'informations, consultez la section « Rotation manuelle ou automatique ».
Suppression du déploiement
Si vous supprimez un déploiement protégé par une clé Key Protect, celui-ci reste associé à cette clé pendant la période de suppression provisoire (jusqu'à 9 jours). Pour supprimer la clé pendant la période de suppression temporaire, utilisez la commande « suppression forcée ». A l'issue de la période de suppression provisoire, la clé peut être supprimée définitivement. Pour savoir quand vous pouvez supprimer la clé, vérifiez l'association entre celle-ci et votre déploiement.
Crypto-déchiquetage
Le déchiffrement cryptographique est une action destructrice. Lorsque la clé est supprimée, vos données sont irrécupérables.
Key Protect vous permet de lancer une suppression forcée d'une clé actuellement utilisée par les services d' IBM Cloud®, y compris vos déploiements Cloud Databases de 2e génération.
Cette action est appelée déchiffrement cryptographique. La suppression d'une clé en cours d'utilisation sur votre déploiement verrouille les disques contenant vos données et désactive votre déploiement. Vous pouvez toujours accéder à l'interface
utilisateur et à certaines métadonnées, telles que les paramètres de sécurité de l'interface utilisateur, de l'interface de ligne de commande et de l'API, mais vous ne pouvez pas accéder aux bases de données ou aux données qui y sont contenues.
La suppression de clé est envoyée à Activity Tracker Event Routing en tant que kms.secrets.delete.
Apportez votre propre clé pour les sauvegardes
Si vous utilisez l' Key Protect, lorsque vous provisionnez une base de données, vous pouvez également désigner une clé pour chiffrer le disque d' IBM® Cloud Block Storage for Virtual Private Cloud s qui contient les sauvegardes de votre déploiement.
La sauvegarde hérite de la même clé de chiffrement que la base de données. Il n'est pas possible de fournir une clé de chiffrement différente lors de la création de la sauvegarde à partir de la base de données.
Octroi de l'autorisation de délégation
Pour que votre déploiement puisse utiliser la clé « Key Protect », vous devez activer la délégation d'autorisation lors de l'octroi des autorisations de service. Si l'autorisation de délégation n'est pas présente avant la mise à disposition de votre déploiement avec une clé, la mise à disposition échoue.
Une fois que vous avez activé la délégation et que vous avez mis à disposition votre déploiement, deux entrées apparaissent dans vos Autorisations dans IAM. L'une est l'entrée du déploiement qui répertorie son statut en tant que délégant. Elle est "créée par l'utilisateur".
| Rôle | Source | Cible | Type |
|---|---|---|---|
| Délégant d'autorisation, Lecteur | Service <cloud-databases> |
Key Protect Service | Défini par l'utilisateur |
Et un autre pour le volume « Block Storage for VPC » de l'instance de service et de ses sauvegardes (le cas échéant), lorsque le déploiement en est à l'origine.
| Rôle | Source | Cible | Type |
|---|---|---|---|
| Lecteur | Block Storage for VPC service | Key Protect Service | Créé par <cloud-databases-crn> |
Suppression de clés
IAM/ Key Protect ne vous empêche pas de supprimer la politique entre la clé et Block Storage for VPC (deuxième exemple), mais cela peut rendre vos topics/partitions irrécupérables.
Pièges courants
Soyez prudent lorsque vous supprimez des clés et des autorisations. Si vous disposez de plusieurs déploiements utilisant les mêmes clés, il est possible de détruire par inadvertance les données de tous ces déploiements en révoquant l’autorisation de délégation. Dans la mesure du possible, n'utilisez pas la même clé pour plusieurs déploiements.
Si vous souhaitez détruire les données associées à votre instance, vous pouvez supprimer la clé. La fonction « Block Storage for VPC » garantit que le stockage est illisible et inécrivable. Toutefois, tout autre déploiement (ou ses sauvegardes) utilisant cette même clé rencontrera des défaillances par la suite.
Si vous avez besoin d'utiliser la même clé pour plusieurs déploiements et/ou sauvegardes, la suppression de clés et d'autorisations peut entraîner les effets secondaires suivants. Si vous supprimez l'autorisation du volume « Block Storage for VPC » (comme indiqué dans le tableau 2), cela affectera non seulement le déploiement indiqué comme créateur, mais également tous les déploiements qui utilisent cette même clé. Ces déploiements rencontreront des problèmes jusqu'à ce que vous ouvriez un ticket d'assistance et demandiez la recréation de la politique.
Faites preuve de prudence si vous réutilisez des clés.