Key Protect-Integration

Gen 2

Die Daten, die Sie in Cloud Databases speichern, werden standardmäßig mithilfe zufällig generierter Schlüssel verschlüsselt. Um die Verschlüsselungsschlüssel zu verwalten, können Sie über IBM Key Protect den Bring Your Own Key-Ansatz (BYOK) nutzen und einen Ihrer eigenen Schlüssel zur Verschlüsselung Ihrer Datenbanken und Backups verwenden.

Um loszulegen, richten Sie Key Protect in Ihrem „ IBM Cloud “-Konto ein.

Schlüssel in Key Protect erstellen oder hinzufügen

Rufen Sie Ihre Instanz von Key Protect auf und generieren Sie einen Schlüssel oder geben Sie ihn ein.

Erteilung einer Serviceberechtigung in der Benutzeroberfläche

Autorisieren Sie Key Protect für die Verwendung mit Cloud Databases-Bereitstellungen:

  1. Öffnen Sie das IBM Cloud-Dashboard.
  2. Klicken Sie in der Menüleiste auf Verwalten-> Zugriff (IAM).
  3. Klicken Sie in der Seitennavigation auf Autorisierungen.
  4. Klicken Sie auf Erstellen.
  5. Wählen Sie im Menü Quellenservice den Service der Implementierung aus. Zum Beispiel: Databases for PostgreSQL oder Databases for MongoDB.
  6. Wählen Sie im Menü Ressourcen des Source-Dienstes die Option Alle Ressourcen aus.
  7. Wählen Sie im Menü Zielservice die Option Key Protect aus.
  8. Wählen Sie Account als Ressourcengruppe für den Zielservice aus oder behalten Sie den Standardwert bei
  9. Wählen Sie im Menü für die Instanz-ID des Zielservice die Serviceinstanzen aus, die autorisiert werden sollen.
  10. Aktivieren Sie die Rolle Leseberechtigter.
  11. Um Bring your own key (BYOK) zu verwenden, aktivieren Sie das Kontrollkästchen Autorisierungen delegieren im Abschnitt Abhängige Dienste autorisieren.
  12. Klicken Sie auf Autorisieren.

Wenn die Serviceautorisierung nicht vorhanden ist, bevor Ihre Bereitstellung mit einem Schlüssel eingerichtet wird, schlägt die Einrichtung fehl.

Wenn Sie eine strengere Autorisierungsrichtlinie festlegen möchten, konfigurieren Sie Ihre Richtlinie für eine explizite CRN des Stammschlüssels oder für eine bestimmte „ Key Protect “-Instanz.

Erteilung einer Serviceberechtigung in der CLI

  1. Erstellen Sie eine Autorisierungsrichtlinie, um dem Dienst „ Cloud Databases “ den Zugriff auf die Instanz des Dienstes „ Key Protect “ über die CLI zu ermöglichen. Eine vollständige Übersicht über die Argumente finden Sie in der IAM-CLI-Referenz.
ibmcloud iam authorization-policy-create <SERVICE-NAME> kms "Reader,AuthorizationDelegator"

Wenn die Serviceautorisierung nicht vorhanden ist, bevor Ihre Bereitstellung mit einem Schlüssel eingerichtet wird, schlägt die Einrichtung fehl.

Wenn Sie eine strengere Autorisierungsrichtlinie festlegen möchten, konfigurieren Sie Ihre Richtlinie für eine explizite CRN des Stammschlüssels oder für eine bestimmte „ Key Protect “-Instanz.

Erteilung einer Service-Autorisierung über die REST-API

  1. Erstellen Sie eine Autorisierungsrichtlinie, um dem Cloud Databases-Dienst den Zugriff auf die Instanz des Key Protect-Dienstes über die IAM-REST-API zu ermöglichen.

Eine vollständige API-Referenz finden Sie in der IAM Policy Management API.

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"
                }
            ]
        }
    ]
}'

Wenn die Serviceautorisierung nicht vorhanden ist, bevor Ihre Bereitstellung mit einem Schlüssel eingerichtet wird, schlägt die Einrichtung fehl.

Wenn Sie eine strengere Autorisierungsrichtlinie festlegen möchten, konfigurieren Sie Ihre Richtlinie für eine explizite CRN des Stammschlüssels oder für eine bestimmte „ Key Protect “-Instanz.

Verwendung des Schlüssels Key Protect

Nachdem Sie Ihren Cloud Databases-Bereitstellungen die Berechtigung zum Verwenden Ihrer Schlüssel erteilt haben, geben Sie den Schlüsselnamen oder CRN jeweils an, wenn Sie Bereitstellungen einrichten. Die Bereitstellung verwendet Ihren Verschlüsselungsschlüssel, um Ihre Daten zu verschlüsseln.

Verwendung des Schlüssels „ Key Protect “ in der Benutzeroberfläche bei der Bereitstellung

Wenn Sie die Bereitstellung über die Katalogseite vornehmen, wählen Sie die Instanz Key Protect und den Schlüssel aus dem Dropdown-Menü aus.

Verwendung des Schlüssels „ Key Protect “ in der CLI bei der Bereitstellung

Verwenden Sie in der CLI den Parameter „ dataservices.encryption.disk “ im JSON-Objekt „parameters“, um Ihrer Service-Instanz eine Root-Key-CRN zuzuweisen.

ibmcloud resource service-instance-create <INSTANCE-NAME> <SERVICE-NAME> <PLAN-NAME> REGION -p '{"dataservices":{"encryption":{"disk":"KMS_KEY_CRN"}}}'

Der Schlüssel „ Key Protect “ muss anhand seiner vollständigen CRN identifiziert werden, nicht nur anhand seiner ID. Ein Key Protect-CRN hat das Format crn:v1:<...>:key:<id>.

Verwendung des Schlüssels „ Key Protect “ in der API bei der Bereitstellung

Verwenden Sie in der API den Parameter dataservices.encryption.disk im Hauptteil der Anfrage.

  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"
          }
      }
    }

Der Schlüssel „ Key Protect “ muss anhand seiner vollständigen CRN identifiziert werden, nicht nur anhand seiner ID. Ein Key Protect-CRN hat das Format crn:v1:<...>:key:<id>.

Schlüsselrotation

Key Protect bietet manuelle und automatische Schlüsselrotation, wobei die Schlüsselrotation bei „ Cloud Databases “-Bereitstellungen unterstützt wird. Wenn Sie einen Schlüssel turnusmäßig wechseln, leitet der Prozess eine Task zum Synchronisieren des KMS-Status ein und Ihre Bereitstellung wird mit dem neuen Schlüssel neu verschlüsselt. Die Aufgabe wird auf der Seite Aufgaben in der Übersicht Ihrer Bereitstellung angezeigt, und die zugehörigen Ereignisse Key Protect und Cloud Databases werden an den Activity Tracker gesendet.

Weitere Informationen finden Sie unter „ Manuelles oder automatisches Drehen “.

Bereitstellung löschen

Wenn Sie eine Bereitstellung löschen, die mit einem Key Protect-Schlüssel geschützt ist, bleibt die Bereitstellung während der Soft-Löschphase (bis zu 9 Tage) weiterhin mit dem Schlüssel verknüpft. Um den Schlüssel innerhalb der Soft-Löschfrist zu löschen, führen Sie eine „ Löschung erzwingen “ des Schlüssels durch. Nach dem Ende des Zeitraums für die vorläufige Löschung kann der Schlüssel ohne Erzwingen gelöscht werden. Um festzustellen, wann Sie den Schlüssel löschen können, überprüfen Sie die Zuordnung zwischen dem Schlüssel und Ihrer Bereitstellung.

Kryptografisches Vernichten

Kryptografisches Vernichten ist eine zerstörerische Aktion. Wenn der Schlüssel gelöscht ist, können Ihre Daten nicht mehr wiederhergestellt werden.

Key Protect ermöglicht es Ihnen, die „ eine erzwungene Löschung einleiten “ eines Schlüssels durchzuführen, der von IBM Cloud®-Diensten verwendet wird, einschließlich Ihrer Gen 2- Cloud Databases-Bereitstellungen. Diese Aktion wird als kryptografisches Vernichten von Daten (Crypto-Shredding) bezeichnet. Durch das Löschen eines in Ihrer Bereitstellung verwendeten Schlüssels werden die Platten gesperrt, die Ihre Daten enthalten, und die Bereitstellung wird inaktiviert. Sie können weiterhin auf die Benutzerschnittstelle und einige Metadaten zugreifen, wie z. B. Sicherheitseinstellungen in der Benutzerschnittstelle, der CLI und der API, Sie können jedoch nicht auf eine der Datenbanken oder auf die in ihnen enthaltenen Daten zugreifen. Die Löschung des Schlüssels wird an Activity Tracker Event Routing als kms.secrets.delete. gesendet.

Eigenen Schlüssel für Sicherungen verwenden

Wenn Sie Key Protect verwenden, können Sie bei der Bereitstellung einer Datenbank auch einen Schlüssel festlegen, um die IBM® Cloud Block Storage for Virtual Private Cloud-Festplatte zu verschlüsseln, auf der die Backups Ihrer Bereitstellung gespeichert sind.

Die Sicherungskopie übernimmt denselben Verschlüsselungsschlüssel wie die Datenbank. Bei der Erstellung der Sicherung aus der Datenbank kann kein anderer Verschlüsselungsschlüssel angegeben werden.

Delegierungsautorisierung erteilen

Damit Ihre Bereitstellung den Schlüssel „ Key Protect “ verwenden kann, müssen Sie bei der Erteilung der Dienstberechtigungen die Delegierung der Autorisierung aktivieren. Wenn die Delegierungsautorisierung nicht vorhanden ist, bevor Ihre Bereitstellung mit einem Schlüssel eingerichtet wird, schlägt die Einrichtung fehl.

Nachdem Sie die Delegierung aktiviert und Ihre Bereitstellung durchgeführt haben, werden in IAM zwei Einträge in Ihren Berechtigungen angezeigt. Der eine Eintrag ist der Eintrag für die Bereitstellung, die ihren Status als Delegierender auflistet. Er ist vom Benutzer erstellt ('User Created').

Beispiel für eine Delegator- Key Protect-Autorisierung
Rolle Quelle Ziel Typ
Delegierender der Autorisierung, Leseberechtigter <cloud-databases> Service Key Protect-Dienst Benutzerdefiniert

Und eine für das „ Block Storage for VPC “-Volume der Service-Instanz und deren Backups (falls vorhanden), wobei die Bereitstellung der Initiator ist.

Beispiel für eine „ Key Protect “-Autorisierung für „ Cloud Object Storage “ von „ Cloud Databases “
Rolle Quelle Ziel Typ
Leseberechtigter Block Storage for VPC Dienstleistung Key Protect-Dienst Erstellt von <cloud-databases-crn>

Schlüssel entfernen

IAM/ Key Protect hindert Sie nicht daran, die Richtlinie zwischen dem Schlüssel und Block Storage for VPC (das zweite Beispiel) zu entfernen, doch dadurch können Ihre Topics/Partitionen möglicherweise nicht mehr wiederhergestellt werden.

Verwendung von Hyper Protect Crypto Services (HPCS)

Bei genehmigten Cloud Databases-Bereitstellungen der Generation 2 können Sie Hyper Protect Crypto Services anstelle von Key Protect verwenden. Die Integration folgt dem auf dieser Seite beschriebenen Standard-BYOK-Prozess mit folgenden Abweichungen:

  1. Ziel-Service bei der IAM-Autorisierung:

    Wählen Sie bei der Erteilung der Service-Autorisierung Hyper Protect Crypto Services (oder hs-crypto in der CLI/API) als Zielservice anstelle von kms. Behalten Sie die Rolle Leser bei und stellen Sie sicher, dass die Option Berechtigungen delegieren (AuthorizationDelegator) ausgewählt ist.

  2. Wichtige CRN bei der Bereitstellung:

    Geben Sie in Ihrer Bereitstellungs-Payload die vollständige CRN des Hyper Protect Crypto Services-Stammschlüssels an (beginnend mit crn:v1:bluemix:public:hs-crypto:... statt kms):

    • CLI / API: Übergeben Sie die CRN mithilfe des Parameters dataservices.encryption.disk:

      "dataservices": {
        "encryption": {
          "disk": "crn:v1:bluemix:public:hs-crypto:<REGION>:a/<ACCOUNT-ID>:<HPCS-INSTANCE-ID>:key:<KEY-ID>"
        }
      }
      
    • Terraform (ibm_database): Übergeben Sie den Schlüssel Hyper Protect Crypto Services (CRN) an das Argument key_protect_key:

      key_protect_key = "crn:v1:bluemix:public:hs-crypto:<REGION>:a/<ACCOUNT-ID>:<HPCS-INSTANCE-ID>:key:<KEY-ID>"
      

Sicherungen von Bereitstellungen übernehmen automatisch denselben Hyper Protect Crypto Services-Schlüssel durch Speicherdelegierung. Für unabhängige regionenübergreifende Sicherungskopien (CRC) kann optional ein separater Zielschlüssel-CRN in der Nutzlast dataservices.encryption.disk der Sicherungskopie angegeben werden.

Häufige Fallstricke

Gehen Sie beim Entfernen von Schlüsseln und Berechtigungen vorsichtig vor. Wenn Sie mehrere Bereitstellungen haben, die dieselben Schlüssel verwenden, kann es passieren, dass durch den Widerruf der Delegierungsberechtigung versehentlich Daten in all diesen Bereitstellungen zerstört werden. Verwenden Sie nach Möglichkeit nicht denselben Schlüssel für mehrere Bereitstellungen.

Wenn Sie die mit Ihrer Instanz verbundenen Daten vernichten möchten, können Sie den Schlüssel löschen. „ Block Storage for VPC “ stellt sicher, dass der Speicher weder lesbar noch beschreibbar ist. Alle anderen Bereitstellungen (oder deren Sicherungen), die denselben Schlüssel verwenden, werden jedoch anschließend Fehler aufweisen.

Wenn Sie benötigen, dass derselbe Schlüssel für mehrere Bereitstellungen und/oder Backups verwendet wird, kann das Entfernen von Schlüsseln und Berechtigungen die folgenden Nebenwirkungen haben. Wenn Sie die Berechtigung für das Volume „ Block Storage for VPC “ löschen (siehe Tabelle 2), ist davon nicht nur die Bereitstellung betroffen, die als Ersteller angegeben ist, sondern auch alle Bereitstellungen, die denselben Schlüssel verwenden. Diese Bereitstellungen werden fehlschlagen, bis Sie ein Support-Ticket eröffnen und die Neuerstellung der Richtlinie beantragen.

Lassen Sie bei der Wiederverwendung von Schlüsseln Vorsicht walten.