如何修改对 Azure Monitor 的访问权限
默认情况下,Grafana 实例在创建后附带一个“监视读取者”角色,该角色授予给订阅中的所有 Azure Monitor 数据和 Log Analytics 资源。
这意味着新的 Grafana 实例可以访问和搜索订阅中的所有监视数据。 它可以查看来自所有资源的 Azure Monitor 指标和日志,以及订阅中 Log Analytics 工作区内存储的任何日志。
本文介绍如何手动授予 Azure 托管 Grafana 使用托管标识访问 Azure 资源的权限。
先决条件
登录 Azure
使用 Azure 帐户登录到 https://portal.azure.cn/ 的 Azure 门户。
编辑 Azure Monitor 权限
若要编辑特定资源的权限,请执行以下步骤。
打开包含要检索的监视数据的资源。 在此示例中,我们将配置 Application Insights 资源。
选择“访问控制 (IAM)”。
在“授予对此资源的访问权限”下选择“添加角色分配”。
门户将列出可以分配给 Azure 托管 Grafana 资源的所有角色。 选择角色。 例如,选择“监视读取者”,然后选择“下一步”。
对于“将访问权限分配给”,请选择“托管标识”。
单击“选择成员”。
选择包含你的托管 Grafana 实例的订阅。
对于“托管标识”,请选择“Azure 托管 Grafana”。
选择一个或多个托管 Grafana 实例。
单击“选择”以确认
选择“下一步”,然后选择“查看 + 分配”以确认分配新权限。
使用 az role assignment create 命令分配角色分配。
在下面的代码中,请替换以下占位符:
<assignee>
:如果是 --assignee 参数,则输入代理人的对象 ID、用户登录名或服务主体名称。 如果是 --assignee-object-id 参数,则输入用户或组、服务主体或托管标识的对象 ID。 对于托管标识,请使用主体 ID。 对于服务主体,请使用对象 ID,而不是使用应用 ID。 有关详细信息,请参阅 az role assignment create 命令。
<roleNameOrId>
:输入角色的名称或 ID。 对于“监视读取者”,请输入 Monitoring Reader
或 43d0d8ad-25c7-4714-9337-8ba259a9fe05
。
<scope>
:输入 Azure 托管 Grafana 需要访问的资源的完整 ID。
az role assignment create --assignee "<assignee>" \
--role "<roleNameOrId>" \
--scope "<scope>"
或
az role assignment create --assignee-object-id "<assignee>" --assignee-principal-type "<ForeignGroup / Group / ServicePrincipal / User>" \
--role "<roleNameOrId>" \
--scope "<scope>"
示例:为 Azure 托管 Grafana 实例分配权限以使用托管标识访问 Application Insights 资源。
az role assignment create --assignee-object-id "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" --assignee-principal-type "ServicePrincipal" \
--role "Monitoring Reader" \
--scope "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-rg/providers/microsoft.insights/components/myappinsights/"
有关使用 Azure CLI 分配 Azure 角色的详细信息,请参阅基于角色的访问控制文档。
后续步骤