Freigeben über


Lernprogramm: Hinzufügen einer Rollenzuweisungsbedingung zum Einschränken des Zugriffs auf Blobs mithilfe des Azure-Portals

In den meisten Fällen gewährt eine Rollenzuweisung die Berechtigungen, die Sie für Azure-Ressourcen benötigen. In einigen Fällen sollten Sie jedoch eine genauere Zugriffssteuerung bereitstellen, indem Sie eine Rollenzuweisungsbedingung hinzufügen.

In diesem Tutorial lernen Sie Folgendes:

  • Hinzufügen einer Bedingung zu einer Rollenzuweisung
  • Einschränkung des Zugriffs auf Blobs basierend auf einem Blob-Index-Tag

Von Bedeutung

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 Anforderungsattribut zum Einschluss des Listenblobs und das Anforderungsattribut von Momentaufnahmen für hierarchische Namespaces 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.

Zustand

In diesem Tutorial beschränken Sie den Zugriff auf Blobs mit einem bestimmten Tag. Beispielsweise fügen Sie einer Rollenzuweisung eine Bedingung hinzu, damit Chandra nur Dateien mit dem Tag Project=Cascadelesen kann.

Diagramm der Rollenzuweisung mit einer Bedingung.

Wenn Chandra versucht, ein Blob ohne Tag Project=Cascadezu lesen, ist der Zugriff nicht zulässig.

Diagramm mit Lesezugriff auf Blobs mit Project=Cascade-Tag.

So sieht die Bedingung im Code 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 einen vorhandenen Benutzer. In diesem Lernprogramm wird Chandra als Beispiel verwendet.

Schritt 2: Einrichten von Speicher

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

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

  3. Wählen Sie im Container "Hochladen" aus, um den Blobbereich "Hochladen" zu öffnen.

  4. Suchen Sie eine Textdatei, die hochgeladen werden soll.

  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 BLOB-Indextags 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
    Projekt Cascade

Screenshot zeigt den Bereich „Blob hochladen“ mit dem Abschnitt „Blog index tags“.

  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
    Projekt Bäcker

Schritt 3: Zuweisen einer Rolle für Speicher-BLOB-Daten

  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 Blob Data Reader " aus.

Screenshot der Seite

  1. Wählen Sie auf der Registerkarte " Mitglieder " den Benutzer aus, den Sie zuvor erstellt haben.

Screenshot der Seite

  1. (Optional) Geben Sie im Feld Beschreibung den Text Lesezugriff auf Blobs mit dem Tag Project=Cascade ein.

  2. Wählen Sie Weiteraus.

Schritt 4: Hinzufügen einer Bedingung

  1. Wählen Sie auf der Registerkarte "Bedingungen" (optional) die Option "Bedingung hinzufügen" aus. Die Seite "Rollenzuweisungsbedingung hinzufügen" wird angezeigt:

Screenshot der Seite

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

    Der Bereich "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 "Auswählen".

Screenshot des Aktionsbereichs mit ausgewählter Aktion.

  1. Wählen Sie im Abschnitt "Ausdruck erstellen" "Ausdruck hinzufügen" aus.

    Der Abschnitt "Expression" wird erweitert.

  2. Geben Sie die folgenden Ausdruckseinstellungen an:

    Konfiguration Wert
    Attributquelle Ressource
    Merkmal Blobindextags [Werte im Schlüssel]
    Schlüssel Projekt
    Bediener StringEqualsIgnoreCase
    Wert Cascade

Screenshot: Abschnitt „Ausdruck erstellen“ für Blobindextags

  1. Scrollen Sie nach oben zum Editortyp , und wählen Sie "Code" aus.

    Die Bedingung wird als Code angezeigt. Sie können änderungen an der Bedingung in diesem Code-Editor vornehmen. Um zum visuellen Editor zurückzukehren, wählen Sie "Visual" aus.

Screenshot der im Code-Editor angezeigten Bedingung.

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

  2. Wählen Sie Weiteraus.

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

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

Screenshot der Rollenzuweisungsliste nach dem Zuweisen der Rolle.

Schritt 5: Zuweisen der Rolle „Leser“

  • Wiederholen Sie die vorherigen Schritte, um die Reader-Rolle dem Benutzer zuzuweisen, den Sie zuvor im Ressourcengruppenbereich erstellt haben.

    Hinweis

    In der Regel müssen Sie die Rolle „Leser“ nicht zuweisen. Dies geschieht jedoch, damit Sie die Bedingung mithilfe des Azure-Portals 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 der Benutzer an, den Sie zuvor erstellt haben.

  3. Öffnen Sie das von Ihnen erstellte Speicherkonto und den von Ihnen erstellten Container.

  4. Stellen Sie sicher, dass die Authentifizierungsmethode auf das Microsoft Entra-Benutzerkonto und nicht auf den Zugriffsschlüssel festgelegt ist.

Screenshot des Speichercontainers mit Testdateien.

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

    Sie sollten nicht in der Lage sein, das Blob anzuzeigen oder herunterzuladen, und eine Fehlermeldung zur Autorisierung sollte angezeigt werden.

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

    Sie sollten das Blob anzeigen und herunterladen können.

Schritt 7: Bereinigen der Ressourcen

  1. Entfernen Sie die hinzugefügte Rollenzuweisung.

  2. Löschen Sie das erstellte Testspeicherkonto.

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

Nächste Schritte