Azure Batch 服务的基于角色的访问控制
Azure Batch 服务支持一组内置 Azure 角色,这些角色为 Azure Batch 帐户提供不同级别的权限。 Azure 基于角色的访问控制(Azure RBAC)是用于管理对 Azure 资源的个人访问的授权系统,可以将特定权限分配给需要与 Batch 帐户交互的用户、服务主体或其他标识。 还可以使用自定义细化权限分配自定义角色,以适应特定应用场景。
注意
所有 RBAC(内置和自定义的)角色适用于通过 Microsoft Entra ID 进行身份验证的用户,而不是 Batch 共享密钥凭据。 Auzre Batch 共享密钥凭据为批处理帐户提供完全权限。
分配 Azure RBAC
请遵循以下步骤,将 Azure RBAC 角色分配给用户、组、服务主体或托管标识。 有关详细步骤,请参阅使用 Azure 门户分配 Azure 角色。
在 Azure 门户中,导航至特定 Batch 帐户。
提示
你还可以为整个资源组、订阅或管理组设置 Azure RBAC。 要执行此操作,请选择所需的作用域级别,然后导航到所需的项目。 例如,选择“资源组”,然后导航到特定的资源组。
在左侧导航栏中,选择“访问控制(IAM)”。
在“访问控制(IAM)”页上,选择“添加角色分配”。
在“添加角色分配”页上,选择“角色”选项卡,然后选择一个 Azure Batch 内置 RBAC 角色。
选择“成员”选项卡,然后选择“成员”下的“选择成员”。
在“选择成员”屏幕上,搜索并选择用户、组、服务主体或托管标识,然后选择“选择”。
注意
将应用程序配置为使用服务主体对 Azure Batch 服务进行身份验证时,请在此处搜索并选择你的应用程序,以配置其对 Azure Batch 帐户的访问和权限。
在“添加角色分配”页面上,选择“查看 + 分配”。
现在,Azure Batch 帐户的“访问控制 (IAM)”页面的“角色分配”选项卡上会显示目标身份。
Azure Batch 内置 RBAC 角色
Azure Batch 具有一些预定义角色,用于常见的用户应用场景,确保有效地将 Azure Batch 帐户上的适当访问级别分配给特定职责的身份。
内置角色 说明 ID Azure Batch 帐户参与者 授予管理所有 Batch 资源(包括 Batch 帐户、池和作业)的完全访问权限。 29fe4964-1e60-436b-bd3a-77fd4c178b3c Azure Batch 帐户读取者 允许查看 Batch 帐户中的所有资源,包括池和作业。 11076f67-66f6-4be0-8f6b-f0609fd05cc9 Azure Batch 数据参与者 授予管理 Batch 池和作业的权限,但不允许修改帐户。 6aaa78f1-f7de-44ca-8722-c64a23943cae Azure Batch 作业提交者 允许在 Batch 帐户中提交和管理作业。 48e5e92e-a480-4e71-aa9c-2778f4c13781
权限 Azure Batch 帐户参与者 Azure Batch 帐户读取者 Azure Batch 数据参与者 Azure Batch 作业提交者 列出 Batch 帐户或查看 Batch 帐户的属性 ✓ ✓ ✓ 创建、更新或删除 Batch 帐户 ✓ 列出批处理帐户的访问密钥 ✓ 再生成批处理帐户的访问密钥 ✓ 列出或查看 Batch 帐户上应用程序和应用程序包的属性 ✓ ✓ ✓ ✓ 在 Batch 帐户上创建、更新或删除应用程序和应用程序包 ✓ ✓ 列出或查看 Batch 帐户上证书的属性 ✓ ✓ ✓ 在 Batch 帐户上创建、更新或删除证书 ✓ ✓ 列出或查看 Batch 帐户上池的属性 ✓ ✓ ✓ ✓ 在 Batch 帐户上创建、更新或删除池 ✓ ✓ 列出或查看 Batch 帐户上作业的属性 ✓ ✓ ✓ ✓ 在 Batch 帐户上创建、更新或删除作业 ✓ ✓ ✓ 列出或查看 Batch 帐户上作业计划的属性 ✓ ✓ ✓ ✓ 在 Batch 帐户上创建、更新或删除作业计划 ✓ ✓ ✓
警告
Batch 帐户证书功能已停用。
Azure Batch 帐户参与者
授予管理所有 Batch 资源(包括 Batch 帐户、池和作业)的完全访问权限。
操作 说明 Microsoft.Authorization/*/read 读取角色和角色分配。 Microsoft.Insights/alertRules/* 创建和管理经典指标警报。 Microsoft.Resources/deployments/* 创建和管理部署。 Microsoft.Resources/subscriptions/resourceGroups/read 获取或列出资源组。 Microsoft.Batch/batchAccounts/* 不操作 无 DataActions Microsoft.Batch/batchAccounts/* NotDataActions 无
{
"assignableScopes": [
"/"
],
"description": "Grants full access to manage all Batch resources, including Batch accounts, pools and jobs.",
"id": "/providers/Microsoft.Authorization/roleDefinitions/29fe4964-1e60-436b-bd3a-77fd4c178b3c",
"permissions": [
{
"actions": [
"Microsoft.Authorization/*/read",
"Microsoft.Batch/batchAccounts/*",
"Microsoft.Insights/alertRules/*",
"Microsoft.Resources/deployments/*",
"Microsoft.Resources/subscriptions/resourceGroups/read"
],
"dataActions": [
"Microsoft.Batch/batchAccounts/*"
],
"notActions": [],
"notDataActions": []
}
],
"roleName": "Azure Batch Account Contributor",
"roleType": "BuiltInRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
Azure Batch 帐户读取者
允许查看 Batch 帐户中的所有资源,包括池和作业。
操作 说明 Microsoft.Batch/batchAccounts/read 列出批处理帐户,或获取批处理帐户的属性。 Microsoft.Batch/batchAccounts/*/read 查看 Batch 帐户中的所有资源。 Microsoft.Resources/subscriptions/resourceGroups/read 获取或列出资源组。 不操作 无 DataActions Microsoft.Batch/*/read 查看 Batch 帐户中的所有资源。 NotDataActions 无
{
"assignableScopes": [
"/"
],
"description": "Lets you view all resources including pools and jobs in the Batch account.",
"id": "/providers/Microsoft.Authorization/roleDefinitions/11076f67-66f6-4be0-8f6b-f0609fd05cc9",
"permissions": [
{
"actions": [
"Microsoft.Batch/batchAccounts/read",
"Microsoft.Batch/batchAccounts/*/read",
"Microsoft.Resources/subscriptions/resourceGroups/read"
],
"dataActions": [
"Microsoft.Batch/batchAccounts/*/read"
],
"notActions": [],
"notDataActions": []
}
],
"roleName": "Azure Batch Account Reader",
"roleType": "BuiltInRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
Azure Batch 数据参与者
授予管理 Batch 池和作业的权限,但不允许修改帐户。
操作 说明 Microsoft.Authorization/*/read 读取角色和角色分配。 Microsoft.Batch/batchAccounts/read 列出批处理帐户,或获取批处理帐户的属性。 Microsoft.Batch/batchAccounts/applications/* 在 Batch 帐户上创建和管理应用程序和应用程序包。 Microsoft.Batch/batchAccounts/certificates/* 在 Batch 帐户上创建和管理证书。 Microsoft.Batch/batchAccounts/certificateOperationResults/* 获取 Batch 帐户上长期运行的证书操作的结果。 Microsoft.Batch/pools/* 在 Batch 帐户上创建和管理池。 Microsoft.Batch/poolOperationResults/* 获取 Batch 帐户上长期运行的池操作的结果。 Microsoft.Batch/locations/*/read 获取给定位置的 Batch 帐户操作结果/Batch 配额/支持的 VM 大小。 Microsoft.Insights/alertRules/* 创建和管理经典指标警报。 Microsoft.Resources/deployments/* 创建和管理部署。 Microsoft.Resources/subscriptions/resourceGroups/read 获取或列出资源组。 不操作 无 DataActions Microsoft.Batch/batchAccounts/jobSchedules/* 在 Batch 帐户上创建和管理作业计划。 Microsoft.Batch/batchAccounts/jobs/* 在 Batch 帐户上创建和管理作业。 NotDataActions 无
{
"assignableScopes": [
"/"
],
"description": "Grants permissions to manage Batch pools and jobs but not to modify accounts.",
"id": "/providers/Microsoft.Authorization/roleDefinitions/6aaa78f1-f7de-44ca-8722-c64a23943cae",
"permissions": [
{
"actions": [
"Microsoft.Authorization/*/read",
"Microsoft.Batch/batchAccounts/read",
"Microsoft.Batch/batchAccounts/applications/*",
"Microsoft.Batch/batchAccounts/certificates/*",
"Microsoft.Batch/batchAccounts/certificateOperationResults/*",
"Microsoft.Batch/batchAccounts/pools/*",
"Microsoft.Batch/batchAccounts/poolOperationResults/*",
"Microsoft.Batch/locations/*/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Resources/deployments/*",
"Microsoft.Resources/subscriptions/resourceGroups/read"
],
"dataActions": [
"Microsoft.Batch/batchAccounts/jobSchedules/*",
"Microsoft.Batch/batchAccounts/jobs/*"
],
"notActions": [],
"notDataActions": []
}
],
"roleName": "Azure Batch Data Contributor",
"roleType": "BuiltInRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
Azure Batch 作业提交者
允许在 Batch 帐户中提交和管理作业。
操作 说明 Microsoft.Batch/batchAccounts/applications/read 列出应用程序,或获取应用程序的属性。 Microsoft.Batch/batchAccounts/applications/versions/read 获取应用程序包的属性。 Microsoft.Batch/pools/read 列出 Batch 帐户上的池,或获取池的属性。 Microsoft.Insights/alertRules/* 创建和管理经典指标警报。 Microsoft.Resources/subscriptions/resourceGroups/read 获取或列出资源组。 不操作 无 DataActions Microsoft.Batch/batchAccounts/jobSchedules/* 在 Batch 帐户上创建和管理作业计划。 Microsoft.Batch/batchAccounts/jobs/* 在 Batch 帐户上创建和管理作业。 NotDataActions 无
{
"assignableScopes": [
"/"
],
"description": "Lets you submit and manage jobs in the Batch account.",
"id": "/providers/Microsoft.Authorization/roleDefinitions/48e5e92e-a480-4e71-aa9c-2778f4c13781",
"permissions": [
{
"actions": [
"Microsoft.Batch/batchAccounts/applications/read",
"Microsoft.Batch/batchAccounts/applications/versions/read",
"Microsoft.Batch/batchAccounts/pools/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Resources/subscriptions/resourceGroups/read"
],
"dataActions": [
"Microsoft.Batch/batchAccounts/jobSchedules/*",
"Microsoft.Batch/batchAccounts/jobs/*"
],
"notActions": [],
"notDataActions": []
}
],
"roleName": "Azure Batch Job Submitter",
"roleType": "BuiltInRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
分配自定义角色
如果 Azure Batch 内置角色无法满足你的需求,可以使用 Azure 自定义角色向用户授予提交作业、任务等精细权限。 可以使用自定义角色向 Microsoft Entra ID 授予或拒绝以下 Azure Batch RBAC 操作的权限。
- Microsoft.Batch/batchAccounts/pools/write
- Microsoft.Batch/batchAccounts/pools/delete
- Microsoft.Batch/batchAccounts/pools/read
- Microsoft.Batch/batchAccounts/jobSchedules/write
- Microsoft.Batch/batchAccounts/jobSchedules/delete
- Microsoft.Batch/batchAccounts/jobSchedules/read
- Microsoft.Batch/batchAccounts/jobs/write
- Microsoft.Batch/batchAccounts/jobs/delete
- Microsoft.Batch/batchAccounts/jobs/read
- Microsoft.Batch/batchAccounts/certificates/write
- Microsoft.Batch/batchAccounts/certificates/delete
- Microsoft.Batch/batchAccounts/certificates/read
- Microsoft.Batch/batchAccounts/applications/write
- Microsoft.Batch/batchAccounts/applications/delete
- Microsoft.Batch/batchAccounts/applications/read
- Microsoft.Batch/batchAccounts/applications/versions/write
- Microsoft.Batch/batchAccounts/applications/versions/delete
- Microsoft.Batch/batchAccounts/applications/versions/read
- Microsoft.Batch/batchAccounts/read(适用于任何读取操作)
- Microsoft.Batch/batchAccounts/listKeys/action(适用于任何操作)
提示
使用 AutoPool 的作业需要池级别写入权限。
注意
需要在 actions
字段中指定某些角色分配,而其他角色分配需要在 dataActions
字段中指定。 需要检查 actions
和 dataActions
,并了解分配给角色的完整功能范围。 有关详细信息,请参阅 Azure 资源提供程序操作。
下面的示例演示了 Azure Batch 自定义角色定义的过程:
{
"properties":{
"roleName":"Azure Batch Custom Job Submitter",
"type":"CustomRole",
"description":"Allows a user to submit autopool jobs to Azure Batch",
"assignableScopes":[
"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
],
"permissions":[
{
"actions":[
"Microsoft.Batch/*/read",
"Microsoft.Batch/batchAccounts/pools/write",
"Microsoft.Batch/batchAccounts/pools/delete",
"Microsoft.Authorization/*/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Support/*",
"Microsoft.Insights/alertRules/*"
],
"notActions":[
],
"dataActions":[
"Microsoft.Batch/batchAccounts/jobs/*",
"Microsoft.Batch/batchAccounts/jobSchedules/*"
],
"notDataActions":[
]
}
]
}
}