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 daha önce düzenlediğinizde, koşul şablonunu kullanarak düzenlemiştiniz.
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.
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
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 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.
- Öznitelik Tanımı Okuyucusu
- Öznitelik Atama Okuyucusu
- Öznitelik Tanımı Yönetici istrator
- Öznitelik Ataması Yönetici istrator
Ö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.
Ö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.
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.
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 +H
geçmiş genişletmeyi devre dışı bırakın. Geçmiş genişletmeyi yeniden etkinleştirmek için kullanın set -H
.