VPC-Infrastrukturservices (Virtual Private Cloud) mit kontextbasierten Einschränkungen schützen
Kontextbasierte Beschränkungen geben Kontobesitzern und Administratoren die Möglichkeit, Zugriffsbeschränkungen für zugriffsbeschränkungen für IBM Cloud® Ressourcen zu definieren und durchzusetzen, die auf dem Kontext der anfragen. Der Zugriff auf VPC Infrastructure Services kann mit kontextbasierten Einschränkungen und IAM-Richtlinien (Identity and Access Management) gesteuert werden.
Diese Einschränkungen können mit herkömmlichen, auf der Identität basierenden IAM-Richtlinien kombiniert werden und so eine zusätzliche Schutzebene bieten. Im Gegensatz zu IAM-Richtlinien weisen kontextbasierte Einschränkungen keine Zugriffsberechtigung zu. Bei kontextbasierten Einschränkungen wird geprüft, ob eine Zugriffsanforderung aus einem zulässigen Kontext stammt, der von Ihnen konfiguriert wird. Da sowohl der IAM-Zugriff als auch die kontextbasierten Einschränkungen den Zugriff durchsetzen, bieten kontextbasierte Einschränkungen Schutz sogar bei beeinträchtigten oder falsch verwalteten Berechtigungsnachweisen. Weitere Informationen finden Sie unter Was sind kontextbasierte Einschränkungen?
Ein Benutzer muss über die Administratorrolle für die VPC-Infrastrukturservices verfügen, um Regeln für VPC-Infrastrukturservices zu erstellen, zu aktualisieren oder zu löschen. Ein Benutzer muss über die Rolle 'Editor' oder 'Administrator' für den kontextbasierten Einschränkungsservice verfügen, um Netzzonen erstellen, aktualisieren oder löschen zu können. Ein Benutzer mit der Rolle "Anzeigeberechtigter" für den kontextbasierten Einschränkungsservice kann einer Regel nur Netzzonen hinzufügen.
Der kontextbasierte Einschränkungsservice generiert jedes Mal, wenn eine kontextbasierte Richtlinie umgesetzt wird, Prüfprotokolle. Weitere Informationen finden Sie unter Kontextbasierte Einschränkungen für Monitoring.
Informationen zum Schutz Ihrer VPC-Infrastrukturservices mit kontextbasierten Einschränkungen finden Sie im Lernprogramm Kontextbasierte Einschränkungen zum Schutz Ihrer Ressourcen nutzen.
Integration von VPC Infrastructure Services mit kontextbasierten Einschränkungen
VPC Infrastructure Services ist ein Verbundservice, der aus einer Reihe von untergeordneten Services besteht. Es können kontextbasierte Einschränkungen für IBM Cloud VPC oder einen der zugehörigen untergeordneten Services erstellt werden. Beispiel: Teilnetze, virtuelle Serverinstanzen und Block Storage-Datenträger.
Im Abschnitt Regelerstellung erfahren Sie, wie Sie Regeln mit den erforderlichen Attributen für jeden Service erstellen können.
Netzzonen erstellen
Eine Netzzone stellt eine Zulassungsliste der IP-Adressen dar, von denen eine Zugriffsanforderung erstellt wird. Sie definiert eine Gruppe mit einer oder mehreren Netzadressen, die durch die folgenden Attribute angegeben werden:
- IP-Adressen, die einzelne Adressen, Bereiche oder Subnetze umfassen
- VPCs
- Dienstreferenzen, die den Zugriff von anderen IBM Cloud® Diensten ermöglichen
Servicereferenzen
Eine Servicereferenz, die als Teil einer Netzzone definiert ist, ermöglicht es dem angegebenen Service, mit den eingeschränkten Ressourcen oder APIs zu kommunizieren, die Ziel einer bestimmten kontextbasierten Einschränkungsrichtlinie sind. Die folgende Tabelle enthält Servicereferenzen, die eingeschlossen werden müssen, wenn kontextbasierte Einschränkungen im Kontext von VPC Infrastructure Services verwendet werden. Sie können auch die Service-to-Service-IAM-Berechtigungen in Ihrem Konto überprüfen, wenn Sie entscheiden, welche Servicereferenzen in Ihrer Netzzone hinzugefügt werden sollen. Sie können die Service-zu-Service-Autorisierung in Ihrem Konto finden, indem Sie zu Verwalten-> Zugriff (IAM) navigieren und die Registerkarte Berechtigungen auswählen.
Service mit kontextbasierten Einschränkungen | Betroffener Service | In der Netzzone erforderliche Servicereferenz (en) |
---|---|---|
Cloud Object Storage | VPC-Infrastrukturdienste (is ) |
|
Key Protect | Cloud Block Storage (server-protect ),File Storage for VPC ( is.share ) |
|
Hyper Protect Crypto Service | Cloud Block Storage (server-protect ),File Storage for VPC ( is.share ) |
|
Neue Instanzen des virtuellen Servers | VPC-Infrastrukturdienste (is ) |
|
Verschiedene VPC-Infrastrukturservices- Block Storage-Datenträger, Sicherheitsgruppen, Teilnetze | IBM Kubernetes Service (containers-kubernetes ) |
|
Secrets Manager | VPC-Infrastrukturdienste (is ) |
Erstellen von Netzwerkzonen mit Hilfe der API
Sie können Netzzonen mit dem Befehl create-zone
erstellen. Weitere Informationen finden Sie in den API-Dokumenten.
Das Attribut serviceRef
für VPC-Infrastrukturdienste lautet is
, Cloud Block Storage ist
server-protect
, und File Storage for VPC ist is.share
.
{
"name": "Example zone 1",
"description": "",
"addresses": [
{
"type": "serviceRef",
"ref": {
"service_name": "is"
}
}
]
}
{
"name": "Example zone 1",
"description": "",
"addresses": [
{
"type": "serviceRef",
"ref": {
"service_name": "server-protect"
}
}
]
}
Erstellen von Netzwerkzonen mit Hilfe der CLI
-
Gehen Sie wie folgt vor, um Netzzonen über die Befehlszeilenschnittstelle zu erstellen: Installieren Sie das CBR-CLI-Plug-in.
-
Mit dem Befehl
cbr-zone-create
können Sie Netzadressen, VPCs und Servicereferenzen zu Netzzonen hinzufügen. Weitere Informationen finden Sie im CBR CLI-Referenz.Führen Sie den Befehl
ibmcloud cbr service-ref-targets
aus, um eine Liste der verfügbaren Servicereferenzziele zu suchen Befehl. Derservice_name
für VPC-Infrastrukturdienste istis
, Cloud Block Storage istserver-protect
, und File Storage for VPC istis.share
.Der folgende Beispielbefehl fügt die
is
Service, genannt VPC-Infrastrukturdienste In IBM Cloud® Konsole, zu einer Netzwerkzone.ibmcloud cbr zone-create --name example-zone-1 --description "Example zone 1" --service-ref service_name=is
Der folgende Beispielbefehl fügt die
server-protect
Service, genannt* Cloud Block Storage* In IBM Cloud® Konsole, zu einer Netzwerkzone.ibmcloud cbr zone-create --name example-zone-1 --description "Example zone 1" --service-ref service_name=server-protect
Netzzonen über die Konsole erstellen
- Legen Sie fest, welche Ressourcen Sie Ihrer Zulassungsliste hinzufügen wollen.
- Überprüfen Sie im Abschnitt Servicereferenzen, ob Sie eine Servicereferenz zu Ihrer Netzzone hinzufügen müssen.
- Führen Sie die folgenden Schritte aus, um kontextbasierte Einschränkungen in der Konsole zu erstellen.
Regeln erstellen
In VPC Infrastructure Services benötigt jeder untergeordnete Service bestimmte Attribute in einer kontextbasierten Regel.
Wenn Sie die API, Terraform oder die IBM Cloud-Befehlszeilenschnittstelle (CLI) verwenden. Zum Erstellen, Aktualisieren oder Löschen von IBM Cloud kontextbasierten Einschränkungen können Sie die Zielressource der VPC-Infrastruktur mithilfe von Ressourcenattributen angeben.
Unter VPC-Ressourcenattribute finden Sie die Ressourcenattribute, die einzelnen VPC-Ressourcen entsprechen.
Sie können eine Ressource auswählen, indem Sie die ID des Objekts eingeben. Alternativ können Sie das Platzhalterzeichen *
verwenden, um alle anwendbaren Ressourcen auszuwählen. Das Attribut vpcId:*
legt beispielsweise
die kontextbasierten Einschränkungen fest, die auf alle VPCs im Account angewendet werden sollen. Sie können in dem Befehl auch angeben, auf welche Ressourcengruppe die Richtlinie angewendet werden soll.
Regeln mithilfe der API erstellen
Sehen Sie sich die folgenden Beispielanforderungen zum Erstellen von Regeln an. Weitere Informationen zu v1/rules
API, siehe API-Dokumentation.
Nach der Erstellung einer Regel kann es bis zu 10 Minuten dauern, bis Sie diese Regel aktualisieren können.
Die folgenden Beispielnutzdaten erstellen eine Regel, die die Instanzen des virtuellen Servers schützt und den Zugriff nur über die angegebene Netzzone über einen privaten Endpunkt zulässt.
{
"contexts": [
{
"attributes": [
{
"name": "endpointType",
"value": "private"
},
{
"name": "networkZoneId",
"value": "45ec64065b7c2bf84b3edec803335111"
}
]
}
],
"resources": [
{
"attributes": [
{
"name": "resourceGroupId",
"value": "1171749e3a8545069d04e6fca1ded18f"
},
{
"name": "serviceName",
"value": "is"
},
{
"name": "instanceId",
"value": "*"
}
]
}
]
}
Erstellen von Regeln mit Hilfe der CLI
- Um Regeln über die Befehlszeilenschnittstelle zu erstellen, installieren Sie das CBR-CLI-Plug-in.
- Verwenden Sie den
ibmcloud cbr rule-create
-Befehl, um CBR-Regeln zu erstellen. Weitere Informationen finden Sie in der CLI-Referenz für CBR.
Die Beispiele in diesem Abschnitt sind Durchsetzungsregeln. Sie können Berichte nur erstellen, indem Sie --enforcement-mode report
hinzufügen.
Der folgende CLI-Beispielbefehl erstellt eine kontextbasierte Einschränkungsregel für alle virtuellen Serverinstanzen im aktuellen Konto:
ibmcloud cbr rule-create --zone-id a7eeb5dd8e6bdce670eba1afce18e37f --description "Test CBR for VSIs" --service-name is --resource-attributes "instanceId=*"
Der folgende Beispiel-CLI-Befehl erstellt eine kontextbasierte Einschränkungsregel für einen bestimmten Blockspeicherdatenträger im aktuellen Konto:
ibmcloud cbr rule-create --zone-id a7eeb5dd8e6bdce670eba1afce18e37f --description "Test CBR for volume" --service-name is --resource-attributes "volumeId=UUID_OF_THE_VOLUME"
Der folgende CLI-Beispielbefehl erstellt eine kontextbasierte Einschränkungsregel für alle virtuellen Serverinstanzen im aktuellen Account und beschränkt den Zugriff auf private Endpunkte:
ibmcloud cbr rule-create --context-attributes 'endpointType=private' --zone-id a7eeb5dd8e6bdce670eba1afce18e37f --description "Test CBR for VSIs" --service-name is --resource-attributes "instanceId=*"
Der folgende CLI-Beispielbefehl erstellt eine kontextbasierte Einschränkungsregel für alle virtuellen Serverinstanzen in der Ressourcengruppe und beschränkt den Zugriff auf private Endpunkte:
ibmcloud cbr rule-create --context-attributes 'endpointType=private' --zone-id a7eeb5dd8e6bdce670eba1afce18e37f --description "Test CBR for VSIs" --service-name is --resource-attributes "instanceId=*" --resource-group-id 1171749e3a8545069d04e6fca1ded18f
Regeln in der Konsole erstellen
-
Rufen Sie Verwalten > Kontextbasierte Einschränkungen in der Konsole von IBM Cloud® auf.
-
Wählen Sie Regeln und klicken Sie auf Erstellen.
-
Wählen Sie VPC Infrastructure Services aus und klicken Sie auf Weiter.
-
Erfassen Sie die Regel für alle Ressourcen oder für bestimmte Ressourcen. Weitere Informationen finden Sie unter Ressourcen von VPC Infrasturcture Services schützen. Klicken Sie auf Weiter.
-
Definieren Sie die zulässigen Endpunkttypen.
- Behalten Sie die Einstellung Nein bei, um alle Endpunkttypen zuzulassen.
- Setzen Sie den Schalter auf Ja, um nur bestimmte Endpunkttypen zuzulassen, und treffen Sie dann eine Auswahl in der Liste.
-
Wählen Sie eine oder mehrere bereits erstellte Netzzonen aus oder erstellen Sie eine neue Netzzone, indem Sie auf Erstellen klicken.
Kontexte definieren die Position, von der aus auf Ihre Ressourcen zugegriffen werden kann, und verknüpfen Ihre Netzzone mit Ihrer Regel.
-
Klicken Sie auf Hinzufügen, um Ihre Konfiguration der Zusammenfassung hinzuzufügen. Klicken Sie auf Weiter.
-
Benennen Sie Ihre Regel und wählen Sie aus, wie sie durchgesetzt werden soll. Klicken Sie anschließend auf Erstellen.
Einschränkungen auf der Basis von Monitoring-Kontexten in VPC-Infrastrukturservices
Der kontextbasierte Einschränkungsservice generiert jedes Mal, wenn eine kontextbasierte Richtlinie umgesetzt wird, Prüfprotokolle. Weitere Informationen finden Sie unter Kontextbasierte Einschränkungen für Monitoring.
Fehler aufgrund von kontextbasierten Einschränkungen beheben
Benutzer erhält 403 Benutzer ohne Berechtigung
Wenn eine Anforderung aufgrund falscher Zugriffsberechtigungen verweigert wird oder die Anforderung außerhalb der Netzzone stammt, die in der kontextbasierten Einschränkungsregel definiert ist, hat die Fehlerantwort ein Format, das den folgenden Beispielen ähnelt.
403 Unbefugter Fehler bei Verwendung der Befehlszeilenschnittstelle
Error code: not_authorized and
Error message: the provided token is not authorized
Trace ID: b266a31c-b359-4ecb-8b81-a27c1b2cdb7b
Fehler '403 unauthorized' bei Verwendung der IBM Cloud-Konsole
reference_id b266a31c-b359-4ecb-8b81-a27c1b2cdb7b
code not_authorized
message the provided token is not authorized
403 Unbefugter Fehler bei Verwendung der API
"code":"not_authorized",
"message":"the provided token is not authorized to list floating-ips in this account"
"trace":"b266a31c-b359-4ecb-8b81-a27c1b2cdb7b"
Auffinden kontextbezogener Beschränkungsereignisse
Sie können den Wert von Trace ID
oder Reference ID
verwenden, um in Ihrer Instanz IBM Cloud Logs nach den Ereignissen zu suchen, die durch den kontextbasierten Beschränkungsdienst erzeugt werden. Der Abschnitt requestData.environment
zeigt die Quell-IP-Adresse des Anrufs und andere Informationen, mit denen Sie überprüfen können, warum die Autorisierung verweigert wurde. Mit den Feldern requestData.action
und requestData.resource
kann bestimmt
werden, welcher zugrunde liegenden Ressource der Zugriff verweigert wurde.
Das folgende Beispiel zeigt ein kontextbasiertes Einschränkungsereignis. Einige Felder wurden entfernt, um die Lesbarkeit zu verbessern.
{
"level": "critical",
"action": "context-based-restrictions.policy.eval",
"message": "Context based restriction rendered a deny",
"severity": "critical",
"correlationId": "TXID-b266a31c-b359-4ecb-8b81-a27c1b2cdb7b-df2f912c-80a1-422c-8b17-6092651fea00",
"requestData": {
"action": "is.vpc.vpc.create",
"reqOrder": 0,
"environment": {
"attributes": {
"ipAddress": "192.168.0.1",
"networkType": "public"
}
},
"resource": {
"attributes": {
"accountId": "67db3d7ff3f34220b40e2d81480754c9",
"resource": "NEWRESOURCE",
"vpcId": "NEWRESOURCE",
"resourceGroupId": "d272ce832535498e9142b557ff8638ed",
"region": "au-syd",
"serviceName": "is",
"resourceType": "vpc"
}
},
"subject": {
"attributes": {
"scope": "ibm openid",
"token.account.bss": "67db3d7ff3f34220b40e2d81480754c9",
"id": "IBMid-550009FB7N"
}
}
},
"responseData": {
"decision": "Deny",
"isEnforced": true
}
}
Sie können dann dieselbe Trace-ID oder Referenz-ID verwenden, um das spezifische VPC Infrastructure Service-Ereignis in Ihrer IBM Cloud Logs-Instanz zu betrachten.
{
"action": "is.vpc.vpc.create",
"outcome": "failure",
"message": "Virtual Private Cloud: create vpc -failure",
"severity": "critical",
"dataEvent": false,
"logSourceCRN": "crn:v1:bluemix:public:is:au-syd:a/67db3d7ff3f34220b40e2d81480754c9::vpc:",
"saveServiceCopy": true,
"initiator": {
"id": "IBMid-ABCDEFGH",
"typeURI": "service/security/account/user",
"name": "test@ibm.com",
"authnName": "test",
"authnId": "IBMid-ABCDEFGH",
"host": {
"address": "192.168.0.1",
"addressType": "IPv4"
},
"credential": {
"type": "token"
}
},
"target": {
"id": "crn:v1:bluemix:public:is:au-syd:a/67db3d7ff3f34220b40e2d81480754c9::vpc:",
"typeURI": "is.vpc/vpc",
"name": "",
"resourceGroupId": "crn:v1:bluemix:public:resource-controller::a/67db3d7ff3f34220b40e2d81480754c9::resource-group:d272ce832535498e9142b557ff8638ed"
},
"reason": {
"reasonCode": 403,
"reasonType": "Forbidden",
"reasonForFailure": "Your access token is invalid or does not have the necessary permissions to perform this task"
},
"requestData": {
"generation": "2",
"requestId": "b266a31c-b359-4ecb-8b81-a27c1b2cdb7b"
},
"responseData": {
"responseURI": "/v1/vpcs/"
}
}
Sie können Ereignisse auch mithilfe einer Ressourcen-ID suchen. Eine Ressourcen-ID ist eine UUID und die letzte Kennung in einem CRN. Beispiel:
crn:v1:bluemix:public:is:au-syd:a/67db3d7ff3f34220b40e2d81480754c9::vpc:<resourceID>
Anforderungen für die Bereitstellung von Ressourcen enthalten keine Ressourcen-IDs.
Wenn Sie unter IBM Cloud Logs kein kontextbasiertes Beschränkungsereignis finden, wurde der Zugriff möglicherweise aufgrund von IAM-Zugriffsrichtlinien verweigert. Weitere Informationen finden Sie unter VPC IAM Erste Schritte.
Auswirkung der Client-to-Site-VPN-Datenebene mit kontextbasierten Einschränkungen
Wenn ein Benutzer bei der Konfiguration der Clientauthentifizierung für ein Client-Site-VPN eine Benutzer-ID und einen Kenncode aktiviert
und kontextbasierte Regeln für VPC-Ressourcen erstellt, wirkt sich kontextbasierte Einschränkungen auf die Clientverbindung zum VPN aus. Wenn sich die ferne IP-Adresse des VPN-Clients nicht in der Netzzone befindet, gibt
die Verbindung zum VPN-Server den Fehler Auth Failed
zurück.
Nachdem der VPN-Client eine Verbindung zum VPN-Server hergestellt hat, werden die Anforderungen an den VPE-Endpunkt oder den Cloud-Service-Endpunkt (CSE) mit kontextbasierten Einschränkungen gesteuert. Außerdem ist die Quellen-IP der Anforderungen die VPC- Quellenadressen des Cloud-Serviceendpunkts. Stellen Sie sicher, dass sich die VPC-CSE-Quellenadressen in der CBR-Netzzone befinden. Andernfalls wird die Anforderung verweigert.
Einschränkungen
- Kontextbasierte Einschränkungen schützen nur die Aktionen, die den VPC Infrastructure Services-APIs oder dem
is
-Plug-in über die Befehlszeilenschnittstelle IBM zugeordnet sind. Die SDK-und Terraform-Optionen werden auch unterstützt. Aktionen, die den folgenden Plattform-APIs zugeordnet sind, sind nicht durch kontextbasierte Einschränkungen geschützt:- APIs für Ressourceninstanzliste
- Ressourceninstanz-API zum Löschen von Ressourcen
- APIs für globale Suche
- Globale Tagging-APIs Attach und Detach
- Wenn Sie eine Regel erstellen, kann es bis zu 10 Minuten dauern, bis sie in Kraft tritt.
- Aufgrund einer Einschränkung, die derzeit behoben wird, dürfen kontextbasierte Einschränkungen für Secrets Manager-APIs nicht vorhanden sein, wenn Sie den Service Load balancer for VPC verwenden, da dies dazu führt, dass die Zertifikate nicht an den Listener angehängt werden können, der der Lastausgleichsfunktion zugeordnet ist.