Block Volume sichern

Dieses Thema enthält Sicherheitsinformationen und Empfehlungen für Block Volume.

Mit dem Service Block Volume können Sie Blockspeicher-Volumes dynamisch bereitstellen und verwalten. Sie können Volumes erstellen, anhängen, verbinden und verschieben sowie die Volume-Performance bei Bedarf ändern, um Ihre Speicher-, Performance- und Anwendungsanforderungen zu erfüllen. Nachdem Sie ein Volume an eine Instanz angehängt und damit verbunden haben, können Sie das Volume wie ein herkömmliches Festplattenlaufwerk verwenden. Sie können ein Volume auch trennen und an eine andere Instanz anhängen, ohne dass Daten verloren gehen.

Sicherheitszuständigkeiten

Um Block Volume sicher zu verwenden, lernen Sie Ihre Sicherheits- und Compliancezuständigkeiten kennen.

Im Allgemeinen bietet Oracle Sicherheit für Cloud-Infrastruktur und -Vorgänge, wie Zugriffskontrollen für Cloud-Benutzer und Infrastruktursicherheits-Patching. Sie sind für die sichere Konfiguration Ihrer Cloud-Ressourcen verantwortlich. Für die Sicherheit in der Cloud sind Sie und Oracle gleichermaßen verantwortlich.

Oracle ist für die folgenden Sicherheitsanforderungen verantwortlich:

  • Physische Sicherheit: Oracle ist für den Schutz der globalen Infrastruktur verantwortlich, auf der alle in Oracle Cloud Infrastructure angebotenen Services ausgeführt werden. Diese Infrastruktur besteht aus Hardware, Software, Netzwerken und Einrichtungen, die Oracle Cloud Infrastructure-Services ausführen.

Ihre Sicherheitszuständigkeiten sind auf dieser Seite beschrieben. Sie umfassen die folgenden Bereiche:

  • Zugriffskontrolle: Beschränken Sie Berechtigungen so weit wie möglich. Benutzern sollte nur der erforderliche Zugriff zum Ausführen ihrer Aufgaben erteilt werden.
  • Verschlüsselung und Vertraulichkeit: Verwenden Sie Verschlüsselungsschlüssel und Secrets, um Ihre Daten zu schützen und eine Verbindung zu gesicherten Ressourcen herzustellen. Drehen Sie diese Schlüssel regelmäßig.

Erste Sicherheitsaufgaben

Mit dieser Checkliste können Sie die Aufgaben identifizieren, die zum Sichern von Block-Volumes in einem neuen Oracle Cloud Infrastructure-Mandanten ausgeführt werden.

Aufgabe Weitere Informationen
Mit IAM-Policys Benutzern und Ressourcen Zugriffsberechtigungen erteilen IAM-Policys
Ressourcen mit einem benutzerdefinierten Schlüssel verschlüsseln Datenverschlüsselung
Cloud Guard aktivieren und konfigurieren (optional) Cloud Guard
Sicherheitszone erstellen (optional) Sicherheitszonen

Routinemäßige Sicherheitsaufgaben

Nachdem Sie die ersten Schritte mit Block Volume ausgeführt haben, ermitteln Sie anhand dieser Checkliste, welche Sicherheitsaufgaben Sie regelmäßig ausführen sollten.

Aufgabe Weitere Informationen
Verschlüsselungsschlüssel rotieren Datenverschlüsselung
Auf in Cloud Guard erkannte Probleme reagieren Cloud Guard
Regelmäßige Backups erstellen Datendauerhaftigkeit
Sicherheitsaudit ausführen Prüfen

IAM-Policys

Verwenden Sie Policys, um den Zugriff auf Block-Volume einzuschränken.

In einer Policy ist definiert, wer wie auf Oracle Cloud Infrastructure-Ressourcen zugreifen kann. Weitere Informationen finden Sie unter Funktionsweise von Policys.

Weisen Sie einer Gruppe jeweils nur die geringsten Berechtigungen zu, die diese Gruppe benötigt, um ihre Zuständigkeiten ausführen zu können. Jede Policy enthält ein Verb, das beschreibt, welche Aktionen die Gruppe ausführen darf. Folgende Verben sind verfügbar (sortiert nach Berechtigung): inspect, read, use und manage.

Es wird empfohlen, einem Mindestset von IAM-Benutzern und -Gruppen DELETE-Berechtigungen zu erteilen. Diese Vorgehensweise minimiert den Datenverlust durch versehentliches Löschen durch autorisierte Benutzer oder durch böswillige Akteure. Erteilen Sie DELETE-Berechtigungen nur Mandanten- und Compartment-Administratoren.

Oracle Cloud Infrastructure unterstützt zwei Volume-Typen: Block-Volumes und Boot-Volumes. Mit Block-Volumes kann die Speicherkapazität von Instanzen dynamisch erweitert werden. Ein Boot-Volume enthält das zum Booten der Compute-Instanz verwendete Image. Der IAM-Service gruppiert zusammengehörige Volume-Ressourcenarten in eine kombinierte Ressourcenart mit dem Namen volume-family.

Weisen Sie Ressourcenarten in volume-family die geringste Zugriffsberechtigungen für IAM-Benutzer und -Gruppen zu. Die Ressourcentypen in volume-family sind volumes,volume-attachments und volume-backups.

  • Die volumes-Ressourcen sind trennbare Block-Volume Devices, die eine dynamische Erweiterung der Instanzspeicherkapazität ermöglichen oder das Image zum Booten der Instanz enthalten.
  • Die volume-attachments-Ressourcen sind Anhänge zwischen Volumes und Instanzen.
  • Die volume-backups-Ressourcen sind Point-in-Time-Kopien von Volumes, mit denen Block-Volumes erstellt oder wiederhergestellt werden können.
Löschen von Volumes verhindern

Mit der folgenden Beispiel-Policy kann die Gruppe VolumeUsers alle Aktionen an Volumes und Backups ausführen, mit Ausnahme des Löschvorgangs.

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'

Wenn VolumeUsers keine Volumes von Instanzen trennen können, können Sie die folgende Policy zum vorherigen Beispiel hinzufügen.

Allow group VolumeUsers to manage volume-attachments in tenancy
 where request.permission!='VOLUME_ATTACHMENT_DELETE'

Weitere Informationen zu Block-Volume-Policys und zum Anzeigen weiterer Beispiele finden Sie unter Details zu den Coreservices.

Cloud Guard

Aktivieren Sie Cloud Guard, und verwenden Sie es, um Sicherheitsprobleme in Block Volume zu erkennen und darauf zu reagieren.

Wenn ein Problem erkannt wird, schlägt Cloud Guard Korrekturmaßnahmen vor. Sie können Cloud Guard auch so konfigurieren, dass bestimmte Aktionen automatisch ausgeführt werden. Cloud Guard enthält die folgenden Detektorregeln für Block-Volume.

  • Block-Volume ist mit einem von Oracle verwaltenden Schlüssel verschlüsselt
  • Block-Volume ist nicht angehängt

Eine Liste aller verfügbaren Detektorregeln in Cloud Guard finden Sie unter Detektorrezeptreferenz.

Aktivieren Sie Cloud Guard, falls noch nicht geschehen, und konfigurieren Sie es so, dass es die Compartments überwacht, die Ihre Ressourcen enthalten. Sie können Cloud Guard-Ziele konfigurieren, um den gesamten Mandanten (Root Compartment und alle Sub-Compartments) zu prüfen oder nur bestimmte Compartments zu prüfen. Siehe Erste Schritte mit Cloud Guard.

Nachdem Sie Cloud Guard aktiviert haben, können Sie erkannte Sicherheitsprobleme anzeigen und beheben. Siehe Gemeldete Probleme verarbeiten.

Sicherheitszonen

Durch die Verwendung von Sicherheitszonen wird sichergestellt, dass Ihre Ressourcen in Block Volume den Best Practices zur Sicherheit entsprechen.

Eine Sicherheitszone ist mit mindestens einem Compartment und einem Sicherheitszonenrezept verknüpft. Wenn Sie Ressourcen im Compartment einer Sicherheitszone erstellen und aktualisieren, validiert Oracle Cloud Infrastructure diese Vorgänge anhand der Liste der Sicherheitszonen-Policys im Rezept. Wenn eine Policy im Rezept verletzt wird, wird der Vorgang abgelehnt. Die folgenden Sicherheitszonen-Policys sind für Ressourcen in Block Volume verfügbar.

  • 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

Eine Liste aller Sicherheitszonen-Policys finden Sie unter Sicherheitszonen-Policys.

Um vorhandene Ressourcen in ein Compartment in einer Sicherheitszone zu verschieben, müssen die Ressourcen allen Sicherheitszonen-Policys im Rezept der Zone entsprechen. Ebenso können Ressourcen in einer Sicherheitszone nicht in ein Compartment außerhalb der Sicherheitszone verschoben werden, weil es möglicherweise weniger sicher ist. Siehe Sicherheitszonen verwalten.

Datenverschlüsselung

Der Block-Volume-Service verschlüsselt immer alle Block-Volumes, Boot-Volumes und Volume-Backups im Ruhezustand mit dem Advanced Encryption Standard-(AES-)Algorithmus mit 256-Bit-Verschlüsselung. Sie können einen von Oracle bereitgestellten Verschlüsselungsschlüssel oder einen benutzerdefinierten Schlüssel im Vault-Service verwenden. Sie können Ihre Daten-Volumes auch mit Tools wie dm-crypt, veracrypt und Bit-Locker verschlüsseln.

Standardmäßig werden alle Volumes und ihre Backups mit den von Oracle bereitgestellten Verschlüsselungsschlüsseln verschlüsselt. Jedes Mal, wenn ein Volume aus einem Backup geklont oder wiederhergestellt wird, wird dem Volume ein neuer eindeutiger Verschlüsselungsschlüssel zugewiesen.

Volumes mit dem Vault-Service verschlüsseln

Obwohl Standardverschlüsselungsschlüssel automatisch generiert werden können, wenn Sie bestimmte Oracle Cloud Infrastructure-Ressourcen erstellen, wird empfohlen, dass Sie Ihre eigenen benutzerdefinierten Verschlüsselungsschlüssel im Vault-Service erstellen und verwalten.

Ein Vault ist eine logische Entity, in der die Verschlüsselungsschlüssel gespeichert werden, die Sie zum Schutz Ihrer Daten verwenden. Je nach Schutzmodus werden Schlüssel entweder auf dem Server gespeichert oder auf hochverfügbaren und dauerhaften Hardwaresicherheitsmodulen (HSMs) gespeichert. Unsere HSMs erfüllen die Sicherheitszertifizierung nach Federal Information Processing Standards (FIPS) 140-2 der Sicherheitsebene 3. Siehe Vaults verwalten und Schlüssel verwalten.

Erstellen und rotieren Sie Verschlüsselungsschlüssel im Vault-Service, um Ihre Ressourcen in Block Volume zu schützen. Weitere Informationen finden Sie unter Block-Volumes erstellen und Schlüssel einem Block-Volume zuweisen.

Jedem Masterverschlüsselungsschlüssel wird automatisch eine Schlüsselversion zugewiesen. Wenn Sie einen Schlüssel rotieren, generiert der Vault-Service eine neue Schlüsselversion. Durch regelmäßiges Rotieren der Schlüssel wird die Datenmenge begrenzt, die von einer einzelnen Schlüsselversion verschlüsselt oder signiert wird. Wenn ein Schlüssel besteht, reduziert die Schlüsselrotation das Risiko für Ihre Daten. Siehe Schlüssel verwalten.

Es wird empfohlen, IAM-Policys zu verwenden, um die Erstellung, Rotation und Löschung von Verschlüsselungsschlüsseln streng zu begrenzen. Siehe Details zum Vault Service.

Volumes ohne Root-Rechte mit dm-crypt verschlüsseln

dm-crypt ist ein Verschlüsselungsverfahren auf Kernelebene (Teil des Linux devicemapper-Frameworks) zur Bereitstellung verschlüsselter Volumes. Es verschlüsselt Daten, die vom Dateisystem (z.B. ext4 und NTFS) übergeben werden, und speichert sie auf einem Speichergerät im Linux Unified Key Setup-(LUKS-)Format.

Die verschlüsselten Volumes können auf einem vollständigen Datenträger, einer Datenträgerpartition, einem logischen Volume oder in einem dateibasierten Speicher, der mit Loopback-Geräten erstellt wurde, gespeichert werden. Cryptsetup ist das Utility auf Benutzerebene, mit dem dm-crypt verwaltet und Partitionen und Dateien verschlüsselt werden. dm-crypt verwendet die Linux-crypto-APIs für Verschlüsselungsvorgänge.

  1. Hängen Sie das Blockspeicher-Volume an eine Instanz an (z.B. /dev/sdb).
  2. Formatieren Sie /dev/sdb für die LUKS-Verschlüsselung. Geben Sie die LUKS-Passphrase ein, wenn Sie dazu aufgefordert werden. Mit der Passphrase wird der LUKS-Masterschlüssel verschlüsselt, der zur Verschlüsselung des Volumes verwendet wird.
    cryptsetup -y luksFormat /dev/sdb
  3. Prüfen Sie, ob die LUKS-Formatierung erfolgreich war.
    cryptsetup isLuks /dev/sdb && echo Success
  4. Rufen Sie Verschlüsselungsinformationen zum Gerät ab.
    cryptsetup luksDump /dev/sdb
  5. Rufen Sie die LUKS-UUID des Geräts ab. Mit dem UUID-Wert wird /etc/crypttab konfiguriert.
    cryptsetup luksUUID /dev/sdb
  6. Erstellen Sie einen LUKS-Container mit dem Gerätenamen dev_name. Mit diesem Befehl wird auch der Geräteknoten /dev/mapper/<dev_name> erstellt.
    cryptsetup luksOpen /dev/sdb <dev_name>
  7. Rufen Sie Informationen zum zugeordneten Gerät ab.
    dmsetup info <dev_name>
  8. Formatieren Sie den Geräteknoten als ext4-Dateisystem.
    sudo mkfs -t ext4 /dev/sdb 
  9. Mounten Sie den Geräteknoten.
    mount /dev/mapper/<dev_name> /home/encrypt_fs
  10. Fügen Sie einen Eintrag zu /etc/crypttab hinzu.
    <dev_name> UUID=<LUKS UUID of /dev/sdb> none

    Alle in /home/encrypt_fs kopierten Dateien sind LUKS-Verschlüsselungen.

  11. Fügen Sie einem verfügbaren Schlüsselslot des verschlüsselten Volumes eine Schlüsseldatei hinzu. Mit dieser Schlüsseldatei kann auf das verschlüsselte Volume zugegriffen werden.
    dd if=/dev/urandom of=$HOME/keyfile bs=32 count=1
    chmod 600 $HOME/keyfile
    cryptsetup luksAddKey /dev/sdb ~/keyfile
  12. Prüfen Sie den Verschlüsselungsstatus der Dateien.
    cryptsetup status /home/encrypt_fs
  13. Unmounten Sie den Geräteknoten, wenn Sie fertig sind.
    umount /home/encrypt_fs
    cryptsetup luksClose <dev_name>

Wenn Sie auf das verschlüsselte Volume zugreifen müssen:

cryptsetup luksOpen /dev/sdb <dev_name> --key-file=/home/opc/keyfile
mount /dev/mapper/<dev_name> /home/encrypt_fs

Wenn die Schlüsseldatei verloren geht oder die Schlüsseldatei oder Passphrase beschädigt wird, können Sie das verschlüsselte Volume nicht mehr entschlüsseln. Das Ergebnis ist ein dauerhafter Datenverlust. Es wird empfohlen, dauerhafte Kopien der Schlüsseldatei auf einem On-Premise-Host zu speichern.

Mit dm-crypt verschlüsselte Daten-Volumes remote mounten

In den folgenden Schritten wird angenommen, dass sich die Schlüsseldatei auf einem On-Premise-Host (SRC_IP) befindet und dass <OCI_SSH_KEY> der SSH-Private-Key der Instanz ist.

  1. Kopieren Sie die Schlüsseldatei vom On-Premise-Host in eine Instanz.
    scp -i <OCI_SSH_KEY> keyfile opc@<SRC_IP>:/home/opc
  2. Öffnen Sie das verschlüsselte Volume.
    ssh i <OCI_SSH_KEY> opc@<SRC_IP> "cryptsetup luksOpen /dev/sdb <dev_name> --key-file=/home/opc/keyfile"
  3. Mounten Sie das Volume.
    ssh -i <OCI_SSH_KEY> opc@<SRC_IP> "mount /dev/mapper/<dev_name> /home/encrypt_fs"
  4. Führen Sie Vorgänge mit Daten auf dem gemounteten Volume aus.
  5. Unmounten Sie das verschlüsselte Volume.
    ssh -i <OCI_SSH_KEY> opc@<SRC_IP> "umount /home/encrypt_fs"
    ssh -i <OCI_SSH_KEY> opc@<SRC_IP> "cryptsetup luksClose <dev_name>"
  6. Löschen Sie die Schlüsseldatei von der Instanz.
    ssh -i <OCI_SSH_KEY> opc@<SRC_IP> "\rm -f /home/opc/keyfile"

Datendauerhaftigkeit

Erstellen Sie regelmäßige Backups Ihrer Daten in Block Volume. Es wird empfohlen, dass Sie mindestens einer Gruppe von Benutzern und Gruppen die Berechtigung zum Löschen von Backups erteilen.

Um Datenverluste durch Löschvorgänge oder Beschädigungen zu minimieren, wird empfohlen, regelmäßig Backups von Volumes zu erstellen. Oracle Cloud Infrastructure ermöglicht automatisierte geplante Backups. Weitere Informationen zu geplanten Backups finden Sie unter Policy-basierte Backups.

Um Datenverluste zu minimieren, die durch unbeabsichtigte Löschung durch einen autorisierten Benutzer oder durch böswillige Löschung verursacht werden, empfehlen wir Ihnen, die Berechtigungen VOLUME_DELETE, VOLUME_ATTACHMENT_DELETE und VOLUME_BACKUP_DELETE einer möglichst kleinen Gruppe von IAM-Benutzern und -Gruppen zu gewähren. Erteilen Sie DELETE-Berechtigungen nur Mandanten- und Compartment-Administratoren.

Prüfen

Suchen Sie Zugriffslogs und andere Sicherheitsdaten für Block Volume.

Der Audit-Service zeichnet automatisch alle API-Aufrufe an Oracle Cloud Infrastructure-Ressourcen auf. Sie können Ihre Sicherheits- und Complianceziele erreichen, indem Sie mit dem Audit-Service alle Benutzeraktivitäten in Ihrem Mandanten überwachen. Da alle Konsolen-, SDK- und Befehlszeilenaufrufe über unsere APIs laufen, werden alle Aktivitäten aus diesen Quellen einbezogen. Auditdatensätze sind über eine authentifizierte, filterbare Abfrage-API verfügbar, oder sie können als in Batches verwendete Dateien aus Object Storage abgerufen werden. Zu den Inhalten des Auditlogs gehören die aufgetretenen Aktivitäten, der Benutzer, der diese initiiert hat, Datum und Uhrzeit der Anforderung sowie Quell-IP, Benutzer-Agent und HTTP-Header der Anforderung. Siehe Auditlogereignisse anzeigen.

Beispiel für ein Auditlog
{
  "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"
  }
}

Wenn Sie Cloud Guard in Ihrem Mandanten aktiviert haben, werden alle Benutzeraktivitäten gemeldet, die potenzielle Sicherheitsbedenken darstellen. Wenn ein Problem erkannt wird, schlägt Cloud Guard Korrekturmaßnahmen vor. Sie können Cloud Guard auch so konfigurieren, dass bestimmte Aktionen automatisch ausgeführt werden. Siehe Erste Schritte mit Cloud Guard und Gemeldete Probleme verarbeiten.