阿里云SSO和RAM权限控制及TLS安全设计实践

阿里云SSO和RAM概述

随着企业上云的趋势越来越明显,阿里云提供的各类服务成为了许多企业的首选。为了确保云上资源的安全管理,阿里云提供了单点登录(SSO)和资源访问管理(RAM)两种权限控制机制。

企业在使用阿里云SSO并配置RAM权限时,需要结合TLS技术设计安全的访问控制策略,通常会面临哪些挑战?

1. 权限策略复杂性

  • 在配置RAM和云SSO权限时,定义和管理复杂的权限策略可能会导致误配置,从而引发安全漏洞。确保策略的精细化和准确性是一个挑战,需要规范化的权限配置。

2. 合规性和法规要求

  • 企业需要确保其访问控制策略符合行业标准和法规要求。不断变化的合规性要求可能需要企业不断调整和更新其安全策略。

3. 跨部门协作

  • 配置和管理SSO、RAM和TLS涉及多个部门的协作,包括IT、安全和业务部门。协调这些部门的工作,确保一致的安全策略和实施,是一个复杂的过程。
  • 用户需要了解如何使用SSO和遵循安全最佳实践
  • 程序开发者需要了解RAM User如何使用TLS调研阿里云API接口,实现资源的管理

本文将详细介绍联蔚盘云Cloud Teams是如何在阿里云环境中为客户配置和管理SSO和RAM权限,并结合TLS技术设计安全的访问控制策略。

阿里云的权限控制

云SSO

什么是云SSO

云SSO提供基于阿里云资源目录RD(Resource Directory)的多账号统一身份管理与访问控制。使用云SSO,用户可以统一管理企业中使用阿里云的用户,一次性配置企业身份管理系统与阿里云的单点登录,并统一配置所有用户对RD账号的访问权限。

云 SSO 的功能特性

1. 统一管理使用阿里云的用户

云SSO提供一个原生的身份目录,可以将所有需要访问阿里云的用户在该目录中维护。既可以手动管理用户与用户组,也可以借助SCIM协议从企业身份管理系统同步用户和用户组到云SSO身份目录中。

2. 与企业身份管理系统进行统一单点登录配置

虽然可以选择让云SSO身份目录中的用户使用其用户名、密码和多因素认证(MFA)的方式访问阿里云,但更好的方式是与企业身份管理系统进行单点登录(SSO),以最大限度地优化用户体验,同时降低安全风险。云SSO支持基于SAML 2.0协议的企业级单点登录,只需要在云SSO和企业身份管理系统中进行一次性地简单配置,即可完成单点登录配置。

3. 统一配置所有用户对RD账号的访问权限

借助与RD的深度集成,在云SSO中可以统一配置用户或用户组对整个RD内的任意成员账号的访问权限。云SSO管理员可以根据RD的组织结构,选择不同成员账号为其分配可访问的身份(用户或用户组)以及具体的访问权限,且该权限可以随时修改和删除。

4. 统一的用户门户

云SSO提供统一的用户门户,企业员工只要登录到用户门户,即可一站式获取其具有权限的所有RD账号列表,然后直接登录到阿里云控制台,并可在多个账号间轻松切换。

RAM(访问控制)

什么是 RAM

访问控制RAM(Resource Access Management)是阿里云提供的细粒度权限控制服务,允许用户管理和控制阿里云资源的访问权限。RAM特别适用于程序化访问和管理云资源。

RAM 的功能特性

统一管理访问身份及权限

1. 集中式访问控制

  • 集中管理RAM用户:管理每个RAM用户及其登录密码或访问密钥,为RAM用户绑定多因素认证MFA(Multi Factor Authentication)设备。
  • 集中控制RAM用户的访问权限:控制每个RAM用户访问资源的权限。
  • 集中控制RAM用户的资源访问方式:确保RAM用户在指定的时间和网络环境下,通过安全信道访问特定的阿里云资源。

2. 外部身份集成

  • 单点登录SSO(Single Sign On):支持阿里云与企业身份提供商IdP(Identity Provider)进行用户SSO或角色SSO,使用企业IdP中的账号登录阿里云。
  • 钉钉账号集成:为RAM用户绑定一个钉钉账号,然后就可以使用该钉钉账号登录阿里云。
  • SCIM用户同步:通过SCIM协议将企业内部账号同步到RAM。更多信息,请参见通过SCIM协议将企业内部账号同步到阿里云RAM。

精细多元的权限设置能力

1. 丰富的权限策略

  • RAM提供了多种满足日常运维人员职责所需要的系统权限策略。如果系统权限策略不能满足使用需求,还可以通过图形化工具快速地创建自定义权限策略。

2. 精细的控制粒度

  • 支持在资源级和操作级向RAM用户、RAM用户组和RAM角色授予访问权限。
  • 支持根据请求源IP地址、日期时间、资源标签等条件属性创建更精细的资源访问控制策略。
  • 支持指定授权范围为整个阿里云账号或指定资源组。

TLS安全设计

什么是TLS

传输层安全(Transport Layer Security, TLS)是一种加密协议,旨在确保数据在网络传输过程中的安全。TLS对于保护敏感数据、防止中间人攻击等至关重要。

TLS主要分为两层,底层的是TLS记录协议,主要负责使用对称密码对消息进行加密。

上层的是TLS握手协议,主要分为握手协议,密码规格变更协议和应用数据协议4个部分。

  • 握手协议负责在客户端和服务器端商定密码算法和共享密钥,包括证书认证,是4个协议中最最复杂的部分。
  • 密码规格变更协议负责向通信对象传达变更密码方式的信号
  • 警告协议负责在发生错误的时候将错误传达给对方
  • 应用数据协议负责将TLS承载的应用数据传达给通信对象的协议。

阿里云上的TLS设计

不管是云SSO还是RAM,在阿里云上主要都是通过策略来实现权限的控制。

通过策略中的设置Condition下acs:SecureTransport的值为true来实现用户强制TLS的访问方式访问阿里云,以下是TLS访问方式的设计示例:

{"Statement": [{"Action": "ecs:*","Effect": "Allow","Resource": "*","Condition": {        "Bool": {"acs:SecureTransport": "true"}}}],"Version": "1"
}

客户综合实践

结合上文SSO与RAM权限控制和TLS加密,为客户在阿里云上设计全面的安全策略,保证为客户云上访问流量都是TLS,以确保云上资源的安全性。

在客户云上资源和权限管理上,联蔚盘云Cloud Teams统一使用Terraform编排。

在RAM和云SSO的管理上,Cloud Teams严格规范:

1. 用户只能通过云SSO登录到阿里云Console,并且只能拥有所属项目组资源的只读权限,Console权限非特殊申请只有只读。

  • 访问配置使用自定义配置了TLS的策略,不使用系统策略
  • 授权是基于云SSO用户组授权,不对单用户授权

2. RAM User只用于程序使用,提供AKSK,并且AKSK六个月通知轮换一次。

  • RAM User的权限都是基于资源组授权,不是账号级别,只能访问属于本身项目的资源
  • RAM User的权限只使用自定义配置了TLS的策略,不需要系统策略

RAM Application User实践

TF中TLS的编排设计

Cloud Teams按账号和项目区分Terraform层级关系。在每个账号目录下,会统一有一个属于RAM Policy的目录,该目录编排阿里云上需要用到 AKSK 访问的资源权限。

项目目录会通过Terraform Data的方法,引入RAM Policy目录定义好的 RAM Policy,进行RAM User授权。这种设计可以使得复杂业务场景,多项目下,相同资源的Policy复用。

实践

RAM Policy目录TF代码

# local.tf
# 创建资源的Policy
resource "alicloud_ram_policy" "ram_policy" {document         = file("./ram_policy_app_prd_sls.json")policy_name      = "ram-policy-app-prd-sls"version          = "1"
}# ram_policy_app_prd_sls.json
# 每一个资源一个 json 文件
{"Version": "1","Statement": [{"Action": "log:*","Resource": "*","Effect": "Allow","Condition": {       "Bool": {"acs:SecureTransport": "true"}}},{"Action": "ram:CreateServiceLinkedRole","Resource": "*","Effect": "Allow","Condition": {"StringEquals": {"ram:ServiceName": ["audit.log.aliyuncs.com","alert.log.aliyuncs.com","middlewarelens.log.aliyuncs.com","storagelens.log.aliyuncs.com","ai-lens.log.aliyuncs.com","securitylens.log.aliyuncs.com"]},"Bool": {"acs:SecureTransport": "true"}}},{"Effect": "Deny","Action": ["log:CreateProject","log:DeleteProject","log:TagResources","log:UntagResources"],"Resource": ["*"],"Condition": {}}]
}

项目目录TF代码

provide.tf
## ram
data "terraform_remote_state" "policies_01" {backend = "azurerm"config = {storage_account_name = "xxx"container_name = "xxxx"key    = "account_name/ram" # ram Policy 目录environment = "china"}
}local.tf
## ram
resource "alicloud_resource_manager_policy_attachment" "resource_manager_policy_attach" {policy_name       = data.terraform_remote_state.policies_01.outputs.ram_policy_names[0]policy_type       = "Custom"principal_name    = "account_name" # 这里写需要授权的 RAM User账号principal_type    = "IMSUser"resource_group_id = "rg-xxxx" # 这里是资源组,基于资源组授权,RAM User账号只能访问属于自己项目的资源
}

云SSO用户实践

在云SSO场景下,不需要单独分出策略的Policy目录,因为云SSO的授权不能基于资源组,只能把资源组写进Policy中。

访问配置的内置策略示例:

{"Version": "1","Statement": [{"Effect": "Allow","Action": ["*:Describe*","*:List*","*:Get*","*:BatchGet*","*:Query*","*:BatchQuery*","actiontrail:Lookup*","actiontrail:Check*","dm:Desc*","dm:SenderStatistics*","ram:GenerateCredentialReport","cloudsso:Check*","notifications:Read*","selectdb:Check*","hbr:Search*","hbr:BrowseFiles","hbr:BatchCountTables","hbr:CheckRole","hbr:PreCheckSourceGroup"],"Resource": "*","Condition": {"StringEquals": {"acs:ResourceGroupId": ["rg-xxxxxx", # 项目所属的资源组ID,在多账号的情况下,这个是其他子账号的资源组ID"rg-xxxxxx"]},"Bool": {"acs:SecureTransport": "true" # tls 安全设计}}}]
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3281456.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

深入浅出消息队列----【延迟消息的实现原理】

深入浅出消息队列----【延迟消息的实现原理】 粗说 RocketMQ 的设计细说 RocketMQ 的设计这样实现是否有什么问题? 本文仅是文章笔记,整理了原文章中重要的知识点、记录了个人的看法 文章来源:编程导航-鱼皮【yes哥深入浅出消息队列专栏】 粗…

记录下Xjar部署问题

记录下 java Xjar部署问题 XjarXjar是什么?静态资源问题处理 项目是部署在客户端springboot项目,打包jar后静态资源都范文异常 net::ERR_CONTENT_LENGTH_MISMATCH 200 Xjar Xjar是什么? 无需侵入代码,只需要把编译好的JAR包通过…

springboot家校共育平台-计算机毕业设计源码54235

摘 要 采用高效的SpringBoot框架,家校共育平台为家长与教师提供了便捷的沟通渠道。该平台整合了丰富的教育资源,实现了家校之间的即时信息互通,从而助力协同教育。 为进一步方便用户访问和使用,平台与微信小程序进行了深度整合。家…

测试人生 | 招聘严峻期从面试无力感,到一天2个offer的一些经验分享(内附美团、字节、快手等面试题)

本人是霍格沃兹北京测试开发学社线下3期学员,拥有3年测试工作经验,之前一直在某大厂外包做软件测试,期间主要是以功能测试为主。 经过一个月的高强度找工作奋战,最终拿下了3家公司offer,选择了一家自己很满意的公司。…

4000元投影仪性价比之王:爱普生TW5750极米RS10还是当贝X5S?

买投影很多人会倾向于买大品牌或者是销量最好的那几款,首先是大品牌售后更有保障,口碑和销量也间接证明了这款投影是否值得买。这几年国内投影市场中爱普生、极米、当贝这三家投影品牌无论是在产品、口碑、售后服务等方面都是最好的,被用户们…

点对点的RPC通信功能测试(bug修复)

1.发现问题 处理rpc调用client客户端存在一些问题,数据反序列化的问题 rpc的调用方,数据的处理有些问题,我们返回的是true,应该是1,不是0. 返回值已经写道response里面。发回给调用方(calluserservice.&…

有向图的拓扑排序以及判断是否有环

拓扑序列是顶点活动网中将活动按发生的先后次序进行的一种排列。 拓扑排序,是对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G)&#x…

【数据分享】全国县市2000-2022年教育、卫生和社会保障数据(免费获取)

《中国县域统计年鉴》是一部全面反映我国县域社会经济发展状况的资料性年鉴,收录了上一年度全国2000多个县域单位的基本情况、综合经济、农业、工业、教育、卫生、社会保障等方面的资料。 在之前的文章中,我们分享过基于2001-2023年《中国县域统计年鉴》…

idea自定义模版、快捷键

原文地址&#xff1a;【IDEA】常用插件、设置、注释_idea注释插件-CSDN博客 创建模版组&#xff1a;MyTemplates 创建模版&#xff1a;forThread&#xff1a;循环打印出10个线程 第四步 for (int i 1; i < 10; i) {new Thread(() -> {$END$}, String.valueOf(i)).star…

pytorch-广播机制

Broadcasting Key idea A[4,3] B[3] 在第一个维度前面插入一个维度 [3] > [1,3]将维度1扩展到与B维度1一样的尺寸 [1,3] > [4,3] broadcasting unsqueeze expand 为什么要使用broadcasting&#xff1f; 1、for example [class, student, scores]add bias for ever…

ESP8266 8x8点阵LED控制系统 日志2024/7/31

手机app: 内置主页配置 唯一不好的就是有一点问题就得全改一遍,来回修改格式很烦啊喂!~ 为什么要留个 主页控制? 有些人不是喜欢程序员的浪漫嘛,把index.html上传上去下次就是表白页面咯! 当然这只是鸡肋娱乐,真实功能其实就是用来美化html的, 如果不满意html 自己美化之…

JAVA后端拉取gitee仓库代码项目并将该工程打包成jar包

公司当前有一个系统用于导出项目&#xff0c;而每次导出的项目并不可以直接使用&#xff0c;需要手动从gitee代码仓库中获取一个模板代码然后将他们整合到一起它才是一个完整的项目&#xff0c;所以目前我的任务就是编写一个java程序可以自动地从gitee仓库拉取下来那个模板代码…

git学习准备阶段

准备阶段 ubantu下载安装git sudo apt-get install git查看git版本 git -v注册用户名 git config --global user.name [name][name]填入自己的名字&#xff0c;如果没有空格的情况下&#xff0c;可以不加引号,–global是在全局下操作&#xff0c;如果没有这个参数就只是在本…

sdwan

分支互联网络解决方案 - 华为企业业务 分支互联网络解决方案 随着5G、AI、物联网等新兴技术与云紧密结合&#xff0c;企业业务智能化和云化加速。 企业分支WAN流量激增&#xff0c;传统以MPLS专线为主的广域互联网络难以支撑业务发展。SD-WAN成为应对云时代的必然选择。 SD…

2024电脑桌面能提醒的备忘录app分享

随着科技的飞速进步&#xff0c;2024年的今天&#xff0c;我们已经拥有了众多高效便捷的软件工具&#xff0c;其中&#xff0c;备忘录app更是成为了我们日常生活中不可或缺的一部分。在繁忙的工作和生活中&#xff0c;我们需要一个得力的助手来帮助我们记录重要事务&#xff0c…

【ROS 最简单教程 006/300】使用 launch 启动多个 ROS 节点

使用 launch 文件&#xff0c;可以一次性启动多个 ROS 节点 launch 文件编写的语法规则参见 &#x1f449; launch 文件编写 &#x1f49c; &#x1f49c; &#x1f49c; &#x1f49c; &#x1f49c; 简单示例如下 不使用 launch 需要启动三个命令行终端窗口&#xff0c;分别…

时常在面试中被问到的JVM问题

文章目录 JVM 和 JDK、JRE 有什么区别&#xff1f;JVM 是如何工作的&#xff1f;JVM 主要组件JVM 执行流程JVM 的工作示例 说一下类加载机制类加载器&#xff08;Class Loader&#xff09;示例 什么是双亲委派模型&#xff1f;&#xff08;Parent Delegation Model&#xff09;…

多语种语音合成数据,拓宽语音大模型边界

近期&#xff0c;一个名为 ChatTTS 的文本转语音项目爆火出圈&#xff0c;在 GitHub 上已经斩获了 28 k 的 Star 量。 作为一款专门为对话场景设计的语音生成模型&#xff0c;ChatTTS 支持英文和中文两种语言。针对对话式任务进行了优化&#xff0c;实现了自然流畅的语音合成。…

移动光猫(UNG853H)获取超级帐号和密码

1.查看光猫背部的登录地址及帐密码&#xff1b;比如我的光猫&#xff1a; http://192.168.1.1 User: user password: ****** 2.启动telnet服务&#xff0c;使用以下命令&#xff1a; http://192.168.1.1/webcmcc/telnet.html 3.使用telnet登录光猫&#xff0c;在CMD下执行&…

做微课的软件有哪些?教师专用录微课软件分享

在这个数字化教育时代&#xff0c;微课以其短小精悍、针对性强的特点&#xff0c;成为了教师们提升教学质量、促进学生自主学习的得力助手。制作高质量的微课&#xff0c;离不开一款功能强大、操作简便的录屏软件&#xff0c;今天&#xff0c;就让我们一起探索几款专为教师设计…