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.
Wenn Chandra versucht, ein Blob ohne das Tag Project=Cascade
zu lesen, wird der Zugriff verweigert.
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
Melden Sie sich beim Azure-Portal als Besitzer eines Abonnements an.
Wählen Sie Microsoft Entra ID aus.
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
Erstellen Sie ein Speicherkonto, das mit dem Blobindextag-Feature kompatibel ist. Weitere Informationen finden Sie unter Verwalten und Finden von Azure-Blobdaten mit Blobindextags.
Erstellen Sie innerhalb des Speicherkontos einen neuen Container, und legen Sie die anonyme Zugriffsebene auf Privat (kein anonymer Zugriff) fest.
Wählen Sie im Container die Option Hochladen aus, um den Bereich „Blob hochladen“ zu öffnen.
Suchen Sie nach einer Textdatei zum Hochladen.
Wählen Sie Erweitert aus, um den Bereich zu erweitern.
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
Wählen Sie die Schaltfläche Hochladen aus, um die Datei hochzuladen.
Laden Sie eine zweite Textdatei hoch.
Fügen Sie der zweiten Textdatei das folgende Blobindextag hinzu:
Schlüssel Wert Project Baker
Schritt 3: Zuweisen einer Speicherblobdaten-Rolle
Öffnen Sie die Ressourcengruppe.
Wählen Sie Zugriffssteuerung (IAM) aus.
Wählen Sie die Registerkarte Rollenzuweisungen aus, um die Rollenzuweisungen für diesen Bereich anzuzeigen.
Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen. Die Seite „Rollenzuweisung hinzufügen“ wird geöffnet:
- Wählen Sie auf der Registerkarte Rollen die Rolle Storage-Blobdatenleser aus.
- Wählen Sie auf der Registerkarte Mitglieder den zuvor erstellten Benutzer aus.
(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.
Wählen Sie Weiter aus.
Schritt 4: Hinzufügen einer Bedingung
- Wählen Sie auf der Registerkarte Bedingungen (optional) die Option Bedingung hinzufügen aus. Die Seite „Bedingung für Rollenzuweisung hinzufügen“ wird angezeigt:
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:
Wählen Sie im Abschnitt „Ausdruck erstellen“ die Option Ausdruck hinzufügen aus.
Der Abschnitt „Ausdruck“ wird erweitert.
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
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.
Wählen Sie Speichern aus, um die Bedingung hinzuzufügen und zur Seite „Rollenzuweisung hinzufügen“ zurückzukehren.
Wählen Sie Weiter aus.
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.
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
Melden Sie sich in einem neuen Fenster beim Azure-Portal an.
Melden Sie sich als Benutzer an, den Sie zuvor erstellt haben.
Öffnen Sie das Speicherkonto und den Container, die Sie erstellt haben.
Achten Sie darauf, dass die Authentifizierungsmethode auf Microsoft Entra-Benutzerkonto und nicht auf Zugriffsschlüssel festgelegt ist.
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.
Wählen Sie die Cascade-Textdatei aus.
Sie sollten das Blob anzeigen und herunterladen können.
Schritt 7: Bereinigen der Ressourcen
Entfernen Sie die von Ihnen hinzugefügte Rollenzuweisung.
Löschen Sie das von Ihnen erstellte Testspeicherkonto.
Löschen Sie den von Ihnen erstellten Benutzer.