获取 Node.js 中资源组的访问控制列表 (IAM)
Get access control list (IAM) of a resource group in Node.js
我正在使用 Node.js 与 Azure 交互,例如,创建资源组:
const { ResourceManagementClient } = require('azure-arm-resource');
createResourceGroup(location, groupName) {
const groupParameters = {
location: location,
};
return this.resourceClient.resourceGroups.createOrUpdate(groupName, groupParameters);
}
如何使用这些 azure-arm 模块来检索资源组的访问控制 (IAM) 列表?
我的意思是这个列表:
您将需要使用 Azure Authorization Modules for Node.js
这是基于 Microsoft Docs 的示例代码
正在安装 Azure 授权模块
npm install azure-arm-authorization
列出特定资源组的所有角色分配
const msRestAzure = require('ms-rest-azure');
const authorizationManagement = require('azure-arm-authorization');
const resourceGroup = 'resource-group-name';
const subscriptionId = 'your-subscription-id';
msRestAzure.interactiveLogin().then(credentials => {
const client = new authorizationManagement(credentials, subscriptionId);
client.roleAssignments.listForResourceGroup(resourceGroupName).then(result => {
console.log(result);
});
});
另外,请注意,用于这些操作的实际 REST API 是:
Role Assignments - List For Resource Group
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments?api-version=2015-07-01
类似 API,它接受通用范围(不仅可以处理资源组,还可以处理其他资源)
Role Assignments - List For Scope
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments?api-version=2015-07-01
更新(试图回答评论中的问题)
使用上面的代码列出特定资源组的所有角色分配(或角色分配 - 资源组 REST API 的列表)..您将返回角色分配的集合,就像您的评论一样反映。
根据您问题的屏幕截图,我想这就是您所需要的,因为您选择了“角色分配”选项卡,并且列表显示在 Azure 门户中。
现在角色分配本身由以下组成:
安全主体 ID(您尝试通过角色授予权限的用户、组、服务主体等)
角色定义 ID(您分配的角色的标识符,例如贡献者、所有者或相关的自定义 RBAC 角色)
范围(分配此角色的范围,如订阅级别或特定资源组或资源级别)
此概念在 Microsoft Docs
上有详细且非常好的解释
为了理解响应 UUID,您将能够找到所有角色定义的列表(使用 Role Definitions List through node SDK or using Role Definitions - List REST API
了解他们的 ID、名称描述等)
主体 ID 是用户、组或应用服务主体的 ID。
在您的案例中,范围是您尝试为其查询角色分配的资源组。
我正在使用 Node.js 与 Azure 交互,例如,创建资源组:
const { ResourceManagementClient } = require('azure-arm-resource');
createResourceGroup(location, groupName) {
const groupParameters = {
location: location,
};
return this.resourceClient.resourceGroups.createOrUpdate(groupName, groupParameters);
}
如何使用这些 azure-arm 模块来检索资源组的访问控制 (IAM) 列表?
我的意思是这个列表:
您将需要使用 Azure Authorization Modules for Node.js
这是基于 Microsoft Docs 的示例代码
正在安装 Azure 授权模块
npm install azure-arm-authorization
列出特定资源组的所有角色分配
const msRestAzure = require('ms-rest-azure');
const authorizationManagement = require('azure-arm-authorization');
const resourceGroup = 'resource-group-name';
const subscriptionId = 'your-subscription-id';
msRestAzure.interactiveLogin().then(credentials => {
const client = new authorizationManagement(credentials, subscriptionId);
client.roleAssignments.listForResourceGroup(resourceGroupName).then(result => {
console.log(result);
});
});
另外,请注意,用于这些操作的实际 REST API 是:
Role Assignments - List For Resource Group
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments?api-version=2015-07-01
类似 API,它接受通用范围(不仅可以处理资源组,还可以处理其他资源)
Role Assignments - List For Scope
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments?api-version=2015-07-01
更新(试图回答评论中的问题)
使用上面的代码列出特定资源组的所有角色分配(或角色分配 - 资源组 REST API 的列表)..您将返回角色分配的集合,就像您的评论一样反映。
根据您问题的屏幕截图,我想这就是您所需要的,因为您选择了“角色分配”选项卡,并且列表显示在 Azure 门户中。
现在角色分配本身由以下组成:
安全主体 ID(您尝试通过角色授予权限的用户、组、服务主体等)
角色定义 ID(您分配的角色的标识符,例如贡献者、所有者或相关的自定义 RBAC 角色)
范围(分配此角色的范围,如订阅级别或特定资源组或资源级别)
此概念在 Microsoft Docs
上有详细且非常好的解释为了理解响应 UUID,您将能够找到所有角色定义的列表(使用 Role Definitions List through node SDK or using Role Definitions - List REST API
了解他们的 ID、名称描述等)主体 ID 是用户、组或应用服务主体的 ID。
在您的案例中,范围是您尝试为其查询角色分配的资源组。