Azure rol ataması koşullarını giderme

Genel sorunlar

Belirti - Koşul uygulanmadı

Neden 1

Güvenlik sorumlularının aynı veya daha yüksek kapsamda bir veya daha fazla rol ataması vardır.

Çözüm 1

Güvenlik sorumlularının, koşulların uygulanmasına neden olan aynı veri eylemine erişim izni veren birden çok rol ataması (koşullu veya koşulsuz) olmadığından emin olun. Değerlendirme mantığı hakkında bilgi için bkz . Azure RBAC, bir kullanıcının kaynağa erişimi olup olmadığını nasıl belirler?

Neden 2

Rol atamanızda izin veren birden çok eylem vardır ve koşulunuz tüm eylemleri hedeflemez. Örneğin, veya /blobs/add/action veri eylemleriniz /blobs/write varsa blob oluşturabilirsiniz. Rol atamanızda hem veri eylemleri varsa hem de bir koşulda bunlardan yalnızca birini hedeflediyseniz, rol ataması blob oluşturma ve koşulu atlama izni verir.

Çözüm 2

Rol atamanızda izin veren birden çok eylem varsa, tüm ilgili eylemleri hedeflediğinizden emin olun.

Neden 3

Rol atamasına bir koşul eklediğinizde, koşulun uygulanması 5 dakika kadar sürebilir. Bir koşul eklediğinizde, kaynak sağlayıcılarına (Microsoft Depolama gibi) güncelleştirme bildirilir. Kaynak sağlayıcıları, en son rol atamalarına sahip olduklarından emin olmak için yerel önbelleklerinde hemen güncelleştirmeler yapar. Bu işlem 1 veya 2 dakika içinde tamamlanabilir, ancak 5 dakikaya kadar sürebilir.

Çözüm 3

5 dakika bekleyin ve koşulu yeniden test edin.

Belirti - Koşul eklenirken koşul geçerli değil hatası

Bir koşula sahip bir rol ataması eklemeyi denediğinizde aşağıdakine benzer bir hata alırsınız:

The given role assignment condition is invalid.

Neden 1

conditionVersion özelliği "1.0" olarak ayarlanır.

Çözüm 1

Özelliği "2.0" olarak ayarlayın conditionVersion .

Neden 2

Koşulunuz doğru biçimlendirilmemiş.

Çözüm 2

Koşul biçimi veya söz dizimi sorunlarını düzeltin. Alternatif olarak, Azure portalında görsel düzenleyicisini kullanarak koşulu ekleyin.

Görsel düzenleyicisindeki sorunlar

Belirti - Koşulu düzenlerken koşul düzenleyicisi görüntülenir

Azure rol atama yönetimini koşulları olan diğer kişilere devretme bölümünde açıklanan şablonu kullanarak bir koşul oluşturdunuz. Koşulu düzenlemeye çalıştığınızda gelişmiş koşul düzenleyicisini görürsünüz.

Koşulu düzenleme seçeneklerini gösteren koşul düzenleyicisinin ekran görüntüsü.

Koşulu daha önce düzenlediğinizde, koşul şablonunu kullanarak düzenlemiştiniz.

Eşleşen şablonun etkinleştirildiği koşul şablonlarının ekran görüntüsü.

Neden

Koşul, şablonun deseni ile eşleşmiyor.

Çözüm 1

Koşulu, aşağıdaki şablon desenlerinden biriyle eşleşecek şekilde düzenleyin.

Template Koşul
Rolleri kısıtlama Örnek: Rolleri kısıtlama
Rolleri ve sorumlu türlerini kısıtlama Örnek: Rolleri ve sorumlu türlerini kısıtlama
Rolleri ve sorumluları kısıtlama Örnek: Rolleri ve belirli grupları kısıtlama
Belirli roller dışında tümüne izin ver Örnek: Çoğu role izin ver, ancak başkalarının rol atamasına izin verme

Çözüm 2

Koşulu silin ve Azure rol atama yönetimini koşulları olan diğer kişilere devretme adımlarını kullanarak yeniden oluşturun.

Belirti - Asıl öğe Öznitelik kaynağında görünmüyor

Koşul içeren bir rol ataması eklemeyi denediğinizde, Sorumlu Öznitelik kaynak listesinde görünmez.

Koşul eklerken Öznitelik kaynak listesinde Sorumlu'ya gösterilen ekran görüntüsü.

Bunun yerine şu iletiyi görürsünüz:

To use principal (user) attributes, you must have Microsoft Entra permissions (such as the [Attribute Assignment Administrator](../active-directory/roles/permissions-reference.md#attribute-assignment-administrator) role) and custom security attributes defined in Microsoft Entra ID.

Neden

Önkoşulları karşılamazsınız. Asıl öznitelikleri kullanmak için aşağıdakilere sahip olmanız gerekir:

  • Oturum açmış kullanıcının en az bir öznitelik kümesini okuması için Microsoft Entra izinleri
  • Microsoft Entra Id'de tanımlanan özel güvenlik öznitelikleri

Çözüm

  1. Microsoft Entra ID>Özel güvenlik özniteliklerini açın.

    Başlarken sayfasını görüyorsanız, en az bir öznitelik kümesi okuma izniniz yok veya özel güvenlik öznitelikleri henüz tanımlanmadı.

    Özel güvenlik öznitelikleri Başlarken sayfasını gösteren ekran görüntüsü.

  2. Özel güvenlik öznitelikleri tanımlanmışsa, kiracı kapsamında veya öznitelik kümesi kapsamında aşağıdaki rollerden birini atayın. Daha fazla bilgi için bkz . Microsoft Entra Id'de özel güvenlik özniteliklerine erişimi yönetme.

    Önemli

    Varsayılan olarak, Genel Yönetici istrator ve diğer yönetici rollerinin özel güvenlik özniteliklerini okuma, tanımlama veya atama izinleri yoktur.

  3. Özel güvenlik öznitelikleri henüz tanımlanmamışsa, kiracı kapsamında Öznitelik Tanımı Yönetici istrator rolünü atayın ve özel güvenlik öznitelikleri ekleyin. Daha fazla bilgi için bkz . Microsoft Entra Id'de özel güvenlik öznitelikleri ekleme veya devre dışı bırakma.

    İşiniz bittiğinde en az bir öznitelik kümesini okuyabilmeniz gerekir.

    Kullanıcının okuyabileceği öznitelik kümelerini gösteren ekran görüntüsü.

    Bir koşulla rol ataması eklediğinizde sorumlu artık Öznitelik kaynağı listesinde görünmelidir.

Belirti - PIM kullanılırken Asıl öğe Öznitelik kaynağında görünmüyor

Microsoft Entra Privileged Identity Management (PIM) kullanarak bir koşula sahip bir rol ataması eklemeye çalıştığınızda, Sorumlu Öznitelik kaynak listesinde görünmez.

Privileged Identity Management kullanarak koşul eklerken Öznitelik kaynak listesinde Sorumlu'ya yer alan ekran görüntüsü.

Neden

PIM şu anda rol atama koşulunda asıl özniteliğin kullanılmasını desteklememektedir.

Görsel düzenleyicide hata iletileri

Belirti - Durum tanınmadı

Kod düzenleyicisini kullandıktan sonra görsel düzenleyiciye geçer ve aşağıdakine benzer bir ileti alırsınız:

The current expression cannot be recognized. Switch to the code editor to edit the expression or delete the expression and add a new one.

Neden

Güncelleştirmeler, görsel düzenleyicinin ayrıştıramaması koşuluyla yapılmıştır.

Çözüm

Koşul biçimi veya söz dizimi sorunlarını düzeltin. Alternatif olarak, koşulu silebilir ve yeniden deneyebilirsiniz.

Belirti - Öznitelik önceden kaydedilmiş koşul için hata uygulamaz

Görsel düzenleyicisinde daha önce kaydedilmiş bir koşulu açtığınızda aşağıdaki iletiyi alırsınız:

Attribute does not apply for the selected actions. Select a different set of actions.

Neden

Mayıs 2022'de Blob oku eylemi aşağıdaki biçimden değiştirildi:

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})

Alt işlemi dışlamak Blob.List için:

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})

Mayıs 2022'den önce Blob oku eylemiyle bir koşul oluşturduysanız, görsel düzenleyicisinde bu hata iletisini görebilirsiniz.

Çözüm

Eylem seçin bölmesini açın ve Blob oku eylemini yeniden seçin.

Belirti - Öznitelik hata uygulamıyor

Görsel düzenleyicisinde var olan bir ifadeyle bir veya daha fazla eylem seçtiğinizde aşağıdaki iletiyi alırsınız ve daha önce seçilen öznitelik kaldırılır:

Attribute does not apply for the selected actions. Select a different set of actions.

Neden

Daha önce seçilen öznitelik artık seçili durumdaki eylemler için geçerli değildir.

Çözüm 1

Eylem ekle bölümünde, seçili öznitelik için geçerli olan bir eylem seçin. Her depolama özniteliğinin desteklediği depolama eylemlerinin listesi için bkz. Azure Blob Depolama için Azure rol atama koşulları için eylemler ve öznitelikler ve Azure kuyrukları için Azure rol atama koşulları için eylemler ve öznitelikler.

Çözüm 2

Derleme ifadesi bölümünde, seçili durumdaki eylemlere uygulanan bir öznitelik seçin. Her depolama eyleminin desteklediği depolama özniteliklerinin listesi için bkz. Azure Blob Depolama için Azure rol atama koşulları için eylemler ve öznitelikler ve Azure kuyrukları için Azure rol atama koşulları için eylemler ve öznitelikler.

Belirti - Öznitelik bu bağlam uyarısında geçerli değil

Kod düzenleyicisinde düzenlemeler yapıp görsel düzenleyiciye geçtiğinizde aşağıdaki iletiyi alırsınız ve daha önce seçilen öznitelik kaldırılır:

Attribute does not apply in this context. Use a different role assignment scope or remove the expression.

Neden

Belirtilen öznitelik, hiyerarşik ad alanı etkinleştirilmiş bir depolama hesabında kullanmak Version ID gibi geçerli kapsamda kullanılamaz.

Çözüm

Şu anda belirtilen özniteliği kullanmak istiyorsanız, rol atama koşulunu kaynak grubu kapsamı gibi farklı bir kapsamda oluşturun. Veya seçili durumdaki eylemleri kullanarak ifadeyi kaldırın ve yeniden oluşturun.

Belirti - Öznitelik tanınmıyor hatası

Kod düzenleyicisinde düzenlemeler yapıp görsel düzenleyiciye geçtiğinizde aşağıdaki iletiyi alırsınız ve daha önce seçilen öznitelik kaldırılır:

Attribute is not recognized. Select a valid attribute or remove the expression.

Neden

Belirtilen öznitelik, büyük olasılıkla bir yazım hatası nedeniyle tanınmıyor.

Çözüm

Kod düzenleyicisinde yazım hatasını düzeltin. Veya mevcut ifadeyi kaldırın ve bir öznitelik seçmek için görsel düzenleyicisini kullanın.

Belirti - Öznitelik değeri geçersiz hata

Kod düzenleyicisinde düzenlemeler yapıp görsel düzenleyiciye geçtiğinizde aşağıdaki iletiyi alırsınız ve daha önce seçilen öznitelik kaldırılır:

Attribute value is invalid. Select another attribute or value.

Neden

İfadenin sağ tarafında geçerli olmayan bir öznitelik veya değer bulunur.

Çözüm

Bir öznitelik seçmek veya değer belirtmek için görsel düzenleyicisini kullanın.

Belirti - Hiçbir eylem seçilmedi hatası

Görsel düzenleyicisindeki tüm eylemleri kaldırdığınızda aşağıdaki iletiyi alırsınız:

No actions selected. Select one or more actions to edit expressions.

Neden

Mevcut bir ifade var, ancak hedef olarak hiçbir eylem seçilmedi.

Çözüm

Eylem ekle bölümünde, ifadenin hedeflemesi gereken bir veya daha fazla eylem ekleyin.

Belirti - Kullanılabilir seçenek yok hatası

İfade eklemeyi denediğinizde aşağıdaki iletiyi alırsınız:

No options available

Neden

Birden çok eylemi hedeflemeyi seçtiniz ve seçili durumdaki tüm eylemler için geçerli olan öznitelik yok.

Çözüm

Eylem ekle bölümünde hedeflemek için daha az eylem seçin. Kaldırdığınız eylemleri hedeflemek için birden çok koşul ekleyin.

Belirti - Rol tanımı kimlikleri bulunamadı

İfade eklemeyi denediğinizde aşağıdaki iletiyi alırsınız:

Cannot find built-in or custom role definitions with IDs: <role IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.

Neden

Rol tanımı kimliği özniteliği için eklemeye çalıştığınız bir veya daha fazla rol tanımı kimliği bulunamadı veya doğru GUID biçimine sahip değil: 00000000-0000-0000-0000-000000000000.

Çözüm

Rolü seçmek için koşul düzenleyicisini kullanın. Kısa süre önce özel rolü eklediyseniz sayfayı yenileyin veya oturumu kapatıp yeniden oturum açın.

Belirti - Asıl kimlikler bulunamadı

İfade eklemeyi denediğinizde aşağıdaki iletiyi alırsınız:

Cannot find users, groups, or service principals in Azure Active Directory with principal IDs: <principal IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.

Neden

Asıl Kimlik özniteliği için eklemeye çalıştığınız bir veya daha fazla asıl kimlik bulunamadı veya doğru GUID biçimine sahip değil: 00000000-0000-0000-0000-000000000000.

Çözüm

Sorumluyu seçmek için koşul düzenleyicisini kullanın. Sorumluyu yakın zamanda eklediyseniz sayfayı yenileyin veya oturumu kapatıp yeniden oturum açın.

Azure PowerShell'de hata iletileri

Belirti - Kaynak özniteliği geçerli değil hatası

Azure PowerShell kullanarak bir koşulla rol ataması eklemeye çalıştığınızda şuna benzer bir hata alırsınız:

New-AzRoleAssignment : Resource attribute
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

Neden

Koşulunuzda dolar işareti ($) varsa, ön ekini bir backtick (') ile belirtmeniz gerekir.

Çözüm

Her dolar işaretinin önüne bir backtick (') ekleyin. Aşağıda bir örnek gösterilmektedir. PowerShell'de tırnak işareti kuralları hakkında daha fazla bilgi için bkz . Kuralları Alıntılama Hakkında.

$condition = "((!(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`$>] StringEquals 'Cascade'))"

Belirti - Bir koşulu kopyalayıp yapıştırırken hata oluştu

Neden

PowerShell kullanıyorsanız ve belgeden bir koşulu kopyalarsanız, bu koşul aşağıdaki hataya neden olan özel karakterler içerebilir. Bazı düzenleyiciler (Microsoft Word gibi), görünmeyen metni biçimlendirirken denetim karakterleri ekler.

The given role assignment condition is invalid.

Çözüm

Zengin bir metin düzenleyicisinden bir koşul kopyaladıysanız ve koşulun doğru olduğundan eminseniz, tüm boşlukları silin ve döndürür ve sonra ilgili alanları geri ekleyin. Alternatif olarak, düz metin düzenleyicisi veya Visual Studio Code gibi bir kod düzenleyicisi kullanın.

Azure CLI'da hata iletileri

Belirti - Kaynak özniteliği geçerli değil hatası

Azure CLI kullanarak bir koşulla rol ataması eklemeye çalıştığınızda aşağıdakine benzer bir hata alırsınız:

Resource attribute Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

Neden

Koşulunuzda dolar işareti ($) varsa, ön ek olarak ters eğik çizgi (\) eklemelisiniz.

Çözüm

Her dolar işaretine bir ters eğik çizgi (\) ekleyin. Aşağıda bir örnek gösterilmektedir. Bash'te tırnak işareti kuralları hakkında daha fazla bilgi için bkz . Çift Tırnaklar.

condition="((!(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\$>] StringEquals 'Cascade'))"

Belirti - Tanınmayan bağımsız değişkenler hatası

Azure CLI kullanarak bir koşulla rol ataması eklemeye çalıştığınızda aşağıdakine benzer bir hata alırsınız:

az: error: unrecognized arguments: --description {description} --condition {condition} --condition-version 2.0

Neden

Büyük olasılıkla rol atama koşulu parametrelerini desteklemeyen önceki bir Azure CLI sürümünü kullanıyorsunuz.

Çözüm

Azure CLI'nın en son sürümüne (2.18 veya üzeri) güncelleştirin. Daha fazla bilgi için bkz . Azure CLI'yi yükleme.

Belirti - Bash'te bir değişkene koşul dizesi atanırken hata oluştu

Bash'te bir değişkene koşul dizesi atamaya çalıştığınızda iletiyi alırsınız bash: !: event not found .

Neden

Bash'te geçmiş genişletmesi etkinleştirildiyse ünlem işareti (!) nedeniyle iletiyi bash: !: event not found görebilirsiniz.

Çözüm

komutuyla set +Hgeçmiş genişletmeyi devre dışı bırakın. Geçmiş genişletmeyi yeniden etkinleştirmek için kullanın set -H.

Sonraki adımlar