Sécurisation du service de volumes par blocs
Cette rubrique fournit des informations de sécurité et des recommandations relatives aux volumes par blocs.
Le service Volumes par blocs vous permet de provisionner et de gérer dynamiquement des volumes de stockage par blocs . Vous pouvez créer, attacher, connecter et déplacer des volumes selon vos besoins en matière de stockage et d'applications, de stockage et de performance. Une fois un volume attaché et connecté à une instance, vous pouvez l'utiliser comme un disque dur classique. Vous pouvez également déconnecter un volume et l'attacher à une autre instance sans perte de données.
Responsabilités en matière de sécurité
Pour utiliser le service de volumes par blocs en toute sécurité, découvrez vos responsabilités en matière de sécurité et de conformité.
Oracle est responsable des exigences de sécurité suivantes :
- Physical Security : :Oracle est responsable de la protection de l'infrastructure globale qui exécute tous les services offerts dans Oracle Cloud Infrastructure. Cette infrastructure se compose du matériel, du logiciel, du réseau et des installations qui exécutent les services Oracle Cloud Infrastructure.
Vos responsabilités en matière de sécurité sont décrites dans cette page, qui comprend les domaines suivants :
- Contrôle de l'accès : Limitez le plus possible les privilèges. Les utilisateurs ne doivent disposer que de l'accès nécessaire pour effectuer leur travail.
- Chiffrement et confidentialité : Utilisez des clés de chiffrement et des clés secrètes pour protéger vos données et vous connecter à des ressources sécurisées. Faites pivoter ces clés régulièrement.
Tâches de sécurité initiales
Utilisez cette liste de vérification pour identifier les tâches que vous effectuez pour sécuriser le service de volume par blocs d'une nouvelle location Oracle Cloud Infrastructure.
| Tâche | Informations supplémentaires |
|---|---|
| Utiliser les politiques GIA pour accorder l'accès aux utilisateurs et aux ressources | Politiques GIA |
| Chiffrer les ressources à l'aide d'une clé personnalisée | Chiffrement des données |
| Activer et configurer le service de protection d'infrastructure en nuage (facultatif) | Service infonuagique |
| Créer une zone de sécurité (facultatif) | Zones de sécurité |
Tâches de sécurité régulières
Après avoir commencé à utiliser le service de volume par blocs, utilisez cette liste de vérification pour identifier les tâches de sécurité qu'il est recommandé d'effectuer régulièrement.
| Tâche | Informations supplémentaires |
|---|---|
| Effectuer la rotation des clés de chiffrement | Chiffrement des données |
| Répondre aux problèmes détectés dans le service de protection d'infrastructure en nuage | Service infonuagique |
| Effectuer des sauvegardes périodiques | Durabilité des données |
| Vérifier la sécurité | Vérification |
Politiques GIA
Utilisez des politiques pour limiter l'accès au service de volumes par blocs.
Une politique indique qui peut accéder aux ressources Oracle Cloud Infrastructure et comment. Pour plus d'informations, voir Fonctionnement des politiques.
Affectez à un groupe les privilèges minimaux nécessaires à l'exercice de ses responsabilités. Chaque politique comporte un verbe qui décrit les actions que le groupe est autorisé à effectuer. De l'accès le plus restreint à l'accès le plus élevé, les verbes disponibles sont les suivants : inspect, read, use et manage.
Nous vous recommandons d'accorder des autorisations DELETE à un jeu minimal d'utilisateurs et de groupes IAM. Cette pratique minimise la perte de données résultant de suppressions accidentelles par des utilisateurs autorisés ou d'acteurs malveillants. N'accordez les autorisations DELETE qu'aux administrateurs de location et de compartiment.
Oracle Cloud Infrastructure prend en charge deux types de volume : volumes par blocs et volumes de démarrage. Les volumes par blocs permettent d'étendre la capacité de stockage des instances de manière dynamique. Un volume de démarrage contient l'image utilisée pour démarrer l'instance de calcul. Le service GIA regroupe la famille des types de ressource de volume connexes en un type de ressource combiné appelé volume-family.
Affectez aux utilisateurs et groupes GIA un accès avec privilège minimal aux types de ressource dans volume-family. Les types de ressource dans volume-family sont volumes, volume-attachments et volume-backups.
- Les ressources
volumessont des périphériques de volume par blocs détachables qui permettent une expansion dynamique de la capacité de stockage d'une instance ou qui contiennent l'image de démarrage de l'instance. - Les ressources
volume-attachmentssont des attachements entre des volumes et des instances. - Les ressources
volume-backupssont des copies de volumes à un instant donné qui peuvent être utilisées pour créer ou récupérer des volumes par blocs.
L'exemple de politique suivant permet de regrouper les utilisateurs VolumeUsers pour exécuter toutes les actions sur les volumes et les sauvegardes, sauf la suppression.
Allow group VolumeUsers to manage volumes in tenancy
where request.permission!='VOLUME_DELETE'
Allow group VolumeUsers to manage volume-backups in tenancy
where request.permission!='VOLUME_BACKUP_DELETE'Si les utilisateurs VolumeUsers ne peuvent pas détacher des volumes d'instances, vous pouvez ajouter la politique suivante à l'exemple précédent.
Allow group VolumeUsers to manage volume-attachments in tenancy
where request.permission!='VOLUME_ATTACHMENT_DELETE'Pour plus d'informations sur les politiques du service de volumes par blocs et pour voir d'autres exemples, voir Informations détaillées sur les services de base.
Cloud Guard
Activez le service de protection d'infrastructure en nuage et utilisez-le pour détecter les problèmes de sécurité dans le service de volumes par blocs et y répondre.
Lors de la détection d'un problème, le service de protection d'infrastructure en nuage suggère des mesures correctives. Vous pouvez également configurer le service de protection d'infrastructure en nuage pour qu'il effectue automatiquement certaines actions. Le service de protection d'infrastructure en nuage inclut les règles de détecteur suivantes pour le volume par blocs.
- Le volume par blocs est chiffré avec une clé gérée par Oracle.
- Le volume par blocs n'est pas attaché
Pour obtenir la liste de toutes les règles de détecteur disponibles dans le service de protection d'infrastructure en nuage, voir Informations de référence sur les recettes de détecteur.
Si vous ne l'avez pas encore fait, activez le service de protection d'infrastructure en nuage et configurez-le pour surveiller les compartiments qui contiennent vos ressources. Vous pouvez configurer des cibles du service de protection d'infrastructure en nuage pour examiner l'ensemble de votre location (compartiment racine et tous les sous-compartiments) ou pour vérifier uniquement des compartiments spécifiques. Voir Introduction au service de protection d'infrastructure en nuage.
Après avoir activé le service de protection d'infrastructure en nuage, vous pouvez voir et résoudre les problèmes de sécurité détectés. Voir Traitement des problèmes signalés.
Zones de sécurité
L'utilisation de zones de sécurité garantit que vos ressources dans le service de volumes par blocs sont conformes aux meilleures pratiques de sécurité.
Une zone de sécurité est associée à un ou plusieurs compartiments et à une recette de zone de sécurité. Lors de la création et de la mise à jour de ressources dans le compartiment d'une zone de sécurité, Oracle Cloud Infrastructure valide ces opérations en fonction de la liste des politiques de zone de sécurité dans la recette. En cas de violation d'une politique dans la recette, l'opération est refusée. Les politiques de zone de sécurité suivantes sont disponibles pour les ressources du service de volumes par blocs.
-
deny block_volume_not_in_security_zone_attach_to_instance_in_security_zone -
deny block_volume_in_security_zone_attach_to_instance_not_in_security_zone -
deny boot_volume_not_in_security_zone_attach_to_instance_in_security_zone -
deny boot_volume_in_security_zone_attach_to_instance_not_in_security_zone -
deny attached_block_volume_not_in_security_zone_move_to_compartment_in_security_zone -
deny attached_boot_volume_not_in_security_zone_move_to_compartment_in_security_zone -
deny block_volume_without_vault_key -
deny boot_volume_without_vault_key
Pour obtenir la liste de toutes les politiques de zone de sécurité, voir Politiques de zone de sécurité.
Pour déplacer des ressources existantes vers un compartiment qui se trouve dans une zone de sécurité, les ressources doivent être conformes à toutes les politiques de zone de sécurité de la recette de la zone. De même, les ressources dans une zone de sécurité ne peuvent pas être déplacées vers un compartiment à l'extérieur de la zone de sécurité, car cela peut être moins sécurisé. Voir Gestion des zones de sécurité.
Chiffrement des données
Le service de volume par blocs chiffre toujours tous les volumes par blocs, les volumes de démarrage et les sauvegardes de volume au repos à l'aide de l'algorithme AES avec un chiffrement de 256 bits. Vous pouvez utiliser une clé de chiffrement fournie par Oracle ou une clé personnalisée dans le service de chambre forte. Vous pouvez également chiffrer vos volumes de données à l'aide d'outils comme dm-crypt, veracrypt et Bit-Locker.
Par défaut, tous les volumes et leurs sauvegardes sont chiffrés au moyen des clés de chiffrement fournies par Oracle. Chaque fois qu'un volume est cloné ou restauré à partir d'une sauvegarde, une nouvelle clé de chiffrement unique lui est affectée.
Chiffrement des volumes avec le service de chambre forte
Bien que les clés de chiffrement par défaut puissent être générées automatiquement lorsque vous créez certaines ressources Oracle Cloud Infrastructure, nous vous recommandons de créer et de gérer vos propres clés de chiffrement personnalisées dans le service de chambre forte.
Une chambre forte est une entité logique qui stocke les clés de chiffrement que vous utilisez pour protéger vos données. Selon le mode de protection, les clés sont soit stockées sur le serveur, soit stockées sur des modules de sécurité matériels hautement disponibles et durables. Nos modules de sécurité matériels répondent aux normes fédérales de traitement des informations (FIPS) 140-2 Certification de sécurité de niveau 3. Voir Gestion des chambres fortes et Gestion des clés.
Créez et faites pivoter des clés de chiffrement dans le service de chambre forte pour protéger vos ressources dans le service de volume par blocs. Voir Création d'un volume par blocs et Affectation d'une clé à un volume par blocs.
Une version de clé est affectée automatiquement à chaque clé principale de chiffrement. Lorsque vous effectuez la rotation d'une clé, le service de chambre forte génère une nouvelle version de clé. Une rotation régulière permet de limiter le volume des données chiffrées ou signées avec une version de clé. Si une clé est comprise, la rotation réduit les risques pour vos données. Voir Gestion des clés.
Nous vous recommandons d'utiliser des politiques IAM pour limiter strictement la création, la rotation et la suppression des clés de chiffrement. Voir Détails du service de chambre forte.
Chiffrement de volumes autres que des volumes racines à l'aide de dm-crypt
dm-crypt est un mécanisme de chiffrement au niveau du noyau (faisant partie du cadre Linux devicemapper) qui fournit des volumes chiffrés. Il chiffre les données transmises à partir du système de fichiers (par exemple, ext4 et NTFS) et les stocke sur un périphérique de stockage dans le format LUKS (Linux Unified Key Setup).
Les volumes chiffrés peuvent être stockés sur un disque, une partition de disque, un volume logique ou un stockage basé sur fichier créé à l'aide de périphériques de bouclage. Cryptsetup est l'utilitaire de niveau utilisateur utilisé pour gérer dm-crypt et pour chiffrer des partitions et des fichiers. dm-crypt utilise les API Linux crypto pour les sous-programmes de chiffrement.
Si vous devez accéder au volume chiffré :
cryptsetup luksOpen /dev/sdb <dev_name> --key-file=/home/opc/keyfile
mount /dev/mapper/<dev_name> /home/encrypt_fs
Si vous perdez le fichier de clés ou si la phrase secrète ou le fichier de clés est endommagé, vous ne pourrez pas déchiffrer le volume chiffré. Il en résulte une perte permanente de données. Nous vous recommandons de stocker des copies durables du fichier de clés sur un hôte sur place.
Montage à distance de volumes de données chiffrés avec dm-crypt
Les étapes suivantes supposent que le fichier de clés se trouve sur un hôte sur place (SRC_IP) et que <OCI_SSH_KEY> est la clé privée SSH de l'instance.
Durabilité des données
Effectuez régulièrement des sauvegardes de vos données dans le service de volume par blocs. Nous vous recommandons d'autoriser au moins un jeu d'utilisateurs et de groupes à supprimer des sauvegardes.
Pour minimiser la perte de données causée par les suppressions ou la corruption, nous vous recommandons de faire des sauvegardes périodiques des volumes. Oracle Cloud Infrastructure permet d'effectuer des sauvegardes programmées automatisées. Pour plus d'informations à propos des sauvegardes programmées, voir Sauvegardes basées sur une politique.
Pour minimiser la perte de données causée par des suppressions par inadvertance par un utilisateur autorisé ou par des suppressions malveillantes, nous vous recommandons d'accorder les autorisations VOLUME_DELETE, VOLUME_ATTACHMENT_DELETE et VOLUME_BACKUP_DELETE à un jeu minimal possible d'utilisateurs et de groupes IAM. Accordez les autorisations DELETE uniquement aux administrateurs de location et de compartiment.
Vérification
Localisez les journaux d'accès et les autres données de sécurité pour le service de volumes par blocs.
Le service de vérification enregistre automatiquement tous les appels d'API aux ressources Oracle Cloud Infrastructure. Vous pouvez atteindre vos objectifs de sécurité et de conformité en utilisant le service de vérification pour surveiller toutes les activités des utilisateurs dans votre location. Comme tous les appels de console, de trousse SDK et de ligne de commande (interface de ligne de commande) sont effectués par l'intermédiaire de nos API, toute l'activité provenant de ces sources est incluse. Les enregistrements de vérification sont disponibles au moyen d'une API d'interrogation authentifiée et filtrable ou ils peuvent être extraits en tant que fichiers par lots à partir du stockage d'objets. Le contenu du journal de vérification inclut l'activité survenue, l'utilisateur qui l'a lancée, la date et l'heure de la demande, ainsi que l'adresse IP source, l'agent utilisateur et les en-têtes HTTP de la demande. Voir Affichage des événements du journal de vérification.
{
"datetime": 1642993213028,
"logContent": {
"data": {
"additionalDetails": {
"X-Real-Port": 55984
},
"availabilityDomain": "AD3",
"compartmentId": "ocid1.compartment.oc1..<unique_ID>",
"compartmentName": "mycompartment",
"definedTags": null,
"eventGroupingId": "<unique_ID>",
"eventName": "ListBootVolumes",
"freeformTags": null,
"identity": {
"authType": null,
"callerId": null,
"callerName": null,
"consoleSessionId": null,
"credentials": "<key>",
"ipAddress": "<IP_address>",
"principalId": "<user_ID>",
"principalName": "<user_name>",
"tenantId": "ocid1.tenancy.oc1..<unique_ID>",
"userAgent": "Oracle-JavaSDK/1.37.1 (Linux/4.14.35-2047.510.4.1.el7uek.x86_64; Java/1.8.0_301; Java HotSpot(TM) 64-Bit Server VM GraalVM EE 20.3.3/25.301-b09-jvmci-20.3-b18)"
},
"message": "ListBootVolumes succeeded",
"request": {
"action": "GET",
"headers": {
"Accept": [
"application/json"
],
"Authorization": [
"Signature headers=\"date (request-target) host\",keyId=<key>"
],
"Connection": [
"keep-alive"
],
"Date": [
"Mon, 24 Jan 2022 03:00:12 GMT"
],
"User-Agent": [
"Oracle-JavaSDK/1.37.1 (Linux/4.14.35-2047.510.4.1.el7uek.x86_64; Java/1.8.0_301; Java HotSpot(TM) 64-Bit Server VM GraalVM EE 20.3.3/25.301-b09-jvmci-20.3-b18)"
],
"opc-client-info": [
"Oracle-JavaSDK/1.37.1"
],
"opc-request-id": [
"<unique_ID>"
]
},
"id": "<unique_ID>",
"parameters": {
"availabilityDomain": [
"EMIr:PHX-AD-3"
],
"compartmentId": [
"ocid1.compartment.oc1..<unique_ID>"
],
"limit": [
"1000"
]
},
"path": "/20160918/bootVolumes"
},
"resourceId": null,
"response": {
"headers": {
"Connection": [
"close"
],
"Content-Length": [
"2"
],
"Content-Type": [
"application/json"
],
"Date": [
"Mon, 24 Jan 2022 03:00:13 GMT"
],
"X-Content-Type-Options": [
"nosniff"
],
"opc-request-id": [
"<unique_ID>"
]
},
"message": null,
"payload": {},
"responseTime": "2022-01-24T03:00:13.028Z",
"status": "200"
},
"stateChange": {
"current": null,
"previous": null
}
},
"dataschema": "2.0",
"id": "<unique_ID>",
"oracle": {
"compartmentid": "ocid1.compartment.oc1..<unique_ID>",
"ingestedtime": "2022-01-24T03:00:45.483Z",
"loggroupid": "_Audit",
"tenantid": "ocid1.tenancy.oc1..<unique_ID>"
},
"source": "",
"specversion": "1.0",
"time": "2022-01-24T03:00:13.028Z",
"type": "com.oraclecloud.BlockVolumes.ListBootVolumes"
}
}Si vous avez activé le service de protection d'infrastructure en nuage dans votre location, toutes les activités d'utilisateur pouvant poser des problèmes de sécurité sont signalées. Lors de la détection d'un problème, le service de protection d'infrastructure en nuage suggère des mesures correctives. Vous pouvez également configurer le service de protection d'infrastructure en nuage pour qu'il effectue automatiquement certaines actions. Voir Introduction au service de protection d'infrastructure en nuage et Traitement des problèmes signalés.