配置IAM自定义权限策略
更新时间:2025-01-22
Prometheus监控CProm提供的系统授权策略的授权粒度比较粗,如果这种粗粒度授权策略不能满足您的需要,那么您可以创建自定义授权策略。例如,您想控制对某个具体的实例的操作权限,您可以使用自定义授权策略满足细粒度访问要求。
操作步骤
按策略生成器创建
- 登录百度智能云官网,并进入管理控制台。
- 在控制台右上角个人信息中单击多用户访问控制,进入“多用户访问控制”控制台页面。
- 在左侧导航栏中选择“策略管理”进入“权限策略列表”页面。
- 单击创建策略,在“选择创建策略的方式”弹出框中选择按策略生成器创建。
- 在“在“创建权限策略”页面完成策略名称和权限配置。
- 单击“添加权限”,在弹框中完成权限配置。
- 单击确认按钮完成创建,您可以在“权限策略列表”页面查看到创建的策略。
- 将自定义权限策略授权给目标IAM子用户,具体操作,请参见子用户授权。
按策略语法创建
在创建自定义授权策略时,您需要了解授权策略语言的基本结构和语法。更多信息,请参见策略语法说明。
- 登录百度智能云官网,并进入管理控制台。
- 在控制台右上角个人信息中单击多用户访问控制,进入“多用户访问控制”控制台页面。
- 在左侧导航栏中选择“策略管理”进入“权限策略列表”页面。
- 单击创建策略,在“选择创建策略的方式”弹出框中选择按策略语法创建。
- 在“创建权限策略”页面编写自定义授权策略内容,当前以授予全地域所有实例的完全控制权限为例:
{
"version": "v1",
"accessControlList": [
{
"service": "bce:cprom",
"region": "*",
"effect": "Allow",
"resource": [
"Cprom_Instance/*"
],
"permission": [
"INSTANCE_CREATE",
"INSTANCE_READ",
"INSTANCE_UPDATE",
"INSTANCE_DELETE",
]
},
{
"service": "bce:cprom",
"region": "*",
"resource": [
"Cprom_Grafana/*"
],
"effect": "Allow",
"permission": [
"GRAFANA_CREATE",
"GRAFANA_READ",
"GRAFANA_UPDATE",
"GRAFANA_DELETE"
]
}
]
}
其中:
-
region处为所要授权的地域,可以有以下配置:
- 授予全部地域的权限
- 授予单个地域的权限,如:北京(bj)
-
resource处为所要授权的资源,可以有以下配置:
- 授予全部实例的权限
"resource": [
"Cprom_Instance/*"
]
- 授予单个实例的权限
"resource": [
"Cprom_Instance/实例ID"
]
- 授予多个实例的权限
"resource": [
"Cprom_Instance/实例ID",
"Cprom_Instance/实例ID"
]
-
action处为所要授予的集群操作权限:
- 您可以根据实际情况选择不同的权限组合
"permission": [
"INSTANCE_CREATE", # 创建监控实例
"INSTANCE_READ", # 读监控实例
"INSTANCE_UPDATE", # 更新监控实例
"INSTANCE_DELETE", # 删除监控实例
"GRAFANA_CREATE", # 创建 Grafana
"GRAFANA_READ", # 读 Grafana
"GRAFANA_UPDATE", # 更新 Grafana
"GRAFANA_DELETE" # 删除 Grafana
]
- 单击完成即可完成创建自定义策略。
- 将自定义权限策略授权给目标IAM子用户,具体操作,请参见子用户授权。
自定义授权策略示例
以下策略中不包含实例关联使用云产品(如XX)的权限,若有需要请单独为子用户授予相应产品的权限。
- 在北京地域授权子用户单个监控实例的只读权限,如实例ID为cprom-xxxx
{
"version": "v1",
"accessControlList": [
{
"service": "bce:cprom",
"region": "bj",
"effect": "Allow",
"resource": [
"Cprom_Instance/cprom-xxx"
],
"permission": [
"INSTANCE_READ"
]
}
]
}
- 授权子用户单个实例的完全控制权限,如实例ID为cprom-xxxx (授予单个实例权限,建议只授予INSTANCE_READ、INSTANCE_UPDATE, 而不影响实例的生命周期)
{
"version": "v1",
"accessControlList": [
{
"service": "bce:cprom",
"region": "bj",
"effect": "Allow",
"resource": [
"Cprom_Instance/cprom-xxx"
],
"permission": [
"INSTANCE_READ",
"INSTANCE_UPDATE",
"INSTANCE_CREATE",
"INSTANCE_DELETE"
]
}
]
}