开发者社区> 洛小蒙> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

SMC 标签鉴权实践

简介: 众所周知,阿里云的访问控制可以通过资源ID作为资源描述符进行对资源的访问控制,当 这种描述资源的方式在管理较多的资源时,会大大的增加授权管理的成本,所以标签鉴权的方式应运而生
+关注继续查看

需求背景

众所周知,阿里云的访问控制可以通过资源ID作为资源描述符进行对资源的访问控制,当 这种描述资源的方式在管理较多的资源时,会大大的增加授权管理的成本,所以标签鉴权的方式应运而生

前置知识

需要详细的的了解标签鉴权首先需要了解以下几点:

需求场景

资源准备

有权限的账户准备两个迁移源,一个资源上不带任何标签,一个资源上包含owner:zhangsan 的标签

image

请求标签场景

场景描述

不管在控制台进行任何操作,必须带上鉴权策略的标签(owner:zhansan)参数才能成功

账户策略设计

{

    "Statement": [

        {

            "Action": "*",

            "Condition": {

                "StringEquals": {

                    "acs:RequestTag/owner": "zhangsan"

                }

            },

            "Effect": "Allow",

            "Resource": "*"

        },

        {

            "Action": [

                "*:List*",

                "*:Describe*",

            ],

            "Effect": "Allow",

            "Resource": "*"

        }

    ],

    "Version": "1"

}

场景验证:

给迁移源打标签,不带owner:zhangsan 的 操作,预期不成功

image

给迁移源打标签, 带owner: zhangsan 标签,预期成功

image

场景延伸:

但凡带有某个特定标签的操作都不被允许可以将账户的策略配置成如下:

{

    "Statement": [

        {

            "Action": "*",

            "Condition": {

                "StringEquals": {

                    "acs:RequestTag/owner": "zhangsan"

                }

            },

            "Effect": "Deny",

            "Resource": "*"

        },

        {

            "Action": "*",

            "Effect": "Allow",

            "Resource": "*"

        }

    ],

    "Version": "1"

}

资源标签场景

场景描述:

只能操作带有特定标签的资源,包括修改资源属性,删除资源,给资源打标签等操作

策略设计:

{

    "Statement": [

        {

            "Action": "*",

            "Condition": {

                "StringEquals": {

                    "acs:ResourceTag/owner": "zhangsan"

                }

            },

            "Effect": "Allow",

            "Resource": "*"

        },

        {

          "Action": "*:TagResources",

            "Effect": "Deny",

            "Resource": "*"

        },

        {

            "Action": [

                "*:List*",

                "*:Describe*",

            ],

            "Effect": "Allow",

            "Resource": "*"

        }

    ],

    "Version": "1"

}

场景验证:

登录配置如上策略的子账户进行如下操作:

删除不含有owner:zhangsan 标签的迁移源,预期没有权限删除:

image

删除含owner:zhangsan 标签的迁移源, 预期可以删除成功:

image


场景延伸:

但凡资源上带有特定标签的资源都不允许被操作,策略设计如下:

{

    "Statement": [

        {

            "Action": "*",

            "Condition": {

                "StringEquals": {

                    "acs:ResourceTag/owner": "zhangsan"

                }

            },

            "Effect": "Deny",

            "Resource": "*"

        },

        {

            "Action": "*",

            "Effect": "Allow",

            "Resource": "*"

        }

    ],

    "Version": "1"

}


标签鉴权小结:

策略中ResourceTag 的条件配置,是基于资源上已有标签来控制对资源的操作

策略中RequestTag 的条件配置需要满足控制台操作允许设置标签,只要满足策略所配置的标签就有权限操作

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何构建用户画像,给用户打“标签”?1
如何构建用户画像,给用户打“标签”?1
50 0
Swift5.1—函数参数标签和参数名称
Swift5.1—函数参数标签和参数名称
57 0
Struts2的控制标签库和数据标签库(六)上
Struts2的控制标签库和数据标签库(六)
49 0
SLS数据处理实践:加工延迟篇
在日志服务,数据加工功能(功能介绍)用于完成对Logstore数据的预处理,为后续的分析阶段准备数据。本文主要介绍数据加工实践中可能遇到的延迟问题,帮助大家理清延迟现象背后的原因,以及如何去监控、解决延迟问题。
2356 0
C++实践参考——点类派生直线类
【项目 - 点类派生直线类】定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点。请阅读下面的代码,并将缺少的部分写出来。 #include<iostream> #include<Cmath> using namespace std; class Point //定义坐标点类 { public: Point():x(0
1150 0
+关注
洛小蒙
coding is all about communication
59
文章
12
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载