Azure CLI kullanarak Azure rol atama koşullarını ekleme veya düzenleme
Azure rol atama koşulu, daha ayrıntılı erişim denetimi sağlamak için isteğe bağlı olarak rol atamanıza ekleyebileceğiniz ek bir denetimdir. Örneğin, bir nesnenin nesneyi okumak için belirli bir etikete sahip olmasını gerektiren bir koşul ekleyebilirsiniz. Bu makalede, Azure CLI kullanarak rol atamalarınız için koşulların nasıl ekleneceği, düzenleneceği, listeleneceği veya silineceği açıklanır.
Ön koşullar
Rol atama koşullarını ekleme veya düzenleme önkoşulları hakkında bilgi için bkz . Koşullar önkoşulları.
Koşul ekle
Rol atama koşulu eklemek için az role assignment create komutunu kullanın. az role assignment create komutu, koşullarla ilgili aşağıdaki parametreleri içerir.
Parametre | Türü | Veri Akışı Açıklaması |
---|---|---|
condition |
String | Kullanıcıya izin verilebilen koşul. |
condition-version |
String | Koşul söz diziminin sürümü. olmadan --condition-version belirtilirse--condition , sürüm varsayılan 2.0 değerine ayarlanır. |
Aşağıdaki örnekte, Depolama Blob Veri Okuyucusu rolünün bir koşulla nasıl atanacakları gösterilmektedir. Koşul, kapsayıcı adının 'blobs-example-container' değerine eşit olup olmadığını denetler.
az role assignment create --role "Storage Blob Data Reader" --scope /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName --assignee "user1@contoso.com" \
--description "Read access if container name equals blobs-example-container" \
--condition "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))" \
--condition-version "2.0"
Aşağıda çıktının bir örneği gösterilmektedir:
{
"canDelegate": null,
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))",
"conditionVersion": "2.0",
"description": "Read access if container name equals blobs-example-container",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
"name": "{roleAssignmentId}",
"principalId": "{userObjectId}",
"principalType": "User",
"resourceGroup": "{resourceGroup}",
"roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}",
"type": "Microsoft.Authorization/roleAssignments"
}
Koşulu düzenleme
Mevcut rol atama koşulunu düzenlemek için az role assignment update ve JSON dosyasını giriş olarak kullanın. Aşağıda koşul ve açıklamanın güncelleştirildiği örnek bir JSON dosyası gösterilmektedir. condition
Yalnızca , conditionVersion
ve description
özellikleri düzenlenebilir. Rol atama koşulunu güncelleştirmek için tüm özellikleri belirtmeniz gerekir.
{
"canDelegate": null,
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container' OR @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container2'))",
"conditionVersion": "2.0",
"description": "Read access if container name equals blobs-example-container or blobs-example-container2",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
"name": "{roleAssignmentId}",
"principalId": "{userObjectId}",
"principalType": "User",
"resourceGroup": "{resourceGroup}",
"roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}",
"type": "Microsoft.Authorization/roleAssignments"
}
Rol atamasının koşulunu güncelleştirmek için az role assignment update komutunu kullanın.
az role assignment update --role-assignment "./path/roleassignment.json"
Aşağıda çıktının bir örneği gösterilmektedir:
{
"canDelegate": null,
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container' OR @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container2'))",
"conditionVersion": "2.0",
"description": "Read access if container name equals blobs-example-container or blobs-example-container2",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
"name": "{roleAssignmentId}",
"principalId": "{userObjectId}",
"principalType": "User",
"resourceGroup": "{resourceGroup}",
"roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}",
"type": "Microsoft.Authorization/roleAssignments"
}
Koşulu listeleme
Rol atama koşulunu listelemek için az role assignment list komutunu kullanın. Daha fazla bilgi için bkz . Azure CLI kullanarak Azure rol atamalarını listeleme.
Koşulu silme
Rol atama koşulunu silmek için rol atama koşulunu düzenleyin ve ve condition
condition-version
özelliklerini boş bir dize (""
) veya null
olarak ayarlayın.
Alternatif olarak, hem rol atamasını hem de koşulu silmek istiyorsanız az role assignment delete komutunu kullanabilirsiniz. Daha fazla bilgi için, bkz. Azure rol atamalarını kaldırma.