RAM 背景由来

给予 AWS 上的 Code space (代码与软件管理平台)系统数据和备份数据一并被攻击者删除。

企业上云的安全威胁排名

part1 - 云账号及其安全

云平台上多租户隔离的基本主体

  • 1、阿里云现在所有云产品彼此之前都是隔离,主账号和 RAM 子账号也都是隔离的,彼此不能互访
  • 2、同一个主账号 UID 下,不同的云产品默认不能互访,需要在主账号授权的跨产品授权的权限下才能访问
  • 3、未经过主账号授权的情况下,其他主账号 uid 是不能访问用户自己的云产品和控制台。

认识云账户

  • 1、统一出账
  • 2、统一开票
  • 3、共享信誉额度

云账户安全

  • 1、云账户安全就是要保护云资源以防止未授权访问,即便是同个云账号下的不通产品也不能互访,除非云账号自身允许
  • 2、认识云账号凭证(Credentials)
  • 2.1、登陆密码验证(password)
  • 2.2、mfa 多因素验。
  • 2.3、api 访问问(ak/sk)

part2 - 用户身份管理与访问控制

谁是 user

1、用户自己登陆

2、用户授权自己的 ram 子账号登陆。

3、用户授权别人加的 ram 账号登陆

RAM 核心功能


集中用户管理

  • 所有的用户都可以在控制台上统一的可视化界面处理,统一的 api 接入

谁是应用

1、比如阿里云提供的工具,类似 oss  的 brower

2、客户的应用程序代码(app、服务端程序)通过 sts 或者 云账号的 ak/sk

3、ecs 的 meta 网关信息也可以操作

https://www.alibabacloud.com/help/zh/doc-detail/54579.htm

阿里云RAM的特色

ABAC模型:AttributeBasedAccessControl . 这种是我们常用的自定义 policy 需要自己写控制语句

ABACvsACL: 就是我们常用系统策略,权限粒度小,都是一个管理权限或者只读、只写的权限。

一个实际的授权场景

{
"Version":"1",
"Statement":[ {
"Effect":"Allow", "Action":"ecs:StopInstance", "Resource":"acs:ecs:cn-hangzhou:*:*", "Condition":{
"StringEquals":{ "ecs:tag/env":"production"
}, "Bool":{
"acs:MFAPresent":"true" },
"IpAddress":{ "acs:SourceIp":"42.120.88.0/24"
} }
} ]
}

以上策略意思是 针对  42.120.88.0,允许操作 production 组内的 ecs 实例进行停止操作。

为了方便我们给他分开三块看,这样会比较清晰。

第一块:固定的外层语法不变,即使有多条策略也是在者一个 statement 内部,用 ","  分开。

{"Sersion":"1""Statement":["这里是第二块"]}

第二块:我们简称三板斧,因为内容是固定的,只不过变化 value 而已。

1、三板斧就是 effect ,action,resource ,这三个是一组,包含在一个 {} 内,第二条语句要用 "," 隔开写在第二个 {} 内

2、effect :只有 Allow 和 Deny

3、action :可以写多条时要用 [] 包括,比如 ["acs:ecs:cn-hangzhou:1982222:instance/i-zxxxxesd" , "acs:oss:cn-beijing:1299:bucket/prefix/objet"]

4、action :填写的是你要限制对应的产品的 API 名称,写多个时要用 [] 包括主,比如 [ “ecs:CreateInstance”,"ecs:StopInstance"]

5、product:填写产品名称 slb、ecs 、oss、vpc 等。

6、regionID:cn-shanghai、cn-hangzhou 等

7、uid:云账号 uid

{"Sersion":"1""Statement":[{"Effect":"Allow / deny","Resource":"acs:product:regionid:uid:*","Action:":"apiname"},{"设置并行的第二条语句"}]}

Part 3: 最佳实践

下面我实际操作如果新建 ram 子账号、授权策略

  • 新建账户

  • 系统策略

  • 自定义策略

  • 使用 RAM 子账号  ak sk

App 安全天使 STS

为什么说是安全天使

当前端上的 APP 不可能直接使用客户的 ak sk ,风险性极高,一但恶意攻击者那到你 APP 数据包,揭秘出源码中的 ak sk ,您的云产品将暴露,任何人都可以操作您子账号下所有授权的产品,即使删除 ak sk 也可能导致服务端的其他业务出现链接异常,由此 sts 应运而生。

临时、最小粒度、可控

  • 1、临时: sts 的令牌有效期是 900-3600 秒,一但过期将失去效力。
  • 2、最小粒度:sts 只能操作角色扮演了策略的对应产品,简单说就是,把用户想授权的各类云产品抽象出各种角色,给每个角色赋予不通的权限,ram 子账号扮演了哪种角色就可以有哪种权限,及时 sts 信息泄露,客户只要删除 sts 角色即可,或者将角色和 ram 子账号解绑,盗取者也没有用了,而且并不影响用户其他使用 ak sk 的服务端业务。
  • 3、可控:生成 sts 是放在用户自己的服务器上所以安全可用。

sts 创建、代码实践

由于 sts 也要新建 ram 子账号存在与 part3 重复的地方,所以建立 ram 子账号的位置我就不演示了。

  • 新建角色,选择用户角色,当前账号,如果选择其他云账号是给其他 云账号下的 子账号授权访问自己的云产品,要区分概念。这里我们给自己的云账号授权,所以默认。
  • 给角色创建一条自定义策略或者系统策略都行

  • 给角色绑定我们刚才自定义的 policy

  • 让 ram 有权调用角色,这样 ram  子账号就有了角色对应的产品策略,所以要让角色和 ram 关联

  • 1、最后一部利用服务端的代码,填入我门刚才建立 ram 、角色时得到的所有信息,就能生成 sts 令牌
  • 2、rolearn 就是我们在创建角色时控制台看到的。
  • 3、rolesession 就是角色名称

public class StsServiceSample {public static void main(String[] args) {String endpoint = "sts.aliyuncs.com";String accessKeyId = "<access-key-id>";String accessKeySecret = "<access-key-secret>";String roleArn = "<role-arn>";String roleSessionName = "session-name";String policy = "{\n" +"    \"Version\": \"1\", \n" +"    \"Statement\": [\n" +"        {\n" +"            \"Action\": [\n" +"                \"oss:*\"\n" +"            ], \n" +"            \"Resource\": [\n" +"                \"acs:oss:*:*:*\" \n" +"            ], \n" +"            \"Effect\": \"Allow\"\n" +"        }\n" +"    ]\n" +"}";try {// 添加endpoint(直接使用STS endpoint,前两个参数留空,无需添加region ID)DefaultProfile.addEndpoint("", "", "Sts", endpoint);// 构造default profile(参数留空,无需添加region ID)IClientProfile profile = DefaultProfile.getProfile("", accessKeyId, accessKeySecret);// 用profile构造clientDefaultAcsClient client = new DefaultAcsClient(profile);final AssumeRoleRequest request = new AssumeRoleRequest();request.setMethod(MethodType.POST);request.setRoleArn(roleArn);request.setRoleSessionName(roleSessionName);request.setPolicy(policy); // Optionalfinal AssumeRoleResponse response = client.getAcsResponse(request);System.out.println("Expiration: " + response.getCredentials().getExpiration());System.out.println("Access Key Id: " + response.getCredentials().getAccessKeyId());System.out.println("Access Key Secret: " + response.getCredentials().getAccessKeySecret());System.out.println("Security Token: " + response.getCredentials().getSecurityToken());System.out.println("RequestId: " + response.getRequestId());} catch (ClientException e) {System.out.println("Failed:");System.out.println("Error code: " + e.getErrCode());System.out.println("Error message: " + e.getErrMsg());System.out.println("RequestId: " + e.getRequestId());}}
}

阿里云 RAM 企业上云实战相关推荐

  1. 企业为什么要上云?企业上云的好处和优势有哪些

    企业上云是比较热门的话题也是趋势,越来越多的企业放弃传统IDC选择上云,新手站长网告诉你企业为什么要上云?企业上云的好处和优势有哪些: 企业为什么要上云? 企业上云也是企业集成发展的趋势,国内外很多企 ...

  2. 企业使用云计算机的好处,三个问题,让你彻底明白企业为什么上云以及企业上云的好处...

    原标题:三个问题,让你彻底明白企业为什么上云以及企业上云的好处 中国公有云市场不及美国3%,企业上云是发展工业互联网的前提 什么是"云"? 云,就是云计算,是指以互联网为平台,将硬 ...

  3. 筷云解读企业上云:为什么上云?选什么上云?

    近段时间,大家都在说企业上云,那么到底什么是企业上云?企业为什么要上云?应该怎么上呢?在新旧动能转换的关键时期,企业上云的确是可以驱动流程创新和业务创新,成为企业新的利润增长点.筷云作为国内知名的互联 ...

  4. 什么是企业上云?企业为什么要上云?企业上云包括哪些方面?

    企业上云是指企业通过网络,将企业的基础设施.管理及业务部署到云端,利用网络便捷地获取云服务商提供的计算.存储.软件.数据服务,以此提高资源配置效率.降低信息化建设成本.促进共享经济发展.加快新旧动能转 ...

  5. 3个月免费云服务器,10+行业解决方案,阿里再推企业上云浪潮

    近日,阿里云正式推出"云3计划",活动期间所有未购买或试用过阿里云的企业级用户均可获得最高3个月的免费时长.这是在阿里云完成免费域名.企业邮箱.虚拟主机后,首次针对云计算的核心产品 ...

  6. 推动企业上云实施经验总结

    当下,一场以IT技术为主角的科技革命浪潮正风起云涌.云计算.大数据.人工智能.物联网.区块链等新技术正加速应用落地.在这些新技术当中,云计算作为基础设施,它是这场科技革命的承载平台,全面支撑着各类新技 ...

  7. 我的一点企业上云经验

    作者按:日前,工信部印发<推动企业上云实施指南(2018-2020年)>,其中指出:到2020年,力争实现企业上云环境进一步优化,行业企业上云意识和积极性明显提高,上云比例和应用深度显著提 ...

  8. 上云 企业 过程_企业上云有什么好处?该怎么上云?附操作步骤

    "工业互联网"作为新基建的细分领域之一,不仅被市场广泛关注,更在高层中被着重点名.先有国务院常务会议指出,发展数字经济新业态,依托工业互联网促进传统产业加快上线上云.后有工业和信息 ...

  9. 企业转型升级,务必抓住“企业上云”政策红利

    三年百万企业上云,企业转型定要抓住这个机会 8月10日,工信部印发了<推动企业上云实施指南(2018-2020年)>,从实施上云路径.强化政策保障.完善支撑服务等层面为推进企业上云提出了指 ...

最新文章

  1. 每日一皮:当代互联网企业真实写照!
  2. c++中关于char数组/char*指针/string类型
  3. 混合云计算应用中小企业市场前景看好
  4. 在Servlet中处理表单提交的数据
  5. log4net 小记
  6. 基于java SSM springboot学生信息管理系统设计和实现2.0
  7. 华兴数控g71外圆循环编程_数控车床加工编程典型实例分析(西门子802S数控系统)...
  8. Xshell和Xftp5配置连接阿里云服务器
  9. python print return_对python中return和print的一些理解
  10. Submitting Applications
  11. 用ffmpeg把yuv格式转化为mpeg格式
  12. 青春是一场眼眸里的微笑
  13. c#录音和放音,超简单!不用DirectX
  14. ML之SHAP:机器学习可解释性之SHAP值之理解单样本单特征预测
  15. 无线射频专题《协议类,IEEE 802.11/802.11b/802.11a/802.11g/802.11n/802.11ac标准简介》
  16. 电脑开机正常,但显示器没反应怎么办
  17. Ubuntu bpy(blender)的pip安装
  18. 赵明magic4升鸿蒙,荣耀Magic新机生猛:折叠屏+骁龙888+鸿蒙系统,赵明:超越华为...
  19. 微信团队原创分享:iOS版微信的内存监控系统技术实践
  20. 计算机算法描述方式有哪些,算法的描述方法有哪几种

热门文章

  1. 云适配陈本峰:我为什么发起“中国企业级H5产业联盟”
  2. 小米6X计算机在后台程序无法关闭,小米6怎么关闭后台程序教程
  3. Verilog设计的原则和技巧和IP核的使用
  4. int是逻辑炸弹吗?
  5. 新手小白如何自学初级会计?
  6. linux磁盘合盘,超强启动盘制作工具MBROSTool(可隐藏,多分区,多启动)
  7. 打开系统setting页面
  8. 浙江省交通数字化改革行动方案来了!
  9. markdown语法最全汇总
  10. linux tar 打包 解压包