Leestoegang tot blobs toestaan op basis van tags en aangepaste beveiligingskenmerken
Artikel
In dit artikel leert u hoe u leestoegang tot blobs toestaat op basis van blob-indextags en aangepaste beveiligingskenmerken met behulp van abac-voorwaarden (op kenmerken gebaseerd toegangsbeheer). Hierdoor is het eenvoudiger om toegang tot blobs te beheren.
Vereisten
Als u aangepaste beveiligingskenmerken wilt toewijzen en voorwaarden voor roltoewijzingen wilt toevoegen in uw Microsoft Entra-tenant, hebt u het volgende nodig:
Globale beheerder en andere beheerdersrollen hebben standaard geen machtigingen voor het lezen, definiëren en toewijzen van aangepaste beveiligingskenmerken. Als u niet aan deze vereisten voldoet, ziet u de principal-/gebruikerskenmerken niet in de voorwaarde-editor.
Conditie
In dit artikel staat u leestoegang tot blobs toe als de gebruiker een aangepast beveiligingskenmerk heeft dat overeenkomt met de blobindextag. Dit wordt bereikt door een voorwaarde toe te voegen aan de roltoewijzing.
Als Brenda bijvoorbeeld het kenmerk Project=Bakerheeft, kan ze alleen blobs lezen met de Project=Baker blob-indextag. Op dezelfde manier kan Chandra alleen blobs lezen met Project=Cascade.
Dit is hoe de voorwaarde eruitziet in code:
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
)
OR
(
@Principal[Microsoft.Directory/CustomSecurityAttributes/Id:Engineering_Project] StringEquals @Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>]
)
)
Selecteer op het tabblad Leden de beveiligingsgroep die u eerder hebt gemaakt.
(Optioneel) Voer in het vak Beschrijving leestoegang tot blobs in als de gebruiker een aangepast beveiligingskenmerk heeft dat overeenkomt met de blobindextag.
Klik op het tabblad Voorwaarden (optioneel) op Voorwaarde toevoegen.
De pagina Roltoewijzingsvoorwaarde toevoegen wordt weergegeven.
Klik in de sectie Actie toevoegen op Actie toevoegen.
Het deelvenster Een actie selecteren wordt weergegeven. Dit deelvenster is een gefilterde lijst met gegevensacties op basis van de roltoewijzing die het doel van uw voorwaarde is.
Klik op Een blob lezen en klik vervolgens op Selecteren.
Klik in de sectie Build-expressie op Toevoegen.
Geef de volgende instellingen op:
Instelling
Weergegeven als
Kenmerkbron
Principal
Kenmerk
<attributeset>_Project
Operator
StringEquals
Optie
Kenmerk
Kenmerkbron
Resource
Kenmerk
Blob-indextags [Waarden in sleutel]
Key
Project
Notitie
Als Principal niet wordt vermeld als een optie in de kenmerkbron, moet u ervoor zorgen dat u een aangepast beveiligingskenmerk hebt gedefinieerd zoals eerder beschreven in stap 1: Een nieuw aangepast beveiligingskenmerk toevoegen.
Schuif omhoog naar het type Editor en klik op Code.
Uw voorwaarde moet er ongeveer als volgt uitzien:
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
)
OR
(
@Principal[Microsoft.Directory/CustomSecurityAttributes/Id:Engineering_Project] StringEquals @Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>]
)
)
Klik op Opslaan om de voorwaarde op te slaan.
Klik op het tabblad Controleren en toewijzen op Controleren + toewijzen om de rol Opslagblobgegevenslezer met een voorwaarde toe te wijzen.
Stap 5: Rol Lezer toewijzen
Herhaal de vorige stappen om de rol Lezer toe te wijzen voor de beveiligingsgroep binnen het bereik van de resourcegroep.
Notitie
Doorgaans hoeft u de rol Lezer niet toe te wijzen. Dit wordt echter gedaan zodat u de voorwaarde kunt testen met behulp van Azure Portal.
Gebruik de opdracht Verbinding maken-AzAccount en volg de instructies die lijken aan te melden bij uw directory als op rollen gebaseerd toegangsbeheer Beheer istrator.
PowerShell
Connect-AzAccount
Gebruik Get-AzRoleAssignment om de roltoewijzing op te halen die u aan de beveiligingsgroep hebt toegewezen.
Stel de Condition eigenschap van het roltoewijzingsobject in. Zorg ervoor dat u de naam van de kenmerkenset gebruikt.
PowerShell
$groupRoleAssignment.Condition="((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Principal[Microsoft.Directory/CustomSecurityAttributes/Id:Engineering_Project] StringEquals @Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<`$key_case_sensitive`$>]))"
Stel de ConditionVersion eigenschap van het roltoewijzingsobject in.
U moet de blob niet kunnen lezen en er moet een mislukt bericht over autorisatie worden weergegeven.
PowerShell
Get-AzStorageBlob : This request is not authorized to perform this operation using this permission. HTTP Status Code:
403 - HTTP Error Message: This request is not authorized to perform this operation using this permission.
...
Get-AzStorageBlob -Container <containerName> -Blob <blobNameCascade> -Context$bearerCtx
You should be able to read the blob.
AccountName: <storageAccountName>, ContainerName: <containerName>
Name BlobType Length ContentType LastModified AccessTier SnapshotT
ime
---- -------- ------ ----------- ------------ ---------- ---------
CascadeFile.txt BlockBlob 7 text/plain 2021-04-2405:35:24Z Hot
Werk de condition eigenschap bij. Zorg ervoor dat u de naam van de kenmerkenset gebruikt.
Azure CLI
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Principal[Microsoft.Directory/CustomSecurityAttributes/Id:Engineering_Project] StringEquals @Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>]))",
az role assignment update --role-assignment"./path/roleassignment.json"
De voorwaarde testen
Gebruik in een nieuw opdrachtvenster de opdracht az login om u aan te melden als lid van de beveiligingsgroep.
Azure CLI
az login
Gebruik az storage blob show om de eigenschappen voor het Baker-bestand te lezen.
Azure CLI
az storage blob show --account-name<storageAccountName>--container-name<containerName>--name<blobNameBaker>--auth-mode login
U moet de blob niet kunnen lezen en er moet een mislukt bericht over autorisatie worden weergegeven.
Azure CLI
You do not have the required permissions needed to perform this operation.
...
Gebruik az storage blob show om de eigenschappen voor het cascade-bestand te lezen.
Azure CLI
az storage blob show --account-name<storageAccountName>--container-name<containerName>--name<blobNameCascade>--auth-mode login
You should be able to read the blob.
{
"container": "<containerName>",
"content": "",
"deleted": false,
"encryptedMetadata": null,
"encryptionKeySha256": null,
"encryptionScope": null,
...
}
Demonstreer de functies van Microsoft Entra ID om identiteitsoplossingen te moderniseren, hybride oplossingen te implementeren en identiteitsbeheer te implementeren.
Bekijk een overzicht van de indeling en syntaxis van azure-roltoewijzingsvoorwaarden voor op kenmerken gebaseerd toegangsbeheer van Azure (Azure ABAC).
Meer informatie over het toevoegen, bewerken, weergeven of verwijderen van abac-voorwaarden (op kenmerken gebaseerd toegangsbeheer) in Azure-roltoewijzingen met behulp van Azure Portal en op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC).
Schaal het beheer van Azure-roltoewijzingen met behulp van azure abac-voorwaarden (op kenmerken gebaseerd toegangsbeheer) en aangepaste beveiligingskenmerken van Microsoft Entra voor principals.
Ondersteunde acties en kenmerken voor voorwaarden voor Azure-roltoewijzing en op kenmerken gebaseerd toegangsbeheer van Azure (Azure ABAC) voor Azure Blob Storage.
Meer informatie over Azure-roldefinities in op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) voor gedetailleerd toegangsbeheer van Azure-resources.
Meer informatie over het toevoegen van abac-voorwaarden (op kenmerken gebaseerd toegangsbeheer) in Azure-roltoewijzingen met behulp van Azure Resource Manager-sjablonen en op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC).