Einfache Zugriffsebene erstellen

Auf dieser Seite wird allgemein beschrieben, wie Sie grundlegende Zugriffsebenen erstellen. Informationen zum Erstellen benutzerdefinierter Zugriffsebenen und zum Verwenden des erweiterten Modus in der Google Cloud Console finden Sie unter Benutzerdefinierte Zugriffsebene erstellen.

Auf dieser Seite werden gezieltere Implementierungen von Zugriffsebenen beschrieben. Betrachten Sie die folgenden Beispiele:

Hinweis

Einfache Zugriffsebene erstellen

Console

So erstellen Sie eine einfache Zugriffsebene:

  1. Öffnen Sie die Seite Access Context Manager in der Cloud Console.

    Zur Seite "Access Context Manager"

  2. Wählen Sie Ihre Organisation aus, wenn Sie dazu aufgefordert werden.

  3. Klicken Sie oben auf der Seite Access Context Manager auf Neu.

  4. Im Bereich Neue Zugriffsebene:

    1. Geben Sie im Feld Titel der Zugriffsebene einen Titel für die Zugriffsebene ein. Der Titel darf maximal 50 Zeichen lang sein, mit einem Buchstaben beginnen und darf nur Zahlen, Buchstaben, Unterstriche und Leerzeichen enthalten.

      Standardmäßig erstellen Sie Bedingungen im Basismodus. Informationen zum Erstellen von Bedingungen im erweiterten Modus finden Sie unter Benutzerdefinierte Zugriffsebene erstellen.

    2. Klicken Sie im Abschnitt Bedingungen auf Attribut hinzufügen und wählen Sie dann das Attribut aus, das Sie der Bedingung hinzufügen möchten.

      Eine vollständige Liste der Attribute, die Sie einfügen können, finden Sie unter Attribute für Zugriffsebenen.

      Wenn auf der Zugriffsebene zum Beispiel berücksichtigt werden soll, woher aus Ihrem Netzwerk eine Anfrage kommt, wählen Sie das Attribut IP-Subnetzwerke aus.

      Wiederholen Sie diesen Schritt, um der gleichen Bedingung mehrere Attribute hinzuzufügen. Wenn eine Bedingung mehrere Attribute hat, müssen alle Attribute von der Zugriffsanfrage erfüllt werden.

    3. Verwenden Sie die Option Wenn die Bedingung erfüllt ist, um anzugeben, ob eine Anfrage auf der Zugriffsebene alle angegebenen Attribute erfüllen muss (TRUE) oder diese festgelegten Attribute nicht erfüllen darf (FALSE).

      Wenn Sie beispielsweise Anfragen aus einem bestimmten IP-Adressbereich Ihres Netzwerks ablehnen möchten, geben Sie den IP-Adressbereich mit dem Attribut IP Subnetworks an und setzen Sie die Bedingung auf FALSE.

    4. Klicken Sie, falls gewünscht, auf Weitere Bedingung hinzufügen, um der Zugriffsebene eine zusätzliche Bedingung hinzuzufügen. Wiederholen Sie dann die beiden vorherigen Schritte.

      Wenn Sie beispielsweise den Zugriff auf eine Teilmenge von IP-Adressen innerhalb eines breiteren IP-Adressbereichs verweigern möchten, erstellen Sie eine neue Bedingung, geben Sie den Teilmengen-IP-Adressbereich für das Attribut IP Subnetworks an und legen Sie die Bedingung so fest, dass sie FALSE zurückgibt.

      Wiederholen Sie diesen Schritt, um einer Zugriffsebene mehrere Bedingungen hinzuzufügen.

    5. Verwenden Sie im Abschnitt Bedingungen die Option Bedingungen kombinieren, um festzulegen, ob Anfragen auf dieser Zugriffsebene alle dafür festgelegten Bedingungen (AND) oder nur eine der Bedingungen (OR) erfüllen müssen.

    6. Klicken Sie auf Speichern.

gcloud

Hinweis

Verwenden Sie den Befehl gcloud access-context-manager levels create, um eine Zugriffsebene mit dem gcloud-Befehlszeilentool zu erstellen.

gcloud access-context-manager levels create LEVEL_NAME OPTIONS \
    --policy=POLICY_NAME

Wobei:

  • LEVEL_NAME ist der eindeutige Name für die Zugriffsebene. Dieser Name muss mit einem Buchstaben beginnen und darf nur Buchstaben, Zahlen und Unterstriche enthalten. Der Name darf maximal 50 Zeichen lang sein.

  • OPTIONS sind die erforderlichen Optionen aus der folgenden Tabelle.

    Optionen
    basic-level-spec

    .yaml-Datei, in der eine oder mehrere Bedingungen für die Zugriffsebene definiert sind.

    title

    Kurzer Titel für die Zugriffsebene; Der Titel der Zugriffsebene wird in der Cloud Console angezeigt.

    combine-function

    (Optional) Legt fest, wie Bedingungen kombiniert werden.

    Gültige Werte: AND, OR

    description

    (Optional) Ausführliche Beschreibung der Zugriffsebene

  • POLICY_NAME ist der Name der Zugriffsrichtlinie Ihrer Organisation

Optional können Sie beliebige allgemeine gcloud-Flags angeben.

.yaml-Datei für die Option basic-level-spec

Wenn Sie das gcloud-Befehlszeilentool verwenden, um eine Zugriffsebene zu erstellen, müssen Sie eine .yaml-Datei für die Option basic-level-spec bereitstellen. In der .yaml-Datei werden eine oder mehrere Bedingungen für die Zugriffsebene definiert. Bedingungen müssen mindestens ein Attribut enthalten.

Eine vollständige Liste der Attribute, die Sie in die .yaml-Datei aufnehmen können, finden Sie unter Attribute für Zugriffsebenen.

Weitere Informationen über Zugriffsebenen und .yaml-Dateien finden Sie unter YAML-Beispieldatei für eine Zugriffsebene.

Beispielbefehl

gcloud access-context-manager levels create Device_Trust \
    --basic-level-spec=corpdevspec.yaml \
    --combine-function=AND \
    --description='Access level that conforms to corporate spec.' \
    --title='Device_Trust Extended'

API

Hinweis

Rufen Sie accessLevels.create auf, um eine Zugriffsebene zu erstellen.

POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels

Wobei:

  • POLICY_NAME ist der Name der Zugriffsrichtlinie Ihrer Organisation.

Anfragetext

Der Anfragetext muss eine AccessLevel-Ressource enthalten, die die gewünschten Bedingungen für die neue Zugriffsebene angibt.

Antworttext

Bei erfolgreicher Ausführung enthält der Antworttext für den Aufruf eine Ressource Operation mit Informationen zum Vorgang POST.

Beispielimplementierungen

In den folgenden Beispielen werden einige praktische Möglichkeiten beschrieben, mit denen Sie Zugriffsebenen für eine Organisation implementieren können. In diesen Beispielen wird davon ausgegangen, dass die Organisation bereits eine Zugriffsrichtlinie hat.

Zugriff auf ein Unternehmensnetzwerk beschränken

In diesem Beispiel wird beschrieben, wie Sie eine Bedingung für eine Zugriffsebene erstellen können, die den Zugriff nur aus einem angegebenen Bereich von IP-Adressen zulässt (z. B. innerhalb eines Unternehmensnetzwerks).

Durch das Einschränken des Bereichs von IP-Adressen, denen Zugriff gewährt wird, können Sie die Datenexfiltration für einen Angreifer innerhalb oder außerhalb der Organisation erschweren.

Angenommen, Sie möchten eine Zugriffsebene erstellen, mit der eine Gruppe interner Prüfer auf den Cloud-Logging-Dienst für ein Projekt mit dem Namen sensible Daten zugreifen kann. Hierfür können Sie den Geräten der Prüfer IP-Adressen zwischen 203.0.113.0 und 203.0.113.127 in einem Subnetz zuweisen. Sie wissen, dass diesem Subnetz keine anderen Geräte als die der Prüfer zugewiesen sind.

Console

  1. Öffnen Sie die Seite Access Context Manager in der Cloud Console.

    Zur Seite "Access Context Manager"

  2. Wählen Sie Ihre Organisation aus, wenn Sie dazu aufgefordert werden.

  3. Klicken Sie oben auf der Seite Access Context Manager auf Neu.

  4. Klicken Sie im Bereich Neue Zugriffsebene im Abschnitt Bedingungen auf Attribut hinzufügen und dort auf IP-Subnetzwerke.

  5. Geben Sie in das Feld IP-Subnetzwerke einen oder mehrere Bereiche von IPv4- oder IPv6-Adressen als CIDR-Blöcke ein.

    In diesem Beispiel geben Sie in das Feld IP-Subnetzwerke den IP-Adressenbereich 203.0.113.0/25 ein, um den Zugriff auf die Prüfer zu beschränken.

  6. Klicken Sie auf Speichern.

gcloud

  1. Erstellen Sie eine .yaml-Datei für eine Zugriffsebene und legen Sie dort einen oder mehrere Bereiche von IPv4- oder IPv6-Adressen fest, die als CIDR-Blöcke formatiert sind.

    In diesem Beispiel geben Sie Folgendes in die .yaml-Datei ein, um den Zugriff nur auf die Prüfer zu beschränken:

    - ipSubnetworks:
      - 203.0.113.0/25
    
  2. Speichern Sie die Datei. In diesem Beispiel heißt die Datei CONDITIONS.yaml.

  3. Erstellen Sie die Zugriffsebene.

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --policy=POLICY_NAME
    

    Wobei:

    • NAME ist der eindeutige Name für die Zugriffsebene. Dieser Name muss mit einem Buchstaben beginnen und darf nur Buchstaben, Zahlen und Unterstriche enthalten.

    • TITLE ist ein für Menschen lesbarer Titel. Er muss für die Richtlinie eindeutig sein.

    • POLICY_NAME ist der Name der Zugriffsrichtlinie Ihrer Organisation.

    Die Ausgabe sollte etwa so aussehen:

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY_NAME/accessLevels/NAME/create/1521594488380943] to complete...done.
    Created level NAME.
    

API

  1. Verfassen Sie einen Anfragetext für das Erstellen einer AccessLevel-Ressource und legen Sie dort einen oder mehrere Bereiche von IPv4- oder IPv6-Adressen fest, die als CIDR-Blöcke formatiert sind.

    In diesem Beispiel geben Sie Folgendes in den Anfragetext ein, um den Zugriff nur auf die Prüfer zu beschränken:

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "ipSubnetworks": [
             "203.0.113.0/25"
           ]
         }
       ]
     }
    }
    

    Wobei:

    • NAME ist der eindeutige Name für die Zugriffsebene. Dieser Name muss mit einem Buchstaben beginnen und darf nur Buchstaben, Zahlen und Unterstriche enthalten.

    • TITLE ist ein für Menschen lesbarer Titel. Er muss für die Richtlinie eindeutig sein.

  2. Rufen Sie zum Erstellen der Zugriffsebene Folgendes auf: accessLevels.create.

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels
    

    Wobei:

    • POLICY_NAME ist der Name der Zugriffsrichtlinie Ihrer Organisation.

Zugriff in einem Netzwerk nach Geräten beschränken

In diesem Beispiel wird beschrieben, wie Sie eine Zugriffsebene erstellen, die nur Geräten Zugriff gewährt, die bestimmte Anforderungen erfüllen, z. B. eine bestimmte Betriebssystemversion haben.

Gerätedaten werden für Access Context Manager mithilfe der Endpunktprüfung bereitgestellt. Sie können den Zugriff von folgenden Kriterien abhängig machen:

  • Bildschirmsperre ist aktiviert
  • Speicherverschlüsselung ist aktiviert
  • Typ und Version des Betriebssystems, das auf dem Gerät ausgeführt wird

Nehmen Sie für dieses Beispiel an, dass in Ihrer Organisation nur Computer verwendet werden, auf denen Chrome OS oder Windows installiert ist. Sie möchten eine Sicherheitsebene einfügen und dafür eine Zugriffsebene erstellen, die den Zugriff von Personen verhindert, die andere Betriebssysteme verwenden. Für das Risikomanagement möchten Sie außerdem, dass nur Geräte mit bestimmten Versionen der Betriebssysteme Zugriff erhalten.

Console

  1. Öffnen Sie die Seite Access Context Manager in der Cloud Console.

    Zur Seite "Access Context Manager"

  2. Wählen Sie Ihre Organisation aus, wenn Sie dazu aufgefordert werden.

  3. Klicken Sie oben auf der Seite Access Context Manager auf Neu.

  4. Klicken Sie im Bereich Neue Zugriffsebene im Abschnitt Bedingungen auf Attribut hinzufügen und dort auf Geräterichtlinie.

  5. Legen Sie die Attribute für die Geräterichtlinie fest:

    1. Klicken Sie auf Richtlinie für Betriebssystem hinzufügen und dann auf Richtlinie für Chrome OS.

    2. Geben Sie in das Feld Mindestversion die Mindestversion von Chrome OS ein, die Sie zulassen möchten.

    3. Wiederholen Sie die Schritte 1 und 2 für die Richtlinie für Windows Betriebssystem.

  6. Klicken Sie auf Speichern.

gcloud

  1. Erstellen Sie eine .yaml-Datei für eine Zugriffsebene, die eine Geräterichtlinie mit Betriebssystemeinschränkungen enthält.

    In diesem Beispiel geben Sie Folgendes in die .yaml-Datei ein, um nur Geräte mit der festgelegten Mindestversion von Chrome OS und Windows zuzulassen:

    - devicePolicy:
        osConstraints:
          - osType: DESKTOP_CHROME_OS
            minimumVersion: 11316.165.0
          - osType: DESKTOP_WINDOWS
            minimumVersion: 10.0.1809
    
  2. Speichern Sie die Datei. In diesem Beispiel heißt die Datei CONDITIONS.yaml.

  3. Erstellen Sie die Zugriffsebene.

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --policy=POLICY_NAME
    

    Wobei:

    • NAME ist der eindeutige Name für die Zugriffsebene. Dieser Name muss mit einem Buchstaben beginnen und darf nur Buchstaben, Zahlen und Unterstriche enthalten.

    • TITLE ist ein für Menschen lesbarer Titel. Er muss für die Richtlinie eindeutig sein.

    • POLICY_NAME ist der Name der Zugriffsrichtlinie Ihrer Organisation.

    Die Ausgabe sollte etwa so aussehen:

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY_NAME/accessLevels/NAME/create/1521594488380943] to complete...done.
    Created level NAME.
    

API

  1. Verfassen Sie einen Anfragetext für das Erstellen einer AccessLevel-Ressource, die eine Geräterichtlinie mit Betriebssystemeinschränkungen enthält.

    In diesem Beispiel geben Sie Folgendes in den Anfragetext ein, um nur Geräte mit der festgelegten Mindestversion von Chrome OS und Windows zuzulassen:

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "devicePolicy": {
             "osConstraints": [
               {
                 "osType": "DESKTOP_CHROME_OS",
                 "minimumVersion": "11316.165.0"
               },
               {
                 "osType": "DESKTOP_WINDOWS",
                 "minimumVersion": "10.0.1809"
               }
             ]
           {
         }
       ]
     }
    }
    

    Wobei:

    • NAME ist der eindeutige Name für die Zugriffsebene. Dieser Name muss mit einem Buchstaben beginnen und darf nur Buchstaben, Zahlen und Unterstriche enthalten.

    • TITLE ist ein für Menschen lesbarer Titel. Er muss für die Richtlinie eindeutig sein.

  2. Rufen Sie zum Erstellen der Zugriffsebene Folgendes auf: accessLevels.create.

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels
    

    Wobei:

    • POLICY_NAME ist der Name der Zugriffsrichtlinie Ihrer Organisation.

Zugriff nach Nutzern oder Dienstkonten beschränken

Identitätsbasierte Zugriffsbeschränkungen sind häufig in Verbindung mit Dienstkonten nützlich. Dies bietet sich zum Beispiel an, wenn Sie für den Zugriff auf Daten eine Funktion von Cloud Functions aktivieren möchten.

In diesem Beispiel wird beschrieben, wie bestimmten Nutzern und Dienstkonten, die die Kriterien anderer Zugriffsebenen nicht erfüllen, Zugriff gewährt wird. Nehmen Sie in diesem Beispiel an, Sie haben einen Systemadministrator und ein Dienstkonto, dem Sie den Zugriff auf die Dienste eines Projekts gewähren möchten. Dieser Zugriff soll unabhängig von den Bedingungen gewährt werden, die in anderen Zugriffsebenen festgelegt sind.

Console

Die Cloud Console unterstützt derzeit nicht das Hinzufügen von Mitgliedern zu Zugriffsebenen. Wenn Sie Mitglieder zu Zugriffsebenen hinzufügen möchten, müssen Sie das gcloud-Befehlszeilentool oder die API verwenden.

gcloud

  1. Erstellen Sie eine .yaml-Datei mit einer Bedingung, in der die Mitglieder aufgeführt sind, denen Sie Zugriff gewähren möchten.

    In diesem Beispiel möchten Sie Ihren Systemadministrator (sysadmin@example.com) und ein Dienstkonto (service@project.iam.gserviceaccount.com) hinzufügen.

    - members:
        - user:sysadmin@example.com
        - serviceAccount:service@project.iam.gserviceaccount.com
    
  2. Fügen Sie eine Bedingung hinzu, in der die Zugriffsebenen aufgeführt sind, die Sie nicht auf die Mitglieder anwenden möchten. Die Negation wird erreicht, indem die Kombinationsfunktion in Schritt 4 auf OR gesetzt wird.

    In diesem Beispiel wird angenommen, dass die Zugriffsebenen Device_Trust und IP_Trust heißen und der Name Ihrer Zugriffsrichtlinie 247332951433 ist.

    - members:
        - user:sysadmin@example.com
        - serviceAccount:service@project.iam.gserviceaccount.com
    
    - requiredAccessLevels:
        - accessPolicies/247332951433/accessLevels/Device_Trust
        - accessPolicies/247332951433/accessLevels/IP_Trust
    
  3. Speichern Sie die Datei. In diesem Beispiel heißt die Datei CONDITIONS.yaml.

  4. Erstellen Sie die Zugriffsebene.

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --combine-function=OR \
       --policy=POLICY_NAME
    

    Wobei:

    • NAME ist der eindeutige Name für die Zugriffsebene. Dieser Name muss mit einem Buchstaben beginnen und darf nur Buchstaben, Zahlen und Unterstriche enthalten.

    • TITLE ist ein für Menschen lesbarer Titel. Er muss für die Richtlinie eindeutig sein.

    • POLICY_NAME ist der Name der Zugriffsrichtlinie Ihrer Organisation.

    • combine-function ist auf OR gesetzt. Der Standardwert AND erfordert, dass alle Bedingungen erfüllt sind, bevor eine Zugriffsebene gewährt wird. Bei Einstellung des Wertes OR erhalten die Mitglieder Zugriff, auch wenn andere Bedingungen nicht erfüllt sind, wie z. B. in Bezug auf eine IP-Adresse oder Bedingungen, die von anderen erforderlichen Zugriffsebenen übernommen werden.

    Die Ausgabe sollte etwa so aussehen:

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY_NAME/accessLevels/NAME/create/1521594488380943] to complete...done.
    Created level NAME.
    

API

  1. Verfassen Sie einen Anfragetext für das Erstellen einer AccessLevel-Ressource mit einer Bedingung, in der die Mitglieder aufgelistet sind, die Zugriff erhalten sollen.

    In diesem Beispiel möchten Sie Ihren Systemadministrator (sysadmin@example.com) und ein Dienstkonto (service@project.iam.gserviceaccount.com) hinzufügen.

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "serviceAccount:service@project.iam.gserviceaccount.com"
           ]
         }
       ]
     }
    }
    

    Wobei:

    • NAME ist der eindeutige Name für die Zugriffsebene. Dieser Name muss mit einem Buchstaben beginnen und darf nur Buchstaben, Zahlen und Unterstriche enthalten.

    • TITLE ist ein für Menschen lesbarer Titel. Er muss für die Richtlinie eindeutig sein.

  2. Fügen Sie eine Bedingung hinzu, in der die Zugriffsebenen aufgeführt sind, die Sie nicht auf die Mitglieder anwenden möchten. Die Negation wird erreicht, indem die Kombinationsfunktion im folgenden Schritt auf OR gesetzt wird.

    In diesem Beispiel wird angenommen, dass die Zugriffsebenen Device_Trust und IP_Trust heißen und der Name Ihrer Zugriffsrichtlinie 247332951433 ist.

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "serviceAccount:service@project.iam.gserviceaccount.com"
           ]
         },
         {
           "requiredAccessLevels": [
             "accessPolicies/247332951433/accessLevels/Device_Trust",
             "accessPolicies/247332951433/accessLevels/IP_Trust"
           ]
         }
       ]
     }
    }
    
  3. Setzen Sie combiningFunction auf OR.

    Der Standardwert für combiningFunction, AND, legt fest, dass alle Bedingungen erfüllt sein müssen, bevor eine Zugriffsebene gewährt wird. Bei Einstellung des Wertes OR erhalten die Mitglieder Zugriff, auch wenn andere Bedingungen nicht erfüllt sind, wie z. B. in Bezug auf eine IP-Adresse oder Bedingungen, die von anderen erforderlichen Zugriffsebenen übernommen werden.

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "serviceAccount:service@project.iam.gserviceaccount.com"
           ]
         },
         {
           "requiredAccessLevels": [
             "accessPolicies/247332951433/accessLevels/Device_Trust",
             "accessPolicies/247332951433/accessLevels/IP_Trust"
           ]
         }
       ],
       "combiningFunction": "OR"
     }
    }
    
  4. Rufen Sie zum Erstellen der Zugriffsebene Folgendes auf: accessLevels.create.

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels
    

    Wobei:

    • POLICY_NAME ist der Name der Zugriffsrichtlinie Ihrer Organisation.