【最佳实践】如何通过OSS的Bucket Policy设置访问授权?
如何让1个外部用户访问某个OSS资源?
某大型企业A使用OSS作为后端资源存储平台,当该企业期望将内部数据分享给下游合作伙伴B,那么基于阿里云OSS平台,有多少种方式呢?
方式1:基于Bucket 以及Object ACL:
Bucket 所有者将需要分享的文件ACL设置为“Public”模式,那么外部用户可以直接访问该文件的URL,而不需要通过身份认证以及鉴权操作。
图1:配置对象的ACL
方式2:使用签名URL方式:
Bucket所有者设置待分享文件的签名url信息,外部用户接收到该url后,在指定的时间内访问该文件;
图2:设置对象的签名URL
方式3:使用RAM policy方式:
若下游合作伙伴也是阿里云用户,那么可以基于sts(Security Token Service)方式进行授权访问,企业A管理员创建角色Role A,并且指定企业B账号进行扮演该角色Role A,通知企业A管理员设置RAM Policy(如下),并且将该RAM Policy赋予给Role A。企业B管理员可以使用根账号或者子账号扮演角色RoleA,然后使用Assumerole返回的临时token以及secret ID信息在指定的时间段内访问企业A的资源。
"Version": "1","Statement": [{"Effect": "Allow","Action": ["oss:GetObject","oss:ListObjects","oss:GetObjectAcl"],"Resource": ["acs:oss:*:*:test-resource"],"Condition": {}}]
}
方式4:使用Bucket Policy:
若下游合作伙伴也是阿里云用户,那么Bucket Owner可以直接基于该资源配置Bucket Policy策略,在策略中指定允许访问该资源的对象,以及允许的访问操作权限。
图3:设置Bucket Policy
Bucket policy 优劣势
针对用户访问资源的授权,我们列出了常见的4种不同的配置方式,那么这4种配置方式各有设么优缺点呢?
图5:4种配置方式的优劣势
Bucket Policy是什么?
默认情况下,所有阿里云OSS资源都是私有的,包括Bucket,对象。只有资源拥有者才能访问这些资源,另外资源的拥有者可以通过配置访问策略授权他人访问权限。
阿里云OSS提供的访问策略大致可分为基于资源的策略以及基于用户的策略两类。附加到资源(Bucket和对象)的访问策略称之为基于资源的策略。例如,Bucket Policy以及访问控制列表(ACL)就是基于资源的策略,另外也可以将访问策略附加到根账号下的子用户,这种策略称之为用户策略,例如:RAM Policy。
3.1 bucket policy简介
Bucket 的所有者可以通过设置Bucket Policy设置针对bucket以及bucket内对象的访问权限。
Bucket policy可以基于各种参数,例如“被授权账号/子用户,访问条件”等。附加到某个bucket的权限适用于该bucket内所有对象。设置Bucket Policy策略后,后续对该bucket的访问请求都将会受到Bucket Policy的限制。
3.2Bucket Policy配置过程
当前Bucket Policy只能在控制台进行配置图形化配置操作。选中某个对象,点击“授权”,或者点击“操作授权”,弹出如下配置对话框:
图6:添加“操作授权”
各个字段的含义如下表1所示:
字段 | 值 | 描述 | |
---|---|---|---|
授权资源 |
1. 若选中某个对象,直接点击“授权”,则此处会自动填充对应资源的路径; 2. 若点击“操作授权”,则需要输入对应的资源路径。 |
1.若资源为bucket时,“授权操作”作用于bucket以及bucket内所有子对象; 2. 若资源为对象或者目录,“授权操作”作用于该对象或者该目录下所有的子对象; |
|
授权用户 |
输入格式: 授权给账号:输入对应账号ID; 授权给子用户:输入对应子用户的ID |
Bucket Policy支持跨账号授权; 若授权给匿名用户,则勾选“所有用户”; |
|
授权操作 | 为了简化授权过程,oss针对常见的授权场景进行了简化操作,目前只提供“只读”、“读写”以及“完全控制”、“拒绝访问”操作。 |
1.“只读” 2.“读写”; 3. “完全控制” 4."拒绝访问" |
|
条件 | IP等于、IP不等于 | 当输入多个IP地址或者IP地址段时,用英文逗号分隔; |
3.3bucket Policy配置示例
相比于RAM policy,Bucket Policy支持在控制台直接进行图形化配置操作,并且Bucket 所有者直接可以进行访问授权。Bucket Policy常见的应用场景有如下几种:
- 向其他账号的子用户授权访问
- 向匿名用户授权于带特定IP条件限制的访问权限
1.向其他账号下的子用户授权
以下策略显示了bucket 所有者向其他账号下的子账号(UID:237683216696367672)授予只读权限的配置过程。
图7:向其他账号下的子账号授权
2.向匿名用户授权于带特定IP条件限制的访问权限
以下示例允许向匿名用户授予待IP限制的访问策略。例如,企业内部的机密文档,只允许在企业内部访问,不允许在其他区域访问。由于企业内部人员较多,针对每个人配合RAM policy,手工操作工作量非常大。因此基于bucket policy设置带IP限制的访问策略,是非常有效的。
图8:向匿名用户授权于带特定IP条件限制的访问权限
Tips:授予对bucket的匿名用户访问操作时需谨慎使用。若授予匿名访问权限不带条件限制,那么意味着世界上任何人都可以访问该资源.
【最佳实践】如何通过OSS的Bucket Policy设置访问授权?相关推荐
- 【视频点播最佳实践】使用OSS SDK上传视频到点播
摘要: 场景 点播上传SDK缺乏需要的语言版本(如C/C++.Go等)或相应的功能(如网络流上传.追加上传),可以直接使用OSS的SDK进行上传. 准备工作 确认已开通点播服务并完成了相关配置.确认已 ...
- Cypress 最佳实践
原文: https://docs.cypress.io/guides/references/best-practices.html 组织测试,登录,控制状态 错误:共用页面对象,使用你的UI登录,不截 ...
- jumbo 安装mysql,RAC 和 Oracle Clusterware 最佳实践和初学者指南「ID 1526083.1」
In this Document Applies to: Oracle Database - Enterprise Edition - Version 10.2.0.1 to 11.2.0.3 [Re ...
- RAC 和 Oracle Clusterware 最佳实践和初学者指南(平台无关部分) (文档 ID 1526083.1)
RAC 和 Oracle Clusterware 最佳实践和初学者指南(平台无关部分) (文档 ID 1526083.1) 转到底部 文档内容 用途 适用范围 详细信息 RAC 平台特 ...
- SaaS 模式云数据仓库 MaxCompute 数据安全最佳实践
简介:MaxCompute作为企业级SaaS模式云数据仓库,正在为客户业务及其数据提供持续的安全保护. MaxCompute 近期对产品的安全能力进行了全面升级,本文将针对数据误用.数据滥用.数据泄露 ...
- 【 CDN 最佳实践】CDN 命中率优化思路
CDN 在静态资源的加速场景中是将静态资源缓存在距离客户端较近的CDN 节点上,然后客户端访问该资源即可通过较短的链路直接从缓存中获取资源,而避免再通过较长的链路回源获取静态资源.因此 CDN的缓存命 ...
- 数禾云上数据湖最佳实践
简介: 数禾科技从成立伊始就组建了大数据团队并搭建了大数据平台.并在ECS上搭建了自己的Cloudera Hadoop集群.但随着公司互联网金融业务的快速扩张发展,大数据团队承担的责任也越来越重,实时 ...
- 【 CDN 最佳实践】CDN 命中率优化思路
摘要: CDN 在静态资源的加速场景中是将静态资源缓存在距离客户端较近的CDN 节点上,然后客户端访问该资源即可通过较短的链路直接从缓存中获取资源,而避免再通过较长的链路回源获取静态资源.因此 CDN ...
- PgSQL · 最佳实践 · 从 MaxCompute (ODPS) 迁移数据到 HybridDB
title: PgSQL · 最佳实践 · 从 ODPS 迁移数据到 HybridDB author: 曾文旌(义从) 背景 最近,不少用户在尝试使用 HybridDB 的过程中,询问我们如何把之前在 ...
最新文章
- (转) 技术揭秘:海康威视PASCAL VOC2012目标检测权威评测夺冠之道
- 算法提高 学霸的迷宫
- python中do的用法,如何使用docplex(python)对优化问题中的约束进行建模?
- ❀❀ selenium 学习网站 ★★★★★
- 一套不错的php,一套不错的PHP笔试题-附答案
- leetcode 1438. 绝对差不超过限制的最长连续子数组(滑动窗口+treemap)
- php图片居中在div,css如何实现图片在div中垂直居中
- Qt5及模块架构分析
- 轻量级Java EE企业应用实战(第4版) Struts 2+Spring 4+Hibernate整合开发 含CD光盘1
- dll注册,但是对DllRegisterServer的调用失败,错误代码0x80070716
- 香农编码Shannon
- CoolShell-第4题
- ET5.0 配置Excel
- 计算机网络机房需要气体灭火吗,机房排烟和机房消防要求有哪些
- “凸现”三围的健身运动法(图)
- win8下命令行解决Socket Error10048:Adress already in use问题
- 双硬盘多系统独立引导(2-Windows xp Win7)
- 淘宝/天猫API:seller_info-获得淘宝店铺详情
- pixhawk如何取消安全开关
- 关于用51单片机内部定时器实现时钟和闹钟功能的概述
热门文章
- 学python对学c++有帮助吗_2020,你该学习Python还是C++
- mysql中grade字段降序排列_mysql高级查询
- python数据笔记分析_利用 Python 进行数据分析学习笔记(一)
- html select 多选取值,下拉框多选实现 jquery-multiselect 并获取选中的值
- python下拉菜单_python-web自动化:下拉列表操作
- java. 算法分析,Java常用算法分析
- 反射式红外光电管 ITR8307
- 2021年春季学期-信号与系统-第二次作业参考答案-第三小题
- 2021春季学期-创新设计与实践-Lesson6
- 人工智能产业政策与行业应用场景-备课资料