【实验】阿里云大数据助理工程师认证(ACA)- ACA认证配套实验-05-安全与权限基本操作(下)

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 【实验】阿里云大数据助理工程师认证(ACA)- ACA认证配套实验-05-安全与权限基本操作(下)

2.2 实验:角色管理与授权


提示:本章节所需操作均需使用阿里云主账号或者具有项目admin权限的用户进行实验,实验环境需在各阿里云主账号对应的项目中进行。


1、用户A新建一个角色 reader:

create role reader;

2、用户A赋予角色reader几张表的读权限:


grant describe, select on table dual to role reader;
grant describe, select on table t_test to role reader;


3、用户A查看角色的权限:


desc role reader;


4、用户A查看B用户拥有的权限:


show grants for ALIYUN$huiongshan@126.com;


5、用户A将角色reader赋予用户B:


grant reader to ALIYUN$huiongshan@126.com;


6、用户A查看B用户拥有的权限:


show grants for ALIYUN$huiongshan@126.com;


7、用户A赋予角色reader另外几张表的读权限:

grant describe, select on table t_tunnel to role reader;
grant describe, select on table t_tunnel_p to role reader;

8、用户A查看角色的权限和使用情况:


desc role reader;


9、用户A查看B用户拥有的权限:


show grants for ALIYUN$huiongshan@126.com;


10、用户A删除角色reader(会报错,删除失败):


drop role reader;


11、用户A移除用户B(会报错,移除失败):


remove user ALIYUN$huiongshan@126.com;


12、用户A查看角色的权限和使用情况:


desc role reader;


13、用户A从用户B收回角色:


revoke reader from ALIYUN$huiongshan@126.com;


14、用户A删除角色reader:


drop role reader;


15、用户A移除用户B:


remove user ALIYUN$huiongshan@126.com;


2.3 实验:鉴权模型查看与管理


提示:本章节所需操作均需使用阿里云主账号或者具有项目admin权限的用户进行实验,实验环境需在各阿里云主账号对应的项目中进行。


1、用户A查看当前项目的鉴权模型:

show SecurityConfiguration;

2、用户A赋予用户B建表的权限:


add user ALIYUN$huiongshan@126.com;
grant createtable on project Lab_class to user ALIYUN$huiongshan@126.com;


3、用户B建表:


create table Lab_class.t_test_sg (id int);
desc Lab_class.t_test_sg;
select count(*) from Lab_class.t_test_sg;


image.png

image.png

image.png


4、用户A修改鉴权模型,将ObjectCreatorHasAccessPermission改为false:

set ObjectCreatorHasAccessPermission=false;
show SecurityConfiguration;


5、用户B访问Lab_class.t_test_sg(报错,权限不足):


desc Lab_class.t_test_sg;
select count(*) from Lab_class.t_test_sg;


image.png

image.png


6、用户B删除Lab_class.t_test_sg(报错,权限不足):


drop table Lab_class.t_test_sg;


image.png


7、用户A修改鉴权模型,将ObjectCreatorHasAccessPermission改为true:

set ObjectCreatorHasAccessPermission=true;
show SecurityConfiguration;

8、用户B访问Lab_class.t_test_sg:


desc Lab_class.t_test_sg;
select count(*) from Lab_class.t_test_sg;


image.png

image.png


9、用户B删除Lab_class.t_test_sg:


drop table Lab_class.t_test_sg;


image.png


10、用户A收回用户B建表的权限:

revoke createtable on project Lab_class from user ALIYUN$huiongshan@126.com;
remove user ALIYUN$huiongshan@126.com;


2.4 实验:基于标签的安全控制


提示:本章节所需操作均需使用阿里云主账号或者具有项目admin权限的用户进行实验,实验环境需在各阿里云主账号对应的项目中进行。


1、用户A查看当前项目的鉴权模型:

show SecurityConfiguration;


2、如果LabelSecurity的值为false,则需要将它设置成true:


set LabelSecurity=true;


3、增加用户B到当前项目Lab_class,并设置安全许可标签:


(默认安全标签为0,我们将用户B(ALIYUN$huiongshan@126.com) 安全许可标签设置为3)
add user ALIYUN$huiongshan@126.com;
set label 3 to user ALIYUN$huiongshan@126.com;
grant select,describe on table t_tunnel to user ALIYUN$huiongshan@126.com;


4、用户B此时可以访问Lab_class.t_tunnel:


select * from Lab_class.t_tunnel;


image.png


5、用户A将t_tunnel的id敏感等级提高成4:


set label 4 to table t_tunnel(id);


image.png


6、用户B此时因安全等级低,无法访问敏感等级高的数据Lab_class.t_tunnel:


select * from Lab_class.t_tunnel;


image.png


7、用户A将t_tunnel中的id字段的敏感度调整到3:


set label 3 to table t_tunnel(id);


8、用户B此时可以访问Lab_class.t_tunnel中敏感级别不大于3的列id:


select id from Lab_class.t_tunnel;


image.png

9、用户A可以设置对低权限用户B进行临时授权可以访问高敏感级别的表t_tunnel_p:


set label 3 to user ALIYUN$huiongshan@126.com;
grant select,describe on table t_tunnel_p to user ALIYUN$huiongshan@126.com;
set label 5 to table t_tunnel_p(name);
set label 4 to table t_tunnel_p (id);
grant label 4 on table t_tunnel_p to user ALIYUN$huiongshan@126.com with exp 1;


10、用户B此时可以访问Lab_class.t_tunnel_p中敏感级别不大于4的所有列:


select id from Lab_class.t_tunnel_p;
select name from Lab_class.t_tunnel_p;


image.png

image.png


11、用户A查看当前有权限访问t_tunnel_p的表的用户列表:


show label grants on table t_tunnel_p;


12、用户A查看用户B有权限访问的所有的表的列表:


show grants for ALIYUN$huiongshan@126.com;


13、用户A收回用户B权限,并从项目中移除用户B,并复原项目的鉴权模型:

revoke describe,select on table t_tunnel from user ALIYUN$huiongshan@126.com;
revoke describe,select on table t_tunnel_p from user ALIYUN$huiongshan@126.com;
remove user ALIYUN$huiongshan@126.com;
set LabelSecurity=false;
show SecurityConfiguration;


2.5 实验:跨项目空间的资源分享


提示:本章节所需操作均需使用阿里云主账号或者具有项目admin权限的用户进行实验,实验环境需在各阿里云主账号对应的项目中进行。


1、用户A创建package,并将表t_tunnel以及表t_tunnel_p的访问权限添加到该package:

create package pk_tunnel_read;
add table t_tunnel to package pk_tunnel_read with privileges select;
add table t_tunnel_p to package pk_tunnel_read with privileges describe;

2、用户A将pk_tunnel_read赋给用户B所在的项目Star_research:


allow project Star_research to install package pk_tunnel_read;


3、用户B查看所在项目空间可用的package:


show packages;


image.png

4、用户B安装pk_tunnel_read:


install package Lab_class.pk_tunnel_read;
show packages;
desc package Lab_class.pk_tunnel_read;


image.png

image.png

image.png


5、用户B访问package中包含的资源:

select * from Lab_class.t_tunnel;
desc Lab_class.t_tunnel_p;


image.png

image.png


6、用户B卸载package:


uninstall package Lab_class.pk_tunnel_read;


image.png

7、用户A删除package:


drop package pk_tunnel_read;


2.6 实验:项目空间保护


提示:本章节所需操作均需使用阿里云主账号或者具有项目admin权限的用户进行实验,实验环境需在各阿里云主账号对应的项目中进行。


1、用户A查看当前项目的鉴权模型,确认目前的ProjectProtection处于false状态:


show SecurityConfiguration;


2、增加用户B到当前项目Lab_class,并赋予表t_tunnel的读写权限:


add user ALIYUN$huiongshan@126.com;
grant all on table t_tunnel to user ALIYUN$huiongshan@126.com;
grant select on table dual to user ALIYUN$huiongshan@126.com;


3、用户B操作表t_tunnel:可以读取记录,或者插入数据


select * from Lab_class.t_tunnel;
insert into table Lab_class.t_tunnel select  '1' from Lab_class.dual;


image.png

image.png


4、用户B甚至可以把表中的数据搬到本地的项目中来:


create table iris as select * from Lab_class.t_tunnel;


image.png


5、用户A为了防止数据流出,打开项目保护选项:ProjectProtection:


set ProjectProtection=true;


6、用户B对t_tunnel的操作都被禁止,需要联系Lab_class的owner:

select * from Lab_class.t_tunnel;
insert into table Lab_class.t_tunnel select  '-2' from Lab_class.t_tunnel;
create table iris_again as select * from Lab_class.t_tunnel;

image.png

image.png

image.png


7、用户A为用户B设置例外:

set ProjectProtection=true with exception c:\pf_try;
其中,pf_try为一个授权策略文件(ANSI/ANSII格式),内容如下:
{
“Version”: “1”,
“Statement”:[{
"Effect":"Allow",
"Principal":"ALIYUN$huiongshan@126.com",
"Action":["odps:Select"],
"Resource":["acs:odps:*:projects/Lab_class/tables/t_tunnel"],
"Condition":{
    "StringEquals": {
        "odps:TaskType":"SQL"
    } }

}]

}

8、用户B可以对表Lab_class.t_tunnel进行正常操作:

select * from Lab_class.t_tunnel;
create table iris_again as select * from Lab_class.t_tunnel;

image.png

image.png

9、用户A设置无例外项目保护:


set ProjectProtection=true;


第 3 章:实验总结


3.1 实验总结


通过本次实验,了解MaxCompute的用户授权、角色管理、鉴权模型、基于标签的安全控制、项目空间资源分享、项目空间保护等配置是如何实现,熟练掌握各种权限配置的方法,在后续的工作学习中,通过已学的配置方法,可较为方便的实现资源共享。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
8天前
|
人工智能 Cloud Native 数据管理
重磅升级,阿里云发布首个“Data+AI”驱动的一站式多模数据平台
阿里云发布首个AI多模数据管理平台DMS,助力业务决策提效10倍
|
1天前
|
人工智能 分布式计算 DataWorks
连续四年!阿里云领跑中国公有云大数据平台
近日,国际数据公司(IDC)发布《中国大数据平台市场份额,2023:数智融合时代的真正到来》报告——2023年中国大数据平台公有云服务市场规模达72.2亿元人民币,其中阿里巴巴市场份额保持领先,占比达40.2%,连续四年排名第一。
26 5
|
1天前
|
SQL 人工智能 大数据
阿里云牵头起草!首个大数据批流融合国家标准发布
近日,国家市场监督管理总局、国家标准化管理委员会正式发布大数据领域首个批流融合国家标准GB/T 44216-2024《信息技术 大数据 批流融合计算技术要求》,该标准由阿里云牵头起草,并将于2025年2月1日起正式实施。
22 1
|
21天前
|
存储 SQL 分布式计算
Java连接阿里云MaxCompute例
要使用Java连接阿里云MaxCompute数据库,首先需在项目中添加MaxCompute JDBC驱动依赖,推荐通过Maven管理。避免在代码中直接写入AccessKey,应使用环境变量或配置文件安全存储。示例代码展示了如何注册驱动、建立连接及执行SQL查询。建议使用RAM用户提升安全性,并根据需要配置时区和公网访问权限。具体步骤和注意事项请参考阿里云官方文档。
|
24天前
|
机器学习/深度学习 数据可视化 大数据
阿里云大数据的应用示例
阿里云大数据应用平台为企业提供高效数据处理与业务洞察工具,涵盖Quick BI、DataV及PAI等核心产品。DT203课程通过实践教学,帮助学员掌握数据可视化、报表设计及机器学习分析技能,提升数据驱动决策能力。Quick BI简化复杂数据分析,DataV打造震撼可视化大屏,PAI支持全面的数据挖掘与算法应用。课程面向CSP、ISV及数据工程师等专业人士,为期两天,结合面授与实验,助力企业加速数字化转型。完成课程后,学员将熟练使用阿里云工具进行数据处理与分析。[了解更多](https://edu.aliyun.com/training/DT203)
|
1月前
|
存储 分布式计算 大数据
大数据革新在即,阿里云EMR如何布局DeltaLake引领行业潮流?
【8月更文挑战第26天】大数据时代,实时处理与分析能力对企业至关重要。Delta Lake 作为高性能、可靠且支持 ACID 事务的开源存储层,已成为业界焦点。阿里云 EMR 深度布局 Delta Lake,计划深化集成、强化数据安全、优化实时性能,并加强生态建设与社区贡献。通过与 Spark 的无缝对接及持续的技术创新,阿里云 EMR 致力于提供更高效、安全的数据湖解决方案,引领大数据处理领域的发展新方向。
33 3
|
1月前
|
存储 分布式计算 监控
揭秘阿里云EMR:如何巧妙降低你的数据湖成本,让大数据不再昂贵?
【8月更文挑战第26天】阿里云EMR是一种高效的大数据处理服务,助力企业优化数据湖的成本效益。它提供弹性计算资源,支持根据需求调整规模;兼容并优化了Hadoop、Spark等开源工具,提升性能同时降低资源消耗。借助DataWorks及Data Lake Formation等工具,EMR简化了数据湖构建与管理流程,实现了数据的统一化治理。此外,EMR还支持OSS、Table Store等多种存储选项,并配备监控优化工具,确保数据处理流程高效稳定。通过这些措施,EMR帮助企业显著降低了数据处理和存储成本。
45 3
|
1月前
|
存储 分布式计算 大数据
阿里云 EMR 强势助力,与阿里云大数据体系共创辉煌,把握时代热点,开启生态建设之旅
【8月更文挑战第26天】阿里云EMR(Elastic MapReduce)是一种大数据处理服务,与阿里云的多个服务紧密结合,共同构建了完善的大数据生态系统。EMR与对象存储服务(OSS)集成,利用OSS提供可靠、低成本且可扩展的数据存储;与MaxCompute集成,实现深度数据分析和挖掘;还支持数据湖构建服务,加速数据湖的搭建并简化数据管理与分析过程。EMR提供多种编程接口及工具,如Hive、Spark和Flink等,帮助用户高效完成大数据处理任务。
29 2
|
1月前
|
存储 人工智能 搜索推荐
飞天大数据平台产品问题之阿里云OpenSearch的定义如何解决
飞天大数据平台产品问题之阿里云OpenSearch的定义如何解决
|
28天前
|
机器学习/深度学习 分布式计算 BI
MaxCompute 与阿里云其他服务的协同工作
【8月更文第31天】在当今的数据驱动时代,企业需要处理和分析海量数据以获得有价值的洞察。阿里云提供了一系列的服务来满足不同层次的需求,从数据存储到高级分析。MaxCompute(原名 ODPS)作为阿里云的大规模数据处理平台,提供了强大的计算能力和丰富的功能,可以与阿里云的其他服务无缝集成,形成完整的大数据解决方案。本文将探讨 MaxCompute 如何与其他阿里云服务协同工作,包括存储服务 OSS、数据分析服务 Quick BI 以及机器学习平台 PAI。
23 0

热门文章

最新文章