VPC-Infrastrukturservices (Virtual Private Cloud) mit kontextbasierten Einschränkungen schützen

Kontextbasierte Einschränkungen ermöglichen es Kontoinhabern und Administratoren, Zugriffsbeschränkungen für Ressourcen von „ IBM Cloud® “ auf der Grundlage des Kontexts der Zugriffsanfragen festzulegen und durchzusetzen. Der Zugriff auf VPC-Infrastrukturdienste kann durch kontextbasierte Einschränkungen und Identitäts- und Zugriffsverwaltungsrichtlinien (IAM) kontrolliert 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. Kontextbasierte Einschränkungen stellen sicher, dass eine Zugriffsanfrage aus einem von Ihnen konfigurierten, zulässigen Kontext stammt. 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-Infrastrukturdienste verfügen, um Regeln zu erstellen, zu aktualisieren oder zu löschen, die sich auf VPC-Infrastrukturdienste beziehen. Ein Benutzer muss entweder die Rolle „Editor“ oder „Administrator“ für den kontextbasierten Beschränkungsdienst haben, um Netzwerkzonen erstellen, aktualisieren oder löschen zu können. Ein Benutzer mit der Rolle „Viewer“ im kontextbasierten Beschränkungsdienst kann einer Regel nur Netzwerkzonen hinzufügen.

Der kontextbasierte Einschränkungsdienst generiert jedes Mal, wenn eine kontextbasierte Richtlinie durchgesetzt wird, Auditprotokolle. Weitere Informationen finden Sie unter Kontextbasierte Einschränkungen für Monitoring.

Um mit dem Schutz Ihrer VPC-Infrastrukturdienste durch kontextbasierte Einschränkungen zu beginnen, lesen Sie das Tutorial zum Thema „ Sichern Ihrer Ressourcen durch kontextbasierte Einschränkungen “.

Integration von VPC Infrastructure Services mit kontextbasierten Einschränkungen

VPC Infrastructure Services ist ein zusammengesetzter Dienst, der aus einer Reihe von untergeordneten Diensten besteht. Kontextbasierte Einschränkungen können für „ IBM Cloud VPC “ oder einen seiner untergeordneten Dienste erstellt werden, beispielsweise für Subnetze, virtuelle Serverinstanzen und „ Block Storage “-Volumes.

Weitere Informationen dazu, wie Sie Regeln mit den erforderlichen Attributen für jeden Dienst erstellen können, finden Sie im Abschnitt zur Regelerstellung.

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, darunter einzelne Adressen, Adressbereiche oder Subnetze
  • VPCs
  • Dienstreferenzen, die den Zugriff von anderen Diensten von IBM Cloud® ermöglichen

Servicereferenzen

Eine *Service-Referenz, die als Teil einer Netzwerkzone definiert ist, ermöglicht es dem angegebenen Dienst, mit den eingeschränkten Ressourcen oder APIs zu kommunizieren, die von einer kontextbasierten Einschränkungsrichtlinie betroffen sind. Die folgende Tabelle enthält die Dienstreferenzen, die angegeben werden müssen, wenn kontextbasierte Einschränkungen im Zusammenhang mit VPC-Infrastrukturdiensten verwendet werden. Sie können auch die Service-zu-Service-IAM-Autorisierungen in Ihrem Konto einsehen, wenn Sie überlegen, welche Service-Referenzen Sie in Ihrer Netzwerkzone hinzufügen möchten. Sie finden die Service-zu-Service-Autorisierung in Ihrem Konto, indem Sie zu „Verwalten“ -> „Zugriff (IAM) “ gehen und die Registerkarte „Autorisierungen“ auswählen.

Dienstreferenzen für kontextbezogene Einschränkungen erforderlich
Service mit kontextbasierten Einschränkungen Betroffener Service In der Netzwerkzone erforderliche Service-Referenzen
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 mithilfe der API

Sie können Netzzonen mit dem Befehl create-zone erstellen. Weitere Informationen finden Sie in den API-Dokumenten.

Das serviceRef Attribut 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 über die Befehlszeilenschnittstelle (CLI)

  1. Um Netzwerkzonen über die CLI zu erstellen, installieren Sie das CBR-CLI-Plugin.

  2. Verwenden Sie den cbr-zone-create Befehl, um Netzwerkstandorte, VPCs und Dienstreferenzen zu Netzwerkzonen hinzuzufügen. Weitere Informationen finden Sie in der C BR-CLI-Referenz.

    Um eine Liste der verfügbaren Service-Referenzziele anzuzeigen, führen Sie den ibmcloud cbr service-ref-targetsBefehl aus. Die service_name für VPC-Infrastrukturdienste ist is. Cloud Block Storage ist server-protect, und File Storage for VPC ist is.share.

    Der folgende Beispielbefehl fügt den is Dienst, der in der IBM Cloud®-Konsole als „VPC Infrastructure Services“ bezeichnet wird, zu einer Netzwerkzone hinzu.

    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

  1. Legen Sie fest, welche Ressourcen Sie Ihrer Zulassungsliste hinzufügen wollen.
  2. Überprüfen Sie den Abschnitt „Dienstreferenzen“, um festzustellen, ob Sie Ihrer Netzwerkzone eine Dienstreferenz hinzufügen müssen.
  3. Führen Sie die folgenden Schritte aus, um kontextbasierte Einschränkungen in der Konsole zu erstellen.

Regeln erstellen

Innerhalb der VPC-Infrastrukturdienste benötigt jeder untergeordnete Dienst bestimmte Attribute in einer kontextbasierten Regel.

Wenn Sie die API, Terraform oder die CLI „ IBM Cloud “ zum Erstellen, Aktualisieren oder Löschen von kontextbasierten Einschränkungen für „ IBM Cloud “ verwenden, können Sie die Ziel-VPC-Infrastrukturressource 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.

Mit der folgenden Beispiel-Nutzlast wird eine Regel erstellt, die die virtuellen Serverinstanzen schützt und den zugriff nur von der angegebenen Netzwerkzone über einen privaten Endpunkt erlaubt.

{
  "contexts": [
    {
      "attributes": [
        {
          "name": "endpointType",
          "value": "private"
        },
        {
          "name": "networkZoneId",
          "value": "45ec64065b7c2bf84b3edec803335111"
        }
      ]
    }
  ],
  "resources": [
    {
      "attributes": [
        {
          "name": "resourceGroupId",
          "value": "1171749e3a8545069d04e6fca1ded18f"
        },
        {
          "name": "serviceName",
          "value": "is"
        },
        {
          "name": "instanceId",
          "value": "*"
        }
      ]
    }
  ]
}

Regeln über die Befehlszeilenschnittstelle erstellen

  1. Um Regeln über die Befehlszeilenschnittstelle zu erstellen, installieren Sie das CBR-CLI-Plug-in.
  2. 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 folgenden Beispiele 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

  1. Rufen Sie Verwalten > Kontextbasierte Einschränkungen in der Konsole von IBM Cloud® auf.

  2. Wählen Sie „ Regeln “ aus und klicken Sie auf „ Erstellen “.

  3. Wählen Sie VPC Infrastructure Services aus und klicken Sie auf Weiter.

  4. Wählen Sie als Geltungsbereich der Regel „ Alle Ressourcen “ oder „ Bestimmte Ressourcen “ aus. Weitere Informationen finden Sie unter Schutz der Ressourcen der VPC-Infrastrukturdienste. Klicken Sie auf Weiter.

  5. 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.
  6. Wählen Sie eine oder mehrere vorhandene Netzwerkzonen aus oder erstellen Sie eine Netzwerkzone, 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.

  7. Klicken Sie auf „Hinzufügen“, um Ihre Konfiguration zur Übersicht hinzuzufügen. Klicken Sie auf Weiter.

  8. 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änkungsdienst generiert jedes Mal, wenn eine kontextbasierte Richtlinie durchgesetzt wird, Auditprotokolle. Weitere Informationen finden Sie unter Kontextbasierte Einschränkungen für Monitoring.

Fehler aufgrund von kontextbasierten Einschränkungen beheben

403 Nicht autorisierte Fehlermeldungen

Wenn eine Anfrage aufgrund ungeeigneter Zugriffsberechtigungen abgelehnt wird oder die Anfrage außerhalb der Netzwerkzone stammt, die in der kontextbasierten Einschränkungsregel definiert ist, sieht die Fehlermeldung ähnlich wie in den folgenden Beispielen aus.

403 Nicht autorisierter Fehler in der CLI-Antwort

Error code: not_authorized and
Error message: the provided token is not authorized
Trace ID: b266a31c-b359-4ecb-8b81-a27c1b2cdb7b

403 Unauthorized Error in der Konsole „ IBM Cloud “

reference_id b266a31c-b359-4ecb-8b81-a27c1b2cdb7b
code not_authorized
message the provided token is not authorized

403 Nicht autorisierter Fehler in der API-Antwort

"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 ist 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. Siehe das folgende 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 kein kontextbasiertes Einschränkungsereignis im finden IBM Cloud Logs, ist es möglich, dass der Zugriff aufgrund von IAM-Zugriffsrichtlinien verweigert wurde. Weitere Informationen finden Sie im VPC IAM-Einführungshandbuch.

Auswirkung der Client-to-Site-VPN-Datenebene mit kontextbasierten Einschränkungen

Wenn Sie in der Client-Authentifizierungskonfiguration für ein Client-zu-Site-VPN die Benutzer-ID und den Passcode aktivieren und kontextbasierte Regeln für VPC-Ressourcen erstellen, wird die Clientverbindung zum VPN durch kontextbasierte Einschränkungen beeinträchtigt. 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