使用标签鉴权精细化管理弹性伸缩-j9九游会登录
背景
通过标签和访问控制iam结合,并将标签作为权限策略的匹配条件,您可以实现对弹性伸缩的精细化管理。
- 标签是云资源的标识,可以帮助您从不同维度对具有相同特征的云资源进行分类、搜索和聚合。
- iam提供权限管理能力,可基于权限策略,管理用户身份,控制云资源的访问和操作。更多信息,请参见什么iam。
本文为您介绍如何通过标签鉴权控制iam用户的权限,实现不同用户能够拥有不同的访问和控制权限,提高管理效率,同时降低信息泄露风险。
示例场景
假设已创建2个伸缩组,且各伸缩组标签(tag)包含项目维度,即team,详情如下:
|
伸缩组 |
伸缩组名称 |
伸缩组标签 |
|---|---|---|
|
伸缩组1 |
asg-001 |
标签:team:game1,其中标签键为team,标签值为game1。 |
|
伸缩组2 |
asg-002 |
标签:team:game2,其中标签键为team,标签值为game2。 |
您可以通过标签鉴权方式控制某iam用户对以上伸缩组拥有不同的特定权限,示例场景如下:
- 场景一:不允许创建不带标签的伸缩组1。创建伸缩组1时须为伸缩组1绑定team:game1标签后,才可以创建成功。
- 场景二:只允许查询绑定team:game1标签的伸缩组1。
- 场景三:只允许操作伸缩组1,不允许操作伸缩组2。伸缩组1绑定了team:game1标签,伸缩组2绑定了team:game2标签,只允许操作绑定team:game1标签的伸缩组功能,不允许操作绑定team:game2标签的伸缩组功能。
操作步骤
操作前请您确保已创建iam用户且赋予ecs、vpc、ims的只读权限。若未创建请您先创建iam用户,具体操作,请参见创建iam用户。
- 创建2个伸缩组。具体操作,请参见创建伸缩组。
- 登录。
- 创建自定义策略。具体操作,请参见创建自定义策略。
您可以在策略(condition)中为云资源设置多个标签条件来限制对弹性伸缩资源的操作权限。支持的标签鉴权条件如下所示:
表2 标签鉴权条件 标签鉴权条件
说明
g:requesttag
限制在请求中必须传入特定的标签。
如果api请求中没有标签参数,则不能使用g:requesttag,否则会导致鉴权失败。
g:resourcetag
限制指定的资源必须包含特定的标签。
如果api请求中没有资源id参数,则不能使用g:resourcetag,否则会导致鉴权失败。
- 场景一:不允许创建不带标签的伸缩组1。
创建伸缩组1时须为伸缩组1绑定team:game1标签后,才可以创建成功。
对应的自定权限策略如下所示:
{ "version": "5.0", "statement": [ { "effect": "allow", "action": [ "as:scalinggroup:create" ], "condition": { "stringequals": { "g:requesttag/team": [ "game1" ] } } }, { "effect": "allow", "action": [ "as:scalingconfig:list" ] }, { "effect": "allow", "action": [ "as::listquotas" ] } ] } - 场景二:只允许查询绑定标签的伸缩组1。
伸缩组1绑定team:game1标签后,查询伸缩组时只能查询到伸缩组1的资源。
对应的自定权限策略如下所示:{ "version": "5.0", "statement": [ { "effect": "allow", "action": [ "as:scalinggroup:get" ], "condition": { "stringequals": { "g:resourcetag/team": [ "game1" ] } } }, { "effect": "allow", "action": [ "as:scalingconfig:list" ] }, { "effect": "allow", "action": [ "as::listquotas" ] } ] }
- 场景三:只允许操作伸缩组1,不允许操作伸缩组2。
伸缩组1绑定了team:game1标签,伸缩组2绑定team:game2标签,只允许操作绑定team:game1标签的伸缩组功能,不允许操作绑定了team:game2标签的伸缩组功能。
对应的自定权限策略如下所示:
{ "version": "5.0", "statement": [ { "effect": "allow", "action": [ "as:scalingconfig:list" ] }, { "effect": "allow", "action": [ "as::listquotas" ] }, { "effect": "allow", "action": [ "as:scalinggroup:update" ] }, { "effect": "allow", "action": [ "as:scalinggroup:resume", "as:scalinggroup:pause" ], "condition": { "stringequals": { "g:resourcetag/team": [ "game1" ] } } } ] }
- 场景一:不允许创建不带标签的伸缩组1。
- 将自定义策略授权给您希望控制访问的iam用户。具体操作,请参见给iam用户授权。
效果验证
验证权限策略是否生效。
- 场景一:不允许创建不带标签的伸缩组1。
伸缩组1已绑定了标签team:game1,创建伸缩组1可成功创建。若没有设置标签team:game1或者设置了其他标签,则提示无权限创建。
- 场景二:只允许查询绑定标签的伸缩组1。
指定查询伸缩组1(已绑定标签team:game1),但查询时未筛选标签选项,则可以查询到该伸缩组信息。
指定查询除伸缩组1外的某个未绑定标签team:game1的伸缩组,则查询结果为空。
- 场景三:只允许操作伸缩组1,不允许操作伸缩组2。
修改的伸缩组1(已绑定标签team:game1),有修改伸缩组的权限。
修改的伸缩组2(未绑定标签team:game1)或设置了其他标签,则提示无权限修改该伸缩组。
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨