Service-to-Service-Berechtigungen für Block Storage for VPC einrichten
Richten Sie Service-zu-Service-Berechtigungen zwischen Block Storage for VPC und Key Protect für die vom Kunden verwaltete Verschlüsselung oder mit dem Backup-Dienst für automatisierte Snapshots ein. Konfigurieren Sie die IAM-Berechtigungen, um die erforderlichen Zugriffsrechte zu gewähren.
Übersicht
Bei einer Autorisierung ist der Quellenservice der Service, dem Zugriff auf den Zielservice erteilt wird. Die Rollen, die Sie auswählen, definieren die Zugriffsebene für den Quellenservice. Der Zielservice ist der Service, dem Sie basierend auf den von Ihnen zugewiesenen Rollen die Berechtigung für den Zugriff durch den Quellenservice erteilen. Im Allgemeinen kann sich ein Quelldienst im selben Konto befinden, in dem die Autorisierung erstellt wurde, oder in einem anderen Konto. Die Berechtigung muss in dem Konto erstellt werden, das Eigentümer des Zieldienstes ist.
Um einen verschlüsselten Datenträger mit vom Kunden verwalteten CRKs erstellen zu können, müssen Sie Service-zu-Service-Autorisierung zwischen dem Blockservice und dem Key Management Service Ihrer Wahl einrichten.
Die Hyper Protect Crypto Services sind veraltet. Kunden können bestehende Instanzen bis zum 20. März 2027 nutzen. Weitere Informationen finden Sie unter IBM Cloud Hyper Protect Crypto Services wird nicht mehr unterstützt. Um einen kontinuierlichen Schutz zu gewährleisten, sollten Sie erwägen, Ihre bestehenden Verschlüsselungsschlüssel auf eine dedizierte Key Protect-Instanz zu migrieren. Weitere Informationen finden Sie im Migrationsleitfaden.
Wenn Sie Sicherungsmomentaufnahmen Ihrer Block Storage for VPC-Datenträger erstellen möchten, muss der Sicherungsservice berechtigt sein, mit Block Storage for VPC, Momentaufnahmen für VPC und Virtual Server for VPC-Services zu arbeiten. Weitere Informationen finden Sie unter Service-zu-Service-Berechtigungen für den Sicherungsservice einrichten.
Weitere Informationen zu Berechtigungen finden Sie unter „ Verwendung von Berechtigungen zur Gewährung des Zugriffs zwischen Diensten und Benutzerrollen “.
Erstellen einer Service-zu-Service-Autorisierung für vom Kunden verwaltete Verschlüsselung in der Konsole
Wenn die Berechtigung für die kontoübergreifende Verschlüsselung benötigt wird, muss die Berechtigung in dem Zielkonto erstellt werden, das den Verschlüsselungsschlüssel besitzt.
- Gehen Sie in der IBM Cloud-Konsole zu Verwalten > Zugriff (IAM).
- Klicken Sie in der Seitenleiste auf Zugriff verwalten und wählen Sie Berechtigungen.
- Klicken Sie auf der Seite Berechtigungen verwalten auf Erstellen.
- Im Quelle wählen Sie im Abschnitt Quellkonto. Das Quellkonto ist der Ort, an dem die Blockspeicher-Volumes erstellt werden sollen.
- Wenn das Ziel darin besteht, einem anderen Konto die Verwendung eines CRK des Zielkontos zu gestatten, wählen Sie Bestimmtes Konto und geben die 32-stellige Konto-ID ein. Klicken Sie anschließend auf Weiter.
- Andernfalls wählen Sie Dieses Konto. Klicken Sie anschließend auf Weiter.
- Wählen Sie für den Quelldienst Cloud Block Storage aus der Liste. Klicken Sie auf Weiter.
- Wählen Sie den Bereich aus, indem Sie auf Alle Ressourcen klicken.
- Klicken Sie auf Weiter.
- Wählen Sie für den Zielservice KeyProtect aus der Liste aus.
- Wählen Sie die Rolle aus
Reader. - Aktivieren Sie das Kontrollkästchen, um die Delegierung der Autorisierung durch Quellenservices und abhängige Services zu aktivieren.
- Klicken Rezension und prüfen Sie Ihre Auswahl.
- Klicken Sie auf Autorisieren.
Erstellen einer Dienst-zu-Dienst-Autorisierung für die kontoübergreifende Wiederherstellung in der Konsole
Die folgenden Schritte autorisieren den Block Storage-Dienst eines Kontos zur Verwendung eines Snapshots, der von einem anderen Konto erstellt wurde, um Volumes wiederherzustellen. Die Schritte müssen von dem Konto ausgeführt werden, das Eigentümer
des Snapshots ist, der freigegeben werden soll. Das empfangende Konto muss sicherstellen, dass sein Admin-Benutzer die SnapshotRemoteAccountRestorer-Rolle in IAM hat, bevor er eine Datenträgerwiederherstellung mit der CRN des
freigegebenen Snapshots startet.
- Klicken Sie auf der Seite Berechtigungen verwalten auf Erstellen.
- Wählen Sie auf der Seite Service-Berechtigung erteilen das Quellkonto aus.
- Da das Ziel darin besteht, die Verwendung eines Snapshots von einem anderen Konto zu ermöglichen, wählen Sie ein Bestimmtes Konto.
- Geben Sie die 32-stellige Konto-ID ein.
- Klicken Sie auf Weiter.
- Wählen Sie für den Quelldienst VPC-Infrastrukturdienste aus der Liste aus. Klicken Sie auf Weiter.
- Wählen Sie den Bereich aus, indem Sie auf Spezifische Ressourcen klicken.
- Wählen Sie Resource type und Block Storage for VPC aus.
- Klicken Sie auf Weiter.
- Wählen Sie für den Zieldienst VPC-Infrastrukturdienste aus der Liste.
- Wählen Sie den Bereich aus, indem Sie auf Spezifische Ressourcen klicken.
- Klicken Sie auf Attribut auswählen.
- Wählen Sie aus der Liste Ressourcentyp.
- Wählen Sie im nächsten Feld Block Storage Snapshots für VPC.
- Wenn Sie die Autorisierung auf einen bestimmten Snapshot beschränken möchten, klicken Sie auf Bedingung hinzufügen.
- Klicken Sie auf Attribut auswählen und wählen Sie Schnappschuss-ID.
- Geben Sie die ID des Snapshots ein. Klicken Sie auf Weiter
- Wählen Sie die Rolle aus
Snapshot Remote Account Restorer. - Klicken Rezension und prüfen Sie Ihre Auswahl.
- Klicken Sie auf Autorisieren.
Service-to-Service-Autorisierung für kundenverwaltete Verschlüsselung über die Befehlszeilenschnittstelle erstellen
Führen Sie den Befehl ibmcloud iam authorization-policy-create aus, um Autorisierungsrichtlinien für den Block-Dienst zu erstellen, damit dieser mit Key Management Services interagieren kann ( Key Protect ). Der Quelldienst ist
server-protect und der Zieldienst ist kms. Die Rolle, die Sie zuweisen müssen, ist Reader. Im folgenden Beispiel wird eine Autorisierungsrichtlinie zwischen dem Block-Dienst und Key Protect erstellt.
ibmcloud iam authorization-policy-create server-protect kms Reader
Creating authorization policy under account a1234567 as test.user@ibm.com...
OK
Führen Sie den Befehl ibmcloud iam authorization-policies aus, um die Serviceberechtigungen aufzulisten, die bereits für das Konto vorhanden sind. Das folgende Beispiel zeigt, dass der Block-Dienst mit einem CRK verschlüsselt werden
kann, der in Key Protect oder Hyper Protect Crypto Services gespeichert ist.
ibmcloud iam authorization-policies
Getting authorization policies under account a1234567 as test.user@ibm.com...
OK
ID: 1f722de4-c3e6-4765-b0d3-482ec77a04f8
Source service name: server-protect
Source service instance: All instances
Target service name: kms
Target service instance: 51042d7f-f0df-4915-bd39-6a49957c9175
Roles: Reader
Weitere Informationen zu allen Parametern, die für diesen Befehl verfügbar sind, finden Sie unter ibmcloud iam authorization-policy-create.
Erstellen einer Service-zu-Service-Autorisierung für die kontenübergreifende Verschlüsselung über die CLI
Wenn die Berechtigung für die kontoübergreifende Verschlüsselung benötigt wird, muss die Berechtigung in dem Zielkonto erstellt werden, das den Verschlüsselungsschlüssel besitzt. Führen Sie den Befehl ibmcloud iam authorization-policy-create aus, um Autorisierungsrichtlinien für den Block-Dienst des Quellkontos zu erstellen, damit dieser mit den Key Management Services ( Key Protect ) des Zielkontos interagieren kann. Der Quelldienst ist server-protect und der Zieldienst
ist kms. Die Rolle, die Sie zuweisen müssen, ist Reader. Im folgenden Beispiel wird eine Autorisierungsrichtlinie zwischen dem Block-Dienst und Key Protect erstellt.
- Erstellen Sie eine JSON-Datei mit den folgenden Informationen für die Autorisierungsrichtlinien in Ihrem lokalen Dokumentenordner.
'{ "description":"Reader and Delegator role for KeyProtect service instance", "resources": [ {"attributes":[ {"name":"Account-A-CRK","operator":"stringEquals","value":"<CRK-Account-A-ID>"}, {"name":"Hyper-Protect-Crypto-Services","operator":"stringEquals","value":"kms"}]}], "roles": [ {"role_id":"crn:v1:bluemix:public:iam::::role:AuthorizationDelegator"}, {"role_id":"crn:v1:bluemix:public:iam::::serviceRole:Reader"}], "subjects": [ {"attributes": [ {"name":"Cloud Block Storage","value":"server-protect"}, {"name":"Account-B","value":"<Account-B-ID>"}]}], "type":"authorization", }' - Verwenden Sie dann die JSON-Dateien, um den folgenden CLI-Befehl auszuführen.
Die kontoübergreifende Autorisierung ist einseitig und spezifisch für Schlüssel und Dienst. Wenn Konto A die Verwendung seines Schlüssels durch den Dateidienst von Konto B genehmigt, kann Konto B den CRK von Konto A zur Verschlüsselung der Aktien von Konto B verwenden. Konto A kann jedoch nicht die Root-Schlüssel von Konto B verwenden, um die Anteile von Konto A zu verschlüsseln.ibmcloud iam authorization-policy-create --file ~/Documents/policy.json
Erstellen einer Dienst-zu-Dienst-Autorisierung für die kontoübergreifende Wiederherstellung über die CLI
Wenn die Berechtigung für die kontenübergreifende Datenwiederherstellung benötigt wird, muss die Berechtigung in dem Zielkonto erstellt werden, das Eigentümer des Snapshots ist. Führen Sie den Befehl ibmcloud iam authorization-policy-create aus, um den Dienst Block Storage des Quellkontos zu autorisieren, einen Snapshot zu verwenden, der vom Zielkonto erstellt wurde, um Volumes wiederherzustellen. Das empfangende Konto muss sicherstellen, dass sein Admin-Benutzer über die SnapshotRemoteAccountRestorer-Rolle
in IAM verfügt, bevor er eine Datenträgerwiederherstellung mit der CRN des freigegebenen Snapshots startet.
- Erstellen Sie eine JSON-Datei mit den folgenden Informationen für die Autorisierungsrichtlinien in Ihrem lokalen Dokumentenordner.
'{ "type":"authorization", "description":"Providing the Block Storage service access to restore from a Snapshot of another account ", "subjects": [{"attributes": [ {"name":"Block Storage for VPC","value":"server-protect"}, {"name":"Remote-restorer-account","value":"<Remote-Restorer-Account-ID>"}]}], "roles": [{"role_id":"crn:v1:bluemix:public:iam::::role:SnapshotRemoteAccountRestorer"}], "resources": [{"attributes": [ {"name":"Snaphot-owner-account","operator":"stringEquals","value":"<Snapshot-Owner-Account-ID>"}, {"name":"snapshotId","operator":"stringEquals","value":"*"}]}], }' - Verwenden Sie dann die JSON-Dateien, um den folgenden CLI-Befehl auszuführen.
ibmcloud iam authorization-policy-create --file ~/Documents/policy.json
Service-to-Service-Berechtigung für kundenverwaltete Verschlüsselung mit der API erstellen
Senden Sie eine Anfrage an die IAM Policy Management-API, um die Service-zu-Service-Autorisierung für den Block-Service des Quellvolumens zu erstellen, damit dieser mit einer Instanz des Key Management Service interagieren kann.
-
Das folgende Beispiel zeigt, wie Sie den Blockierungsservice
is.server-protect(Quelle) für die Interaktion mit dem Key Protect-Servicekms(Ziel) mit der Rolle Leseberechtigter berechtigen.curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{ "type":"access", "description":"Reader role for the Block service to interact with the KeyProtect service.", "subjects": [{"attributes":[{"name":"Cloud Block Storage","value":"server-protect"}]}], "roles":[{"role_id":"crn:v1:bluemix:public:iam::::role:Reader"}], "resources":[{"attributes": [{"name":"KeyProtect","value":"kms"}]}] }'
Erstellen einer Service-zu-Service-Autorisierung für die kontenübergreifende Verschlüsselung mit der API
Senden Sie eine Anfrage an die IAM Policy Management-API, um die Service-zu-Service-Autorisierung für den Block Storage-Dienst des Quellkontos zu erstellen, damit dieser mit einer Instanz des Key Management Service des Zielkontos interagieren kann. Die Anfrage muss von dem Konto aus gestellt werden, das den Stammschlüssel des Kunden in seinem KMS besitzt.
-
Das folgende Beispiel zeigt, wie Sie den Blockdienst autorisieren können
is.server-protecteines Kontos (Quelle) zur Interaktion mit demHyper Protect Crypto Services Servicehs-cryptoeines anderen Kontos (Ziel) mit dem_ Leser_ Und_ Autorisierungsdelegator_ Rollen.curl -X POST "https://iam.cloud.ibm.com/v1/policies" \ -H "Authorization: <Auth Token>" \ -H 'Content-Type: application/json' \ -d '{ "type":"authorization", "description":"Reader and Delegator access to KeyProtect service instance", "subjects": [ {"attributes": {"name":"Cloud Block Storage","value":"server-protect"}, {"name":"Account-B","value":"<Account-B-ID>"}]}], "roles": [{"role_id":"crn:v1:bluemix:public:iam::::role:AuthorizationDelegator"},{"role_id":"crn:v1:bluemix:public:iam::::serviceRole:Reader"}], "resources": [ {"attributes":[ {"name":"Account-A-CRK","operator":"stringEquals","value":"<CRK-Account-A-ID>"}, {"name":"Hyper-Protect-Crypto-Services","operator":"stringEquals","value":"kms"}]}], }'
Die kontoübergreifende Autorisierung ist einseitig und spezifisch für Schlüssel und Dienst. Wenn Konto A die Verwendung seines Schlüssels durch den Dateidienst von Konto B genehmigt, kann Konto B den CRK von Konto A zur Verschlüsselung der Aktien von Konto B verwenden. Konto A kann jedoch nicht die Root-Schlüssel von Konto B verwenden, um die Anteile von Konto A zu verschlüsseln.
Erstellen einer Dienst-zu-Dienst-Autorisierung für die kontoübergreifende Wiederherstellung mit der API
Die folgende API-Anforderung autorisiert den Block Storage-Dienst des Quellkontos, einen Snapshot zu verwenden, der vom Zielkonto erstellt wurde, um Volumes wiederherzustellen. Dieser Aufruf muss von dem Konto erfolgen, das Eigentümer des Schnappschusses
ist. Das empfangende Quellkonto muss sicherstellen, dass sein Admin-Benutzer die Rolle SnapshotRemoteAccountRestorer in IAM hat, bevor er eine Volume-Wiederherstellung mit der CRN des freigegebenen Snapshots startet.
curl -X POST "https://iam.cloud.ibm.com/v1/policies"\
-H 'Content-Type: application/json\
-d '{
"type":"authorization",
"description":"Providing the Block Storage service access to restore from a Snapshot of another account ",
"subjects": [{"attributes": [
{"name":"BCloud Block Storage","value":"server-protect"},
{"name":"Remote-restorer-account","value":"<Remote-Restorer-Account-ID>"}]}],
"roles": [{"role_id":"crn:v1:bluemix:public:iam::::role:SnapshotRemoteAccountRestorer"}],
"resources": [{"attributes": [
{"name":"Snaphot-owner-account","operator":"stringEquals","value":"<Snapshot-Owner-Account-ID>"},
{"name":"snapshotId","operator":"stringEquals","value":"*"}]}],
}'
Wenn Sie den Zugriff auf einen bestimmten Snapshot beschränken wollen, verwenden Sie bei der Definition Ihrer Ressourcen die Snapshot-ID anstelle von *.
Service-zu-Service-Autorisierung für kundenverwaltete Verschlüsselung mit Terraform erstellen
Erstellen Sie eine Berechtigungsrichtlinie zwischen dem Blockservice und den Schlüsselmanagementservices, indem Sie das Ressourcenargument ibm_iam_authorization_policy in Ihrer Datei main.tf verwenden.
Im folgenden Beispiel wird eine Berechtigungsrichtlinie zwischen dem Blockservice und Key Protect erstellt, wenn sie angewendet wird.
resource "ibm_iam_authorization_policy" "mypolicy4keyprotect" {
source_service_name = "server-protect"
target_service_name = "kms"
roles = ["Reader"]
}
Weitere Informationen zu den Argumenten und Attributen finden Sie in der Terraform-Dokumentation für Berechtigungsressourcen.
Erstellen einer Service-zu-Service-Autorisierung für die kontenübergreifende Verschlüsselung mit Terraform
-
Terraform unterstützt die Konfiguration von zwei verschiedenen Konten fürIBM Anbieter. Der Anbieter ohne Alias wird als Standardanbieter betrachtet. Siehe das folgende Beispiel, in dem zwei IBM-Konten angegeben sind und das zweite Konto den Alias verwendet
team_account. Diese Konfiguration muss bezeichnet werden alsibm.team_accountspäter.terraform { required_providers { ibm = { source = "IBM-Cloud/ibm" version = ">= 1.12.0" } } } provider "ibm" { ibmcloud_api_key = var.ibmcloud_api_key region = var.region ibmcloud_timeout = var.ibmcloud_timeout } provider "ibm" { alias = "team_account" ibmcloud_api_key = var.ibmcloud_api_key_second_account region = var.region ibmcloud_timeout = var.ibmcloud_timeout }Weitere Informationen zu den Argumenten und Attributen finden Sie unter IBM Cloud Anbieter.
-
Um die IAM-Autorisierung zwischen dem Schlüsselverwaltungsdienst eines Kontos und dem Blockspeicherdienst eines anderen Kontos zu erstellen, verwenden Sie die Ressource
ibm_iam_authorization_policy. Im folgenden Beispiel wird eine Autorisierung zwischen dem Dienst Key Protect und dem Dateidienst der beiden Konten eingerichtet.resource "ibm_iam_authorization_policy" "policy" { source_service_name = "server-protect" source_service_account = "<volume-account-id>" target_service_name = "kms" target_resource_instance_id = ibm_kms_key.key.instance_id roles = ["Reader", "Authorization Delegator"] description = "Authorization Policy" }Diese Terraform-Ressource muss auch den Provider-Alias enthalten (in unserem Beispiel
ibm.team_account) mit dem Kontoibmcloud_api_keywo der Verschlüsselungsschlüssel hingehört.Weitere Informationen zu den Argumenten und Attributen finden Sie unter ibm_iam_authorization_policy.
Erstellen einer Dienst-zu-Dienst-Autorisierung für die kontoübergreifende Wiederherstellung von Terraform
-
Konfigurieren Sie die beiden IBM Konten für IBM provider. Siehe das Beispiel im vorherigen Abschnitt.
-
Um die IAM-Berechtigung für den Block Storage-Dienst eines Kontos zu erstellen, um einen Snapshot zu verwenden, der von einem anderen Konto erstellt wurde, um Volumes wiederherzustellen, verwenden Sie die Ressource
ibm_iam_authorization_policy.resource "ibm_iam_authorization_policy" "policy" { source_service_name = "server-protect" source_service_account = "<volume-account-id>" target_service_name = "ibm_is_snapshot" target_resource_instance_id = ibm_is_snapshot.snapshot.instance_id target_service_account = "<snapshot-account-id>" roles = ["SnapshotRemoteAccountRestorer"] description = "Authorization Policy" }Diese Terraform-Ressource muss auch den Provider-Alias enthalten (in unserem Beispiel
ibm.team_account) mit dem Kontoibmcloud_api_keywo der Verschlüsselungsschlüssel hingehört.Weitere Informationen zu den Argumenten und Attributen finden Sie unter ibm_iam_authorization_policy.