Tutorial: Hinzufügen einer Rollenzuweisungsbedingung zum Einschränken des Zugriffs auf Blobs mit dem Azure-Portal

In den meisten Fällen gewährt eine Rollenzuweisung die für Azure-Ressourcen benötigten Berechtigungen. Manchmal ist jedoch unter Umständen eine präzisere Zugriffssteuerung erforderlich, was durch Hinzufügen einer Rollenzuweisungsbedingung erreicht werden kann.

In diesem Tutorial lernen Sie Folgendes:

  • Hinzufügen einer Bedingung zu einer Rollenzuweisung
  • Einschränken des Zugriffs auf Blobs basierend auf einem Blobindextag

Wichtig

Die attributbasierte Zugriffssteuerung (Attribute-Based Access Control, ABAC) in Azure ist allgemein verfügbar, um den Zugriff auf Azure Blob Storage, Azure Data Lake Storage Gen2 und Azure-Warteschlangen mithilfe der Attribute request, resource, environment und principal sowohl auf der standardmäßigen als auch auf der Premium-Speicherkonto-Leistungsstufe zu steuern. Derzeit befinden sich das Ressourcenattribut für Containermetadaten und das Listen-BLOB-Anforderungsattribut in der VORSCHAU. Vollständige Informationen zum Status des ABAC-Features für Azure Storage finden Sie unter Status der Bedingungsfeatures in Azure Storage.

Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

Voraussetzungen

Informationen zu den Voraussetzungen für das Hinzufügen oder Bearbeiten von Rollenzuweisungsbedingungen finden Sie unter Voraussetzungen für Bedingungen.

Bedingung

In diesem Tutorial wird der Zugriff auf Blobs mit einem bestimmten Tag eingeschränkt. Hierzu wird beispielsweise einer Rollenzuweisung eine Bedingung hinzugefügt, die dafür sorgt, dass von Chandra nur Dateien mit dem Tag Project=Cascade gelesen werden können.

Diagramm: Rollenzuweisung mit einer Bedingung

Wenn Chandra versucht, ein Blob ohne das Tag Project=Cascade zu lesen, wird der Zugriff verweigert.

Diagramm: Lesezugriff auf Blobs mit dem Tag „Project=Cascade“

Im Code sieht die Bedingung wie folgt aus:

(
    (
        !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'}
        AND NOT
        SubOperationMatches{'Blob.List'})
    )
    OR
    (
        @Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEqualsIgnoreCase 'Cascade'
    )
)

Schritt 1: Erstellen eines Benutzers

  1. Melden Sie sich beim Azure-Portal als Besitzer eines Abonnements an.

  2. Wählen Sie Microsoft Entra ID aus.

  3. Erstellen Sie einen Benutzer, oder suchen Sie nach einem bereits vorhandenen Benutzer. In diesem Tutorial wird Chandra als Beispiel verwendet.

Schritt 2: Einrichten des Speichers

  1. Erstellen Sie ein Speicherkonto, das mit dem Blobindextag-Feature kompatibel ist. Weitere Informationen finden Sie unter Verwalten und Finden von Azure-Blobdaten mit Blobindextags.

  2. Erstellen Sie innerhalb des Speicherkontos einen neuen Container, und legen Sie die anonyme Zugriffsebene auf Privat (kein anonymer Zugriff) fest.

  3. Wählen Sie im Container die Option Hochladen aus, um den Bereich „Blob hochladen“ zu öffnen.

  4. Suchen Sie nach einer Textdatei zum Hochladen.

  5. Wählen Sie Erweitert aus, um den Bereich zu erweitern.

  6. Fügen Sie der Textdatei im Abschnitt Blobindextags das folgende Blobindextag hinzu.

    Falls der Abschnitt „Blobindextags“ nicht angezeigt wird und Sie Ihr Abonnement eben erst registriert haben, warten Sie ggf. einige Minuten, damit die Änderungen weitergegeben werden können. Weitere Informationen finden Sie unter Verwenden von Blobindextags zum Verwalten und Suchen von Daten in Azure Blob Storage.

    Hinweis

    Von Blobs wird auch das Speichern beliebiger benutzerdefinierter Schlüssel-Wert-Metadaten unterstützt. Metadaten sind zwar mit Blobindextags vergleichbar, für Bedingungen müssen jedoch Blobindextags verwendet werden.

    Schlüssel Wert
    Project Cascade

Screenshot: Bereich „Blob hochladen“ mit dem Abschnitt „Blogindextags“

  1. Wählen Sie die Schaltfläche Hochladen aus, um die Datei hochzuladen.

  2. Laden Sie eine zweite Textdatei hoch.

  3. Fügen Sie der zweiten Textdatei das folgende Blobindextag hinzu:

    Schlüssel Wert
    Project Baker

Schritt 3: Zuweisen einer Speicherblobdaten-Rolle

  1. Öffnen Sie die Ressourcengruppe.

  2. Wählen Sie Zugriffssteuerung (IAM) aus.

  3. Wählen Sie die Registerkarte Rollenzuweisungen aus, um die Rollenzuweisungen für diesen Bereich anzuzeigen.

  4. Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen. Die Seite „Rollenzuweisung hinzufügen“ wird geöffnet:

Screenshot: Menü „Hinzufügen > Rollenzuweisung hinzufügen“

  1. Wählen Sie auf der Registerkarte Rollen die Rolle Storage-Blobdatenleser aus.

Screenshot: Seite „Rollenzuweisung hinzufügen“ mit der Registerkarte „Rollen“

  1. Wählen Sie auf der Registerkarte Mitglieder den zuvor erstellten Benutzer aus.

Screenshot: Seite „Rollenzuweisung hinzufügen“ mit der Registerkarte „Mitglieder“

  1. (Optional) Geben Sie im Feld Beschreibung den Text Read access to blobs with the tag Project=Cascade (Lesezugriff auf Blobs mit dem Tag „Project=Cascade“) ein.

  2. Wählen Sie Weiter aus.

Schritt 4: Hinzufügen einer Bedingung

  1. Wählen Sie auf der Registerkarte Bedingungen (optional) die Option Bedingung hinzufügen aus. Die Seite „Bedingung für Rollenzuweisung hinzufügen“ wird angezeigt:

Screenshot: Seite „Bedingung für Rollenzuweisung hinzufügen“ für eine neue Bedingung

  1. Wählen Sie im Abschnitt „Aktion hinzufügen“ die Option Aktion hinzufügen aus.

    Die Seite „Aktion auswählen“ wird angezeigt. In diesem Bereich wird eine gefilterte Liste mit Datenaktionen angezeigt, die auf der Rollenzuweisung basiert, die als Ziel Ihrer Bedingung verwendet wird. Aktivieren Sie das Kontrollkästchen neben Blob lesen, und wählen Sie dann Auswählen aus:

Screenshot: Bereich „Aktion auswählen“ mit ausgewählter Aktion

  1. Wählen Sie im Abschnitt „Ausdruck erstellen“ die Option Ausdruck hinzufügen aus.

    Der Abschnitt „Ausdruck“ wird erweitert.

  2. Legen Sie die folgenden Einstellungen für den Ausdruck fest:

    Einstellung Wert
    Attributquelle Resource
    attribute Blobindextags [Werte in Schlüssel]
    Key Project
    Betreiber StringEqualsIgnoreCase
    Wert Cascade

Screenshot: Abschnitt „Ausdruck erstellen“ für Blobindextags

  1. Scrollen Sie nach oben zu Editor-Typ, und wählen Sie Code aus.

    Die Bedingung wird als Code angezeigt. In diesem Code-Editor können Sie Änderungen an der Bedingung vornehmen. Wählen Sie Visual aus, um zum visuellen Editor zurückzukehren.

Screenshot: Im Code-Editor angezeigte Bedingung

  1. Wählen Sie Speichern aus, um die Bedingung hinzuzufügen und zur Seite „Rollenzuweisung hinzufügen“ zurückzukehren.

  2. Wählen Sie Weiter aus.

  3. Wählen Sie auf der Registerkarte Überprüfen + zuweisen die Option Überprüfen + zuweisen aus, um die Rolle mit einer Bedingung zuzuweisen.

    Nach einigen Augenblicken wird dem Sicherheitsprinzipal die Rolle für den Bereich zugewiesen.

Screenshot: Rollenzuweisungsliste nach dem Zuweisen einer Rolle.

Schritt 5: Zuweisen der Rolle „Leser“

  • Wiederholen Sie die obigen Schritte, um dem Benutzer, den Sie zuvor im Bereich der Ressourcengruppe erstellt haben, die Rolle Leser zuzuweisen.

    Hinweis

    In der Regel müssen Sie die Rolle „Leser“ nicht zuweisen. Dies erfolgt jedoch, damit Sie die Bedingung über das Azure-Portal testen können.

Schritt 6: Testen der Bedingung

  1. Melden Sie sich in einem neuen Fenster beim Azure-Portal an.

  2. Melden Sie sich als Benutzer an, den Sie zuvor erstellt haben.

  3. Öffnen Sie das Speicherkonto und den Container, die Sie erstellt haben.

  4. Achten Sie darauf, dass die Authentifizierungsmethode auf Microsoft Entra-Benutzerkonto und nicht auf Zugriffsschlüssel festgelegt ist.

Screenshot: Speichercontainer mit Testdateien.

  1. Wählen Sie die Baker-Textdatei aus.

    Sie sollten NICHT in der Lage sein, das Blob anzuzeigen oder herunterzuladen. Außerdem sollte eine Meldung angezeigt werden, dass die Autorisierung fehlgeschlagen ist.

  2. Wählen Sie die Cascade-Textdatei aus.

    Sie sollten das Blob anzeigen und herunterladen können.

Schritt 7: Bereinigen der Ressourcen

  1. Entfernen Sie die von Ihnen hinzugefügte Rollenzuweisung.

  2. Löschen Sie das von Ihnen erstellte Testspeicherkonto.

  3. Löschen Sie den von Ihnen erstellten Benutzer.

Nächste Schritte