Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, öznitelik tabanlı erişim denetimi (ABAC) koşullarını kullanarak blob dizin etiketlerini ve özel güvenlik özniteliklerini temel alan bloblara okuma erişimine nasıl izin vereceğinizi öğreneceksiniz. Bu, bloblara erişimi yönetmeyi kolaylaştırabilir.
Önkoşullar
Microsoft Entra kiracınıza özel güvenlik öznitelikleri atamak ve rol atama koşulları eklemek için şunları yapmanız gerekir:
Önemli
Varsayılan olarak, Genel Yönetici ve diğer yönetici rollerinin özel güvenlik özniteliklerini okuma, tanımlama veya atama izinleri yoktur. Bu önkoşulları karşılamıyorsanız koşul düzenleyicisinde sorumlu/kullanıcı özniteliklerini görmezsiniz.
Koşul
Bu makalede, kullanıcının blob dizin etiketiyle eşleşen özel bir güvenlik özniteliği varsa bloblara okuma erişimine izin verirsiniz. Bu, rol atamasına bir koşul eklenerek gerçekleştirilir.
Örneğin, Brenda Project=Bakerözniteliğine sahipse blobları yalnızca Project=Baker blob dizin etiketiyle okuyabilir. Benzer şekilde, Chandra yalnızca Project=Cascadeile blobları okuyabilir.
Koşul kodda şöyle görünür:
(
(
!(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$>]
)
)
Koşullar hakkında daha fazla bilgi için bkz . Azure öznitelik tabanlı erişim denetimi (Azure ABAC) nedir?
1. Adım: Yeni bir özel güvenlik özniteliği ekleme
Azure portalınaoturum açın.
Microsoft Entra ID >öğesinetıklayın.
ProjectveBakerdeğerleriyleCascadeadlı bir öznitelik ekleyin. Veya var olan bir özniteliği kullanın. Daha fazla bilgi için bkz. Microsoft Entra IDözel güvenlik özniteliklerini ekleme veya devre dışı bırakma.
2. Adım: Kullanıcıya özel güvenlik özniteliği atama
Microsoft Entra Id'de bir güvenlik grubu oluşturun.
Bir kullanıcıyı grubun üyesi olarak ekleyin.
Projectdeğerine sahipCascadeözniteliğini kullanıcıya atayın. Daha fazla bilgi için bkz. kullanıcı için özel güvenlik özniteliklerini atama, güncelleştirme, listeleme veya kaldırma.
Ödevinizi kaydetmek için Kaydet'e tıklamayı unutmayın.
3. Adım: Depolama ve blob dizini etiketlerini ayarlama
Blob dizin etiketleri özelliğiyle uyumlu bir depolama hesabı oluşturun. Daha fazla bilgi için Blob dizini etiketleriyle Azure Blob verilerini yönetme ve bulma bölümüne bakın.
Depolama hesabında yeni bir kapsayıcı oluşturun ve Genel erişim düzeyiÖzel (anonim erişim yok) olarak ayarlayın.
Kimlik doğrulama türünü Azure AD Kullanıcı Hesabıolarak ayarlayın.
Metin dosyalarını kapsayıcıya yükleyin ve aşağıdaki blob dizin etiketlerini ayarlayın.
Dosya Anahtar Değer Baker metin dosyası Proje Fırıncı Katmanlı metin dosyası Proje Şelale Tavsiye
Blob dizini etiketleri için izin verilen karakterler hakkında bilgi için bkz. Blob dizini etiketlerini ayarlama.
4. Adım: Depolama Blobu Veri Okuyucusu rolünü bir koşulla atama
Yeni bir sekme açın ve Azure portalındaoturum açın.
Depolama hesabı olan kaynak grubunu açın.
Erişim denetimi (IAM) öğesine tıklayın.
Bu kapsamdaki rol atamalarını görüntülemek için Rol atamaları sekmesine tıklayın.
Ekle>Rol ataması ekle seçeneğine tıklayın.
Rol sekmesinde Depolama Blob Veri Okuyucusu rolünü seçin.
Üyeler sekmesinde, daha önce oluşturduğunuz güvenlik grubunu seçin.
(İsteğe bağlı) Açıklama kutusuna, kullanıcı blob dizin etiketiyle eşleşen özel bir güvenlik özniteliğine sahipse bloblara okuma erişiminigirin.
Koşulları (isteğe bağlı) sekmesinde, Koşul ekle'ye tıklayın.
Rol ataması koşulu ekle sayfası görüntülenir.
Eylem ekle bölümünde, eylem eklemek için Eylem ekleüzerine tıklayın.
Eylem seçin bölmesi görüntülenir. Bu bölme, koşulunuzun hedefi olacak rol atamasını temel alan filtrelenmiş bir veri eylemleri listesidir.
Blob oku'ya tıklayın ve ardından seç'e tıklayın.
Derleme ifadesi bölümünde, Ekle'yitıklayın.
Aşağıdaki ayarları girin:
Ayarlar Değer Öznitelik kaynağı Müdür Öznitelik <öznitelik kümesi>_Project Operatör StringEquals Seçenek Öznitelik Öznitelik kaynağı Kaynak Öznitelik Blob dizin etiketleri [Anahtardaki değerler] Anahtar Proje Uyarı
Eğer Prensip, Öznitelik kaynağında bir seçenek olarak listelenmiyorsa, daha önce Adım 1:yeni bir özel güvenlik özniteliği ekleme bölümünde açıklandığı gibi özel bir güvenlik özniteliği tanımladığınızdan emin olun.
Düzenleyici türüne kadar kaydırın ve Kodöğesine tıklayın.
Koşulunuz aşağıdakine benzer görünmelidir:
( ( !(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$>] ) )Koşulu kaydetmek için Kaydet'e tıklayın.
Gözden Geçir + Ata sekmesinde, bir koşulla Depolama Blobu Veri Okuyucusu rolünü atamak için Gözden Geçir + Ata tıklayın.
5. Adım: Okuyucu rolü atama
Kaynak grubu kapsamındaki güvenlik grubu için Okuyucu rolünü atamak için önceki adımları yineleyin.
Uyarı
Genellikle Okuyucu rolünü atamanız gerekmez. Ancak bu, Azure portalını kullanarak koşulu test edebilmeniz için yapılır.
6. Adım: Koşulu test edin
Yeni bir pencerede Azure portalınıaçın.
Project=Cascadeözel güvenlik özniteliğiyle oluşturduğunuz kullanıcı olarak oturum açın.Oluşturduğunuz depolama hesabını ve kapsayıcıyı açın.
Kimlik doğrulama yönteminin Erişim anahtarıdeğil Azure AD Kullanıcı Hesabı olarak ayarlandığından emin olun.
Baker metin dosyasına tıklayın.
Blobu görüntüleyebilmeniz veya indirebilmeniz DEĞİl ve yetkilendirme başarısız iletisi görüntülenmelidir.
Cascade adlı metin dosyasını tıklayın.
Blobu görüntüleyebilir ve indirebilirsiniz.
Azure PowerShell
Rol atama koşulları eklemek için Azure PowerShell'i de kullanabilirsiniz. Aşağıdaki komutlar koşulların nasıl ekleneceğini gösterir. Bilgi için bkz. Öğreticisi: Azure PowerShellkullanarak bloblara erişimi kısıtlamak için rol atama koşulu ekleme.
Koşul ekle
Connect-AzAccount komutunu kullanın ve dizininizde Rol Tabanlı Erişim Denetimi Yöneticisi olarak oturum açarken görünen yönergeleri izleyin.
Connect-AzAccountGüvenlik grubuna atadığınız rol atamasını almak için Get-AzRoleAssignment kullanın.
$groupRoleAssignment = Get-AzRoleAssignment -ObjectId <groupObjectId> -Scope <scope>Rol atama nesnesinin
Conditionözelliğini ayarlayın. Öznitelik kümesi adınızı kullandığınızdan emin olun.$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`$>]))"Rol atama nesnesinin
ConditionVersionözelliğini ayarlayın.$groupRoleAssignment.ConditionVersion = "2.0"Rol atamasını güncelleştirmek için Set-AzRoleAssignment kullanın.
Set-AzRoleAssignment -InputObject $groupRoleAssignment
Koşulu test edin
Yeni bir PowerShell penceresinde, güvenlik grubunun bir üyesi olarak oturum açmak için Connect-AzAccount komutunu kullanın.
Connect-AzAccountDepolama hesabının bağlamını ayarlamak için New-AzStorageContext kullanın.
$bearerCtx = New-AzStorageContext -StorageAccountName <accountName>Baker dosyasını okumaya çalışmak için Get-AzStorageBlob kullanın.
Get-AzStorageBlob -Container <containerName> -Blob <blobNameBaker> -Context $bearerCtxBlobu okuyabilmek DEĞİl ve yetkilendirme başarısız iletisi görüntülenmelidir.
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. ...Cascade dosyasını okumayı denemek için Get-AzStorageBlob kullanın.
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-24 05:35:24Z Hot
Azure Komut Satırı Arayüzü (Azure CLI)
Rol ataması koşulları eklemek için Azure CLI'yi de kullanabilirsiniz. Aşağıdaki komutlar koşulların nasıl ekleneceğini gösterir. Bilgi için bkz. Öğreticisi: Azure CLIkullanarak bloblara erişimi kısıtlamak için rol atama koşulu ekleme.
Koşul ekle
az login komutunu kullanın ve dizininizde Rol Tabanlı Erişim Denetimi Yöneticisi olarak oturum açarken görünen yönergeleri izleyin.
az loginGüvenlik grubuna atadığınız rol atamasını almak için az role assignment list kullanın.
az role assignment list --assignee <groupObjectId> --scope <scope>Aşağıdaki biçime sahip bir JSON dosyası oluşturun.
{ "canDelegate": null, "condition": "", "conditionVersion": "", "description": "", "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}", "name": "{roleAssignmentId}", "principalId": "{groupObjectId}", "principalName": "{principalName}", "principalType": "Group", "resourceGroup": "{resourceGroup}", "roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1", "roleDefinitionName": "Storage Blob Data Reader", "scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}", "type": "Microsoft.Authorization/roleAssignments" }conditionözelliğini güncelleştirin. Öznitelik kümesi adınızı kullandığınızdan emin olun."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$>]))",conditionVersionözelliğini güncelleştirin."conditionVersion": "2.0",Koşulu rol atamasına eklemek için az role assignment update kullanın.
az role assignment update --role-assignment "./path/roleassignment.json"
Koşulu test edin
Yeni bir komut penceresinde az login komutunu kullanarak güvenlik grubunun bir üyesi olarak oturum açın.
az loginBaker dosyasının özelliklerini okumaya çalışmak için az storage blob show kullanın.
az storage blob show --account-name <storageAccountName> --container-name <containerName> --name <blobNameBaker> --auth-mode loginBlobu okuyabilmek DEĞİl ve yetkilendirme başarısız iletisi görüntülenmelidir.
You do not have the required permissions needed to perform this operation. ...Cascade dosyasının özelliklerini okumayı denemek için az storage blob show kullanın.
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, ... }