javascript - 在 Node.js 中获取资源组的访问控制列表 (IAM)
问题描述
我正在使用 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) 列表?
解决方案
您将需要使用适用于 Node.js 的 Azure 授权模块
这是基于 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 是:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments?api-version=2015-07-01
类似的 API,它接受一个通用范围(不仅适用于资源组,还适用于其他资源)
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments?api-version=2015-07-01
更新(试图回答评论中的查询)
使用上面的代码列出特定资源组的所有角色分配(或角色分配 - 资源组 REST API 的列表).. 您将收到一个角色分配的集合,就像您的评论所反映的那样。
我想这是您根据问题的屏幕截图所需要的,因为您选择了“角色分配”选项卡,并且该列表显示在下面的 Azure 门户中。
现在角色分配本身由以下组成:
安全主体 ID(您尝试通过角色授予权限的用户、组、服务主体等)
角色定义 ID(您分配的角色的标识符,例如贡献者、所有者或自定义 RBAC 角色)
范围(分配此角色的位置,例如订阅级别或特定资源组或资源级别)
这个概念在Microsoft Docs上得到了详细的解释和很好的解释
为了您了解响应 UUID,您将能够找到所有角色定义的列表(了解他们的 ID、名称描述等。通过节点 SDK 使用角色定义列表或使用角色定义 - 列出 REST API
主体 ID 是用户、组或应用服务主体的 ID。
在您的情况下,范围是您尝试查询角色分配的资源组。
推荐阅读
- java - 单击后防止 JButton repaint()
- c - 将多个作为文件名的参数从多个 txt 文件传递给在 linux 终端中运行的 ac 程序
- oracle - 无法为 oracle 表中的更改日志编译触发器
- node.js - Nodemailer“连接ETIMEDOUT”与自定义域
- mysql - 查询某个时间间隔内发生的记录
- c# - 试图将新项目插入下拉列表?
- reactjs - 为 web (HTML/JavaScript) 导出 React Native 应用程序?
- python - 比较列表中的项目并找到相似性
- vba - 使用 VBA (DDE /OLE/ODBC/ADO) 控制 Windows 应用程序
- android - SharedElements 过渡在 Go 上有效,但在 Back 上无效