stm32adc采集dac的数据_SaaS 模式云数据仓库 MaxCompute 数据安全最佳实践

cdff0fea085e56aa3ed0d373ad4b8b04.png
简介:MaxCompute作为企业级SaaS模式云数据仓库,正在为客户业务及其数据提供持续的安全保护。 MaxCompute 近期对产品的安全能力进行了全面升级,本文将针对数据误用、数据滥用、数据泄露、数据丢失等典型数据风险场景,结合数据生命周期,为您介绍基 于MaxCompute 和 DataWorks 原生集成安全能力的最佳实践。

什么是 MaxCompute?

MaxCompute 是一款云原生、高效能的SaaS模式企业级数据仓库服务,被广泛用于构建现代化企业数据平台,开展BI分析、数据化运营、画像及推荐、智能预测等应用场景。

MaxCompute 构建在阿里云大规模计算、存储资源之上,以Serverless架构提供全托管的在线数据仓库服务,消除了传统数据平台在资源扩展性和弹性方面的限制,并最小化用户的运维投入。

MaxCompute支持多种经典计算模型(批处理、机器学习、交互式分析等)和完善的企业管理功能,借助MaxCompute,用户可轻松集成和管理企业数据资产,简化数据平台架构,加速价值实现。

MaxCompute 企业级安全能力升级

MaxCompute 近期对产品的安全能力进行了全面升级。 发布的安全能力有:

· 细粒度授权
· 数据加密 (BYOK)
· 数据脱敏(数据保护伞)
· 持续备份恢复
· 跨地域的容灾备份
· 实时审计日志

MaxCompute 安全体系

对于一个企业级的大数据平台,要应对的安全风险,有三个层次(如图-1):
1.基础安全与可信平台,保障数据中心的物理安全与网络安全,主要包括数据中心保障设施、数据中心安全管控、数据中心的网络安全等几个维度的建设。
2.大数据平台的系统安全,主要由访问控制、安全隔离、风控审计、以及数据保护等子系统构成,为上层安全应用或工具提供平台能力基础。
3.数据应用的安全,为用户提供工具化的数据安全产品,优化用户体验,帮助用户更好应对各类数据风险。

963f8d56fdeccc2711803d9633c03f91.png

(图-1:大数据平台安全体系)

近期的MaxCompute安全能力升级,主要新功能覆盖了访问控制、风控审计、以及数据保护几个子系统,如图-1中“大数据平台安全”层中,黄色高亮字体部分。本文中,我们将针对几类主要的数据风险(如图-2),介绍这些数据风险应对的最佳实践。在最佳实践中,将会穿插介绍何时使用、为什么使用、如何使用这些新功能。

d327a81d76d5653d85c67c4881aca9cd.png

(图-2:主要数据风险)

如何应对数据误用

数据误用是由于非故意的、过失性动作导致的,防止误用一般指防止数据被不经意间错误使用。应对数据误用的风险,防止数据误用,核心的一点,就是了解数据,能够回答这些问题:我有什么数据,这些数据在哪里,这些数据是怎么来的、又被如何使用,等一系列问题。

1. MaxCompute 提供基础元数据信息

MaxCompute 可以帮助用户很好的回答这些问题。 MaxCompute 平台构建了统一的元数据管理,基于统一元数据和完备的平台日志,向用户提供元数据和相关日志数据。 用户可以基于 MaxCompute 的 Information Schema,构建自己的数据管理应用。

2. 使用数据地图作为数据管理工具

大多数用户更希望通过现有的数据管理应用或服务,来了解自己的数据:“DataWorks-数据地图”就是这样的应用。 数据总览、数据明细等信息能帮助用户了解自己有哪些数据以及数据的明细信息;产出和使用信息、血缘信息,则能帮助用户了解数据的来龙去脉,帮助用户正确、合理的使用数据。 使正确的数据,被正确的使用在正确的场景下。

caa26d493860262aa855055dc6f11c8d.png

(图-3:使用数据地图了解数据)

如何应对数据滥用

数据滥用指的是对数据的使用超出了其预先约定的场景或目的,数据滥用一般是靠故意的、带有目的性的动作完成的。而应对数据滥用,最主要的应对是对数据使用做最小化授权,严格限制数据的被访问、使用的范围。权限管理的最佳实践,推荐图-5中的4大过程:

• 数据分级管理:基于 MaxCompute 的 LabelSecurity 对数据做分类分级管理。
• 授权审批流程:基于 MaxCompute 的 列级别权限管控能力, 对数据的访问使用需求,做最小化授权。
• 定期审计:对权限的申请、审批、使用情况进行分析,做到事前有审批,事后有审计。
• 及时清理:及时清理过期权限,减少数据风险。

可以依托 MaxCompute 的细粒度权限体系,使用 Dataworks 等白屏化工具,来实现最小化授权的最佳实践,应对数据滥用的风险。

  1. (New) MaxCompute 细粒度权限体系提供精细化的权限管理能力

MaxCompute支持不同的授权机制来完成对用户或角色的授权,包括:
• 自主访问控制机制 (DAC, Discretionary Access Control): ACL
• 强制访问控制机制 (MAC, Mandatory Access Control):LabelSecurity(标签安全策略)
• 基于角色的访问控制机制 (RBAC, Role based Access Control): 角色管理

不论是哪种访问控制机制,授权鉴权过程中的三个要素是相同的:Action,Object,以及Subject,如下图。

在此次的MaxCompute 安全能力发布中,也包括权限模型的升级,支持更细粒度的授权鉴权,提供精细化的权限管理能力。 主要新功能有:

• ACL 支持列级别权限管理,增加Condition支持,增加授权有效期支持;
• 细粒度 Package 内资源权限管控,对 Package 内的资源可以支持到列级别的权限管控;
• 增加独立的 Download 数据下载权限管理,对更高风险的数据批量下载场景做独立权限管控;
• 管理类权限支持分级授权管理,内置 super administrator 角色来分解project owner 管理负担;
• 完善 RBAC,LabelSecurity 增加对 Role 的支持;
• 增强对应用端的权限管理能力。

87fba47efffbc26c48a594f37c721ace.png

(图-4:MaxCompute 细粒度权限体系)

(橙色高亮字体为此次细粒度权限能力发布)

2.使用安全中心进行白屏化权限管理

MaxCompute 的细粒度权限体系提供了的实现最小化授权的平台能力,结合一些白屏化工具,如“DataWorks-安全中心”,则可以提供更好的用户体验,让用户更方便的实现权限管理。

a6b595442b42c4154f945a0a8c4b29fd.png

(图-5:使用安全中心做白屏化权限管理)

安全中心提供便捷的权限管控功能和可视化的申请、审批流程,也可以进行权限的审计和管理:

• 权限自助申请:选择所需权限的数据表/字段,在线上快速发起申请。
• 权限审计及交还:管理员可以查看数据权限的对应人员,进行审计管理,用户也可以主动交还不再需要的权限。
• 权限审批管理:在线审批授权模式,提供可视化、流程化的管理授权机制,并可以对审批流程进行事后追溯。

如何应对数据泄露

1.数据生命周期

4e8ac259bf6573a173eb8ad10cab3b35.png

(图-6:数据生命周期)

数据泄露可能发生在数据生命周期的多个阶段,如数据传输、数据存储、数据处理、数据交换等阶段。因此,我们将结合数据生命周期的不同阶段来介绍应对数据泄露的最佳实践。

首先,数据从不同的渠道被采集,经过各类传输通道,进入大数据平台。 在大数据平台中,经过计算后落盘存储;数据也会通过数据分享机制,在不同的租户、业务之间流转;经过一定周期后,一些数据也会被删除销毁。经过处理后的数据,则会通过不同的传输通道,被其他数据应用、或者用户消费。 (如图-7)。

bb3d1179553e5d3bd008c644c7f58953.png

(图-7:大数据平台中的数据生命周期)

2.(New) 应对数据存储过程中的数据泄露风险 - 使用数据加密(存储加密)功能

我们首先看一下如何应对数据存储过程中的数据泄露风险:如磁盘数据被直接访问,磁盘被获取,等风险。应对此类情况的措施,是对磁盘数据进行加密,这样即使数据被恶意获取,加密后的数据也无法被解读使用。
此次安全能力升级中, MaxCompute 发布了存储加密功能,支持用户数据的落盘加密:

• MaxCompute接入秘钥管理系统KMS以保障秘钥的安全性,支持服务秘钥和用户自选秘钥(BYOK)。
• 用户可以在创建MaxCompute项目时,配置选择打开存储加密功能(存量用户可以通过工单申请开通)。
• 支持加密算法:AES256,国密算法,等。
• .数据加密后对用户使用保持透明,各种类型的任务不需额外改变。

3.应对数据数据处理过程中的数据泄露风险 - MaxCompute 安全隔离能力

在数据处理过程中,应对数据泄露的风险则主要在于大数据平台的安全隔离能力。
MaxCompute 提供独立的隔离环境用于执行数据处理应用,可以支持完整的UDF种类,支持 Java和Python UDF, 还支持执行如Spark、Flink、Tensorflow 等开源三方计算引擎,提供了多元化的数据处理能力。

a89e2db8d8b0839a3bdf1010e1fd2fa9.png

(图-8:MaxCompute 安全隔离能力)

4.应对数据交换(共享)过程中的数据泄露风险 - MaxCompute数据隔离与权限体系

在数据交换、或者说数据共享过程中,则需要完善的数据隔离能力与权限管理体系来保障数据安全、防范数据泄露风险。MaxCompute 提供不同层级和维度上的数据隔离与权限管理机制,以支持多层次的数据保护和数据共享场景。

• 多租户的数据安全隔离:MaxCompute 支持多租户的使用场景,针对不同的用户数据进行数据存储隔离,用户数据被离散存储在分布式文件系统中,满足多用户协同、共享、和安全的需要,做到真正的多租户资源隔离。

• 租户内的业务(Project)数据隔离与共享:同一租户下,不同业务(Project)之间的数据隔离、以及一定程度上的数据共享是非常常见的场景。基于ProjectProtection 保护机制可以实现 Project之间的数据隔离与保护,二Package则能让用户更方便同时也更安全的实现跨Project的数据和资源分享。如前文“MaxCompute 细粒度权限体系提供精细化的权限管理能力”介绍,此次安全能力升级增加了对Package的数据和资源做细粒度的权限管理,增强了Package的数据共享和保护能力。

• (New) 应用端数据访问控制:通过对访问MaxCompute的的应用增加签名机制,增强了对应用端访问控制的管理能力。 例如,只允许特定的应用可以进行授权语句的操作,以避免用户通过接口或不合规的应用进行非法数据授权操作。

9447f1a99fa6a1c7f41b4e0c93fd2ece.png

(图-9:MaxCompute 数据隔离能力)

5.(New) 数据生命周期中的敏感数据保护

应对数据泄露风险中的一个重要主题是敏感数据保护,前文所述在存储、处理、和交换过程中的风险应对实践,对敏感数据保护同样适用。 此外,还有一些针对敏感数据保护这一特定场景的最佳实践:

• 数据分类分级:使用 MaxCompute 的 LabelSecurity 功能,对数据做安全性的分类分级,对不同类别不同安全等级的数据访问和使用,进行精细化的权限管理。

• (New) 数据脱敏:基于安全行业的脱敏实现或应用,结合 MaxCompute 的平台 UDF 能力,实现不同客户端数据输出时的敏感数据脱敏。脱敏实现也可以与数据分类分级结合使用,对不同分类分级的数据做不同的脱敏实现。

e5e8cc5b82767dda7e3ee6d3fed4d67d.png

(图-10:敏感数据保护)

(New)用数据保护伞作为敏感数据保护工具

数据保护伞,是基于 MaxCompute 平台的数据分类分级能力和接入脱敏应用能力、构建的敏感数据保护工具。用户可以使用数据保护伞对敏感数据进行标识,选择脱敏算法,在数据屏显输出时进行脱敏。
更多产品说明和使用介绍,详见《数据保护伞》用户文档。

e81f4240e7911c8293d51a01e3c9f3c2.png

(图-11:敏感数据保护工具 - 数据保护伞)

如何应对数据丢失

除了恶意的数据泄露、数据滥用等风险,数据开发过程中的各种误操作,偶发的设备或机房故障,甚或是罕见的灾害意外情况,都能造成数据丢失的后果。 应对数据丢失风险的最佳实践,主要有备份恢复,以及容灾能力。

1.(New) MaxCompute 备份与恢复

数据开发过程中,避免不了会有误操作删除数据(如Drop/Truncate Table)后需要恢复,或使用“insert into”、“insertoverwrite”语法执行后发现数据有问题需要恢复之前版本。

MaxCompute 近期发布了持续的备份与恢复能力,系统会自动备份数据的历史版本(例如被删除或修改前的数据)并保留一定时间,您可以对保留周期内的数据进行快速恢复,避免因误操作丢失数据。

4997d3fd8c1a8e9780e7834410d95804.png

(图-12:MaxCompute 持续备份与恢复能力)

2.(New) MaxCompute 异地容灾

MaxCompute 的异地容灾能力,更好的提供了在机房故障或意外灾害等极端场景下的数据安全保障。
在为 MaxCompute 项目指定备份位置到备份集群后,MaxCompute 自动实现主集群与备份集群的数据复制,达到主集群与被集群数据的一致,实现异地数据容灾。当发生故障,MaxCompute 项目从主集群切换到备份集群后,使用备份集群的计算资源访问备份集群的数据,完成服务的切换和恢复。

358162020ac889f20c9c701b502304b1.png

(图-13:MaxCompute 异地容灾)

善用审计,应对各类数据风险

至此,我们已经介绍了在数据开发和使用过程中,应对各类数据风险的实践。我们把非常重要的、适用于各类数据风险应对的一个实践,放在最后介绍:善用日志,构建预警和审计能力。

MaxCompute 提供了完善的历史数据和实时日志:

• Information Schema:提供了项目元数据及使用历史数据等信息。PRIVILEGES 和 HISTORY 类的视图,可以帮助用户对数据权限使用、任务执行等维度做分析审计。

• (New) 实时审计日志功能:MaxCompute 完整记录了用户的各项操作行为,如DDL、授权、任务执行等各类事件,满足实时审计、问题回溯分析等需求。

基于 Information Schema 和 实时审计日志,用户可以构建自己的数据风控和审计体系。Information Schema 去年就已上线,下文将主要介绍新发布的实时审计日志。

当然,并不是所有的用户都计划自己构建风控和审计工具,这种情况下,可以直接使用 Dataworks 中的已有产品,进行风控和审计。优点是无需用户二次开发、开箱即用,缺点则是定制的弹性较小。

1.(New) 实时审计日志

敏感数据是否被过度使用?数据访问权限是否被过度授予?是否有异常如计划外高频的数据访问?在数据安全保障中,管理者常常需要回答这些问题。 MaxCompute 审计日志可以帮助回答这些问题。

MaxCompute完整地记录用户的各项操作行为,并通过阿里云ActionTrail服务将用户行为日志实时推送给ActionTrail。用户可以在ActionTrail中查看和检索用户行为日志,同时通过ActrionTrail将日志投递到日志服务项目或指定的OSS Bucket中,满足实时审计、问题回溯分析等需求。

ActionTrail针对作业(Instance)、表(Table)、函数(Function)、资源(Resource)、用户(User)、角色(Role)和授权(Privilege)等事件的多种操作行为进行审计,详细功能说明和使用介绍,详见《审计日志》用户文档。

a597706ad41f00f41abfe20b43ddafd7.png

(图-14:MaxCompute 审计日志)

2.使用 DataWorks 中的审计工具

用户也可以使用 Dataworks 的已有产品,进行数据安全的风控和审计:

• 在前文中介绍的安全中心,可以提供权限的审计。
• 数据保护伞也提供了风控和审计能力,如图-15。

de6e5205ee6607004e1ad443391c3c45.png

(图-15:使用数据保护伞做风控和审计)

小结

小结的同时呼应开篇,我们再次来看企业级大数据平台三个层次的数据安全保障体系。 这次我们把 MaxCompute 的安全能力按数据生命周期的6个阶段来重新组织,如图-16。帮助大家更好理解,在不同的数据生命阶段,应该采用哪些实践来实施安全保障。图-16中的黄色高亮部分,则标识了此次 MaxCompute 安全能力升级中的新功能。

c404371e124bf4f236144e34a472d909.png

(图-16:基于大数据平台构建数据什么周期的安全保障)

作为 SaaS 模式下的云数据仓库,MaxCompute 具备领先的安全能力,也通过了国际、欧洲、国内的多项安全合规认证,如国际主流认证ISO系列、SOC1/2/3、PCI,欧洲主流认证C5,国内主流认证安全等级保护2.0,等。 阿里云整体的安全合规认证,详见《阿里云信任中心-合规认证》页面。 欢迎大家使用 MaxCompute,构建企业级的大数据安全。

发布会传送门

查看产品详情

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的实例代码,用于在STM32上进行DACADC数据采集和转换: ``` #include "stm32f10x.h" #include "stm32f10x_adc.h" #include "stm32f10x_dac.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" int main(void) { GPIO_InitTypeDef GPIO_InitStructure; ADC_InitTypeDef ADC_InitStructure; DAC_InitTypeDef DAC_InitStructure; // 开启GPIOA、ADC1、DAC通道1时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1 | RCC_APB1Periph_DAC, ENABLE); // 配置DAC通道1的GPIO引脚PA4 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOA, &GPIO_InitStructure); // 配置ADC1的GPIO引脚PA0 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOA, &GPIO_InitStructure); // 配置DAC通道1 DAC_InitStructure.DAC_Trigger = DAC_Trigger_None; DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None; DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable; DAC_Init(DAC_Channel_1, &DAC_InitStructure); // 配置ADC1 ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = DISABLE; ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &ADC_InitStructure); // 配置ADC1的通道0 ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_55Cycles5); // 启动ADC1的转换器 ADC_Cmd(ADC1, ENABLE); // 启动DAC通道1 DAC_Cmd(DAC_Channel_1, ENABLE); // 等待DAC通道1的输出稳定 while (DAC_GetFlagStatus(DAC_Channel_1, DAC_FLAG_DMAUDR) == RESET); // 开始ADC1的转换 ADC_SoftwareStartConvCmd(ADC1, ENABLE); // 等待转换结束 while (ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET); // 读取转换结果 uint16_t adc_value = ADC_GetConversionValue(ADC1); uint16_t dac_value = DAC_GetDataOutputValue(DAC_Channel_1); while (1); } ``` 此代码中,我们首先启用了GPIOA、ADC1和DAC通道1的时钟。然后,我们配置了PA4作为DAC通道1的引脚,PA0作为ADC1的引脚。接下来,我们配置了DAC通道1和ADC1,并将ADC通道0与ADC1关联起来。然后,我们启动了ADC1的转换器和DAC通道1,并等待DAC通道1的输出稳定。最后,我们开始ADC1的转换,并等待转换结束。我们读取了ADCDAC的转换结果并停止程序的运行。 希望这个例子对你有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值