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.
Azure yerleşik rolleri kuruluşunuzun ihtiyaçlarını karşılamıyorsa kendi özel rollerinizi oluşturabilirsiniz. Bu makalede REST API kullanarak özel rolleri listeleme, oluşturma, güncelleştirme veya silme işlemleri açıklanmaktadır.
Önkoşullar
Aşağıdaki sürümü kullanmanız gerekir:
-
2015-07-01veya sonrası
Daha fazla bilgi için bk . Azure RBAC REST API'lerinin API sürümleri.
Tüm özel rol tanımlarını listeleme
Kiracıdaki tüm özel rol tanımlarını listelemek için Rol Tanımları - Liste REST API'sini kullanın.
Aşağıdaki örnekte bir kiracıdaki tüm özel rol tanımları listelenmektedir:
İstek
GET https://management.azure.com/providers/Microsoft.Authorization/roleDefinitions?$filter=type+eq+'CustomRole'&api-version=2022-04-01Yanıt
{ "value": [ { "properties": { "roleName": "Billing Reader Plus", "type": "CustomRole", "description": "Read billing data and download invoices", "assignableScopes": [ "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15" ], "permissions": [ { "actions": [ "Microsoft.Authorization/*/read", "Microsoft.Billing/*/read", "Microsoft.Commerce/*/read", "Microsoft.Consumption/*/read", "Microsoft.Management/managementGroups/read", "Microsoft.CostManagement/*/read", "Microsoft.Billing/invoices/download/action", "Microsoft.CostManagement/exports/*" ], "notActions": [ "Microsoft.CostManagement/exports/delete" ], "dataActions": [], "notDataActions": [] } ], "createdOn": "2021-05-22T21:57:23.5764138Z", "updatedOn": "2021-05-22T21:57:23.5764138Z", "createdBy": "68f66d4c-c0eb-4009-819b-e5315d677d70", "updatedBy": "68f66d4c-c0eb-4009-819b-e5315d677d70" }, "id": "/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c", "type": "Microsoft.Authorization/roleDefinitions", "name": "17adabda-4bf1-4f4e-8c97-1f0cab6dea1c" } ] }
Bir kapsamdaki tüm özel rol tanımlarını listeleme
Bir kapsamdaki özel rol tanımlarını listelemek için Rol Tanımları - Liste REST API'sini kullanın.
Aşağıdaki istekle başlayın:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01URI'nin içinde {scope} öğesini rolleri listelemek istediğiniz kapsamla değiştirin.
Scope Türü subscriptions/{subscriptionId1}Abonelik subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}Kaynak grubu subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1}Kaynak providers/Microsoft.Management/managementGroups/{groupId1}Yönetim grubu {filter} öğesini rol türüyle değiştirin.
Filtre Açıklama $filter=type+eq+'CustomRole'CustomRole türüne göre filtreleme Aşağıdaki örnekte bir abonelikteki tüm özel rol tanımları listelenir:
İstek
GET https://management.azure.com/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions?$filter=type+eq+'CustomRole'&api-version=2022-04-01Yanıt
{ "value": [ { "properties": { "roleName": "Billing Reader Plus", "type": "CustomRole", "description": "Read billing data and download invoices", "assignableScopes": [ "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15" ], "permissions": [ { "actions": [ "Microsoft.Authorization/*/read", "Microsoft.Billing/*/read", "Microsoft.Commerce/*/read", "Microsoft.Consumption/*/read", "Microsoft.Management/managementGroups/read", "Microsoft.CostManagement/*/read", "Microsoft.Billing/invoices/download/action", "Microsoft.CostManagement/exports/*" ], "notActions": [ "Microsoft.CostManagement/exports/delete" ], "dataActions": [], "notDataActions": [] } ], "createdOn": "2021-05-22T21:57:23.5764138Z", "updatedOn": "2021-05-22T21:57:23.5764138Z", "createdBy": "68f66d4c-c0eb-4009-819b-e5315d677d70", "updatedBy": "68f66d4c-c0eb-4009-819b-e5315d677d70" }, "id": "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c", "type": "Microsoft.Authorization/roleDefinitions", "name": "17adabda-4bf1-4f4e-8c97-1f0cab6dea1c" } ] }
Özel rol tanımını ada göre listeleme
Özel rol tanımı hakkında görünen adına göre bilgi almak için Rol Tanımları - REST API'sini Alma'yı kullanın.
Aşağıdaki istekle başlayın:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01URI'nin içinde {scope} öğesini rolleri listelemek istediğiniz kapsamla değiştirin.
Scope Türü subscriptions/{subscriptionId1}Abonelik subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}Kaynak grubu subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1}Kaynak providers/Microsoft.Management/managementGroups/{groupId1}Yönetim grubu {filter} öğesini rolün görünen adıyla değiştirin.
Filtre Açıklama $filter=roleName+eq+'{roleDisplayName}'Rolün tam görünen adının URL ile kodlanmış biçimini kullanın. Örneğin $filter=roleName+eq+'Virtual%20Machine%20Contributor'Aşağıdaki örnekte abonelikte Faturalama Okuyucusu Artı adlı özel bir rol tanımı listelenir:
İstek
GET https://management.azure.com/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName+eq+'Billing Reader Plus'&api-version=2022-04-01Yanıt
{ "value": [ { "properties": { "roleName": "Billing Reader Plus", "type": "CustomRole", "description": "Read billing data and download invoices", "assignableScopes": [ "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15" ], "permissions": [ { "actions": [ "Microsoft.Authorization/*/read", "Microsoft.Billing/*/read", "Microsoft.Commerce/*/read", "Microsoft.Consumption/*/read", "Microsoft.Management/managementGroups/read", "Microsoft.CostManagement/*/read", "Microsoft.Billing/invoices/download/action", "Microsoft.CostManagement/exports/*" ], "notActions": [ "Microsoft.CostManagement/exports/delete" ], "dataActions": [], "notDataActions": [] } ], "createdOn": "2021-05-22T21:57:23.5764138Z", "updatedOn": "2021-05-22T21:57:23.5764138Z", "createdBy": "68f66d4c-c0eb-4009-819b-e5315d677d70", "updatedBy": "68f66d4c-c0eb-4009-819b-e5315d677d70" }, "id": "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c", "type": "Microsoft.Authorization/roleDefinitions", "name": "17adabda-4bf1-4f4e-8c97-1f0cab6dea1c" } ] }
Özel rol tanımını kimliğine göre listeleme
Özel bir rol tanımı hakkında benzersiz tanımlayıcısına göre bilgi almak için Rol Tanımları - REST API'sini Alma'yı kullanın.
Rolün GUID tanımlayıcısını almak için Rol Tanımları - Liste REST API'sini kullanın.
Aşağıdaki istekle başlayın:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01URI'nin içinde {scope} öğesini rolleri listelemek istediğiniz kapsamla değiştirin.
Scope Türü subscriptions/{subscriptionId1}Abonelik subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}Kaynak grubu subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1}Kaynak providers/Microsoft.Management/managementGroups/{groupId1}Yönetim grubu {roleDefinitionId} öğesini rol tanımının GUID tanımlayıcısıyla değiştirin.
Aşağıdaki örnekte, bir abonelikte 17adabda-4bf1-4f4e-8c97-1f0cab6dea1c tanımlayıcısıyla özel bir rol tanımı listelenir:
İstek
GET https://management.azure.com/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c?api-version=2022-04-01Yanıt
{ "properties": { "roleName": "Billing Reader Plus", "type": "CustomRole", "description": "Read billing data and download invoices", "assignableScopes": [ "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15" ], "permissions": [ { "actions": [ "Microsoft.Authorization/*/read", "Microsoft.Billing/*/read", "Microsoft.Commerce/*/read", "Microsoft.Consumption/*/read", "Microsoft.Management/managementGroups/read", "Microsoft.CostManagement/*/read", "Microsoft.Billing/invoices/download/action", "Microsoft.CostManagement/exports/*" ], "notActions": [ "Microsoft.CostManagement/exports/delete" ], "dataActions": [], "notDataActions": [] } ], "createdOn": "2021-05-22T21:57:23.5764138Z", "updatedOn": "2021-05-22T21:57:23.5764138Z", "createdBy": "68f66d4c-c0eb-4009-819b-e5315d677d70", "updatedBy": "68f66d4c-c0eb-4009-819b-e5315d677d70" }, "id": "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c", "type": "Microsoft.Authorization/roleDefinitions", "name": "17adabda-4bf1-4f4e-8c97-1f0cab6dea1c" }
Özel rol oluşturma
Özel rol oluşturmak için Rol Tanımları - REST API'sini Oluştur veya Güncelleştir'i kullanın. Bu API'yi çağırmak için, tüm assignableScopes üzerinde Microsoft.Authorization/roleDefinitions/write iznine sahip bir role atanmış bir kullanıcıyla oturum açmış olmanız gerekir. Yerleşik rollerden yalnızca Sahip ve Kullanıcı Erişimi Yöneticisi bu izni içerir.
Özel rolünüz için izinleri oluşturmak için kullanılabilen kaynak sağlayıcısı işlemlerinin listesini gözden geçirin.
Özel rol tanımlayıcısı olarak kullanılacak benzersiz bir kimlik oluşturmak için bir guid aracı kullanın. Tanımlayıcı şu biçimdedir:
00000000-0000-0000-0000-000000000000Aşağıdaki istek ve gövde ile başlayın:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01{ "name": "{roleDefinitionId}", "properties": { "roleName": "", "description": "", "type": "CustomRole", "permissions": [ { "actions": [ ], "notActions": [ ] } ], "assignableScopes": [ "/subscriptions/{subscriptionId1}", "/subscriptions/{subscriptionId2}", "/subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}", "/subscriptions/{subscriptionId2}/resourceGroups/{resourceGroup2}", "/providers/Microsoft.Management/managementGroups/{groupId1}" ] } }URI'nin içinde {scope} öğesini özel rolün ilk
assignableScopesöğesiyle değiştirin.Scope Türü subscriptions/{subscriptionId1}Abonelik subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}Kaynak grubu providers/Microsoft.Management/managementGroups/{groupId1}Yönetim grubu {roleDefinitionId} öğesini özel rolün GUID tanımlayıcısıyla değiştirin.
İstek gövdesinde {roleDefinitionId} öğesini GUID tanımlayıcısıyla değiştirin.
Abonelik veya kaynak grubuysa
assignableScopes, {subscriptionId} veya {resourceGroup} örneklerini tanımlayıcılarınızla değiştirin.Bir yönetim grubuysa
assignableScopes, {groupId} örneğini yönetim grubu tanımlayıcınızla değiştirin.özelliğinde
actions, rolün gerçekleştirilmeye izin verdiği eylemleri ekleyin.özelliğinde
notActions, izin verilenactionsdışında tutulan eylemleri ekleyin.roleNamevedescriptionözelliklerinde benzersiz bir rol adı ve bir açıklama belirtin. Özellikler hakkında daha fazla bilgi için bkz. Azure özel rolleri.Aşağıda bir istek gövdesi örneği gösterilmektedir:
{ "name": "88888888-8888-8888-8888-888888888888", "properties": { "roleName": "Virtual Machine Operator", "description": "Can monitor and restart virtual machines.", "type": "CustomRole", "permissions": [ { "actions": [ "Microsoft.Storage/*/read", "Microsoft.Network/*/read", "Microsoft.Compute/*/read", "Microsoft.Compute/virtualMachines/start/action", "Microsoft.Compute/virtualMachines/restart/action", "Microsoft.Authorization/*/read", "Microsoft.ResourceHealth/availabilityStatuses/read", "Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Insights/alertRules/*", "Microsoft.Support/*" ], "notActions": [] } ], "assignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000", "/providers/Microsoft.Management/managementGroups/marketing-group" ] } }
Özel rolü güncelleştirme
Özel bir rolü güncelleştirmek için Rol Tanımları - REST API'sini Oluştur veya Güncelleştir'i kullanın. Bu API'yi çağırmak için, Kullanıcı Erişim Yöneticisi gibi tüm assignableScopesüzerinde izni olan Microsoft.Authorization/roleDefinitions/write bir role atanmış bir kullanıcıyla oturum açmanız gerekir.
Özel rol hakkında bilgi almak için Rol Tanımları - Liste veya Rol Tanımları - REST API'sini alma seçeneğini kullanın. Daha fazla bilgi için önceki Tüm özel rol tanımlarını listeleme bölümüne bakın.
Aşağıdaki istekle başlayın:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01URI'nin içinde {scope} öğesini özel rolün ilk
assignableScopesöğesiyle değiştirin.Scope Türü subscriptions/{subscriptionId1}Abonelik subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}Kaynak grubu providers/Microsoft.Management/managementGroups/{groupId1}Yönetim grubu {roleDefinitionId} öğesini özel rolün GUID tanımlayıcısıyla değiştirin.
Özel rol hakkındaki bilgilere bağlı olarak, aşağıdaki biçime sahip bir istek gövdesi oluşturun:
{ "name": "{roleDefinitionId}", "properties": { "roleName": "", "description": "", "type": "CustomRole", "permissions": [ { "actions": [ ], "notActions": [ ] } ], "assignableScopes": [ "/subscriptions/{subscriptionId1}", "/subscriptions/{subscriptionId2}", "/subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}", "/subscriptions/{subscriptionId2}/resourceGroups/{resourceGroup2}", "/providers/Microsoft.Management/managementGroups/{groupId1}" ] } }İstek gövdesini, özel rolde yapmak istediğiniz değişikliklerle güncelleştirin.
Aşağıda, yeni tanılama ayarları eyleminin eklendiği bir istek gövdesi örneği gösterilmektedir:
{ "name": "88888888-8888-8888-8888-888888888888", "properties": { "roleName": "Virtual Machine Operator", "description": "Can monitor and restart virtual machines.", "type": "CustomRole", "permissions": [ { "actions": [ "Microsoft.Storage/*/read", "Microsoft.Network/*/read", "Microsoft.Compute/*/read", "Microsoft.Compute/virtualMachines/start/action", "Microsoft.Compute/virtualMachines/restart/action", "Microsoft.Authorization/*/read", "Microsoft.ResourceHealth/availabilityStatuses/read", "Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Insights/alertRules/*", "Microsoft.Insights/diagnosticSettings/*", "Microsoft.Support/*" ], "notActions": [] } ], "assignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000", "/providers/Microsoft.Management/managementGroups/marketing-group" ] } }
Özel rolü silme
Özel bir rolü silmek için Rol Tanımları - REST API'yi sil'i kullanın. Bu API'yi çağırmak için, tüm assignableScopes üzerinde Microsoft.Authorization/roleDefinitions/delete iznine sahip bir role atanmış bir kullanıcıyla oturum açmanız gerekir. Yerleşik rollerden yalnızca Sahip ve Kullanıcı Erişimi Yöneticisi bu izni içerir.
Özel rolü kullanan tüm rol atamalarını kaldırın. Daha fazla bilgi için bkz Özel bir rolü silmek için rol atamalarını bulma.
Özel rolün GUID tanımlayıcısını almak için Rol Tanımları - Liste veya Rol Tanımları - GET REST API'sini kullanın. Daha fazla bilgi için önceki Tüm özel rol tanımlarını listeleme bölümüne bakın.
Aşağıdaki istekle başlayın:
DELETE https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01URI'nin içinde {scope} öğesini özel rolü silmek istediğiniz kapsamla değiştirin.
Scope Türü subscriptions/{subscriptionId1}Abonelik subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}Kaynak grubu providers/Microsoft.Management/managementGroups/{groupId1}Yönetim grubu {roleDefinitionId} öğesini özel rolün GUID tanımlayıcısıyla değiştirin.