如果 ALB 的系统预设策略不能满足您的需求,您可以创建自定义策略以实现更细粒度的子用户权限控制。本文介绍了与 ALB 相关的常见权限控制场景,并针对这些场景给出了自定义策略的配置示例。您可以使用可视化编辑器或 JSON 编辑器来配置自定义策略。
关于 ALB 策略的说明,请参考ALB 策略。关于如何创建自定义策略以及更多自定义策略的示例,请参考新建自定义策略和自定义策略示例。
场景 1:拒绝子用户创建公网 ALB 实例
如果您需要禁用子用户创建公网 ALB 实例的权限,可以参考以下内容定义一个自定义策略。
以下自定义策略中指定的作用效果(Effect)为拒绝(Deny)。Deny 策略需要配合 Allow 策略一起使用。授予子用户的策略中同时包含 Allow 策略和 Deny 策略时,Deny 策略生效优先级更高。
如果您希望子用户可以进行除“创建公网 ALB 实例”以外的所有针对 ALB 资源的操作,则需要为子用户授予系统预设策略 ALBFullAccess 和以下自定义策略。
权限声明:
- 操作:在指定操作区域的新建资源下,勾选 CreateLoadBalancer 和 ModifyLoadBalancerType。
- 条件:
- 条件键:选择alb:LoadBalancerType。
- 运算符:选择StringEquals。
- 条件值:输入public。
{
"Statement": [
{
"Effect": "Deny",
"Action": [
"alb:CreateLoadBalancer",
"alb:ModifyLoadBalancerType"
],
"Resource": [
"*"
],
"Condition": {
"StringEquals": {
"alb:LoadBalancerType": [
"public"
]
}
}
}
]
}
场景 2:允许子用户查询和更新 ALB 资源
如果您需要授予子用户仅查询和更新所有 ALB 资源的权限,可以参考以下内容定义一个自定义策略。
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"alb:Describe*",
"alb:Modify*",
"alb:Disable*",
"alb:Enable*"
],
"Resource": [
"*"
]
}
]
}
场景 3:拒绝子用户删除 ALB 资源
如果您需要禁用子用户删除 ALB 资源的权限,可以参考以下内容定义一个自定义策略。
以下自定义策略中指定的作用效果(Effect)为拒绝(Deny)。Deny 策略需要配合 Allow 策略一起使用。授予子用户的策略中同时包含 Allow 策略和 Deny 策略时,Deny 策略生效优先级更高。
如果您希望子用户可以进行除“删除 ALB 资源”以外的所有针对 ALB 资源的操作,则需要为子用户授予系统预设策略 ALBFullAccess 和以下自定义策略。
{
"Statement": [
{
"Effect": "Deny",
"Action": [
"alb:Delete*",
"alb:Remove*"
],
"Resource": [
"*"
]
}
]
}
场景 4:允许子用户使用标签功能
如果您需要授予子用户使用标签功能的权限,可以参考以下内容定义一个自定义策略。
如果您希望子用户可以访问所有 ALB 资源并使用标签功能,则需要为子用户授予系统预设策略 ALBReadOnlyAccess 和以下自定义策略。
权限声明:
- 操作:在指定操作区域下,勾选 TagResources、UntagResources 和 ListTagsForResources。
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"alb:TagResources",
"alb:UntagResources",
"alb:ListTagsForResources"
],
"Resource": [
"*"
]
}
]
}