• [技术干货] RDS的权限管理
    权限管理如果您需要对华为云上购买的RDS资源,为企业中的员工设置不同的访问权限,为达到不同员工之间的权限隔离,您可以使用统一身份认证服务(Identity and Access Management,简称IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全的控制华为云资源的访问。通过IAM,您可以在华为云账号中给员工创建IAM用户,并授权控制他们对华为云资源的访问范围。例如您的员工中有负责软件开发的人员,您希望开发人员拥有RDS的使用权限,但是不希望他们拥有删除RDS等高危操作的权限,那么您可以使用IAM为开发人员创建用户,通过授予仅能使用RDS,但是不允许删除RDS的权限,控制他们对RDS资源的使用范围。如果华为云账号已经能满足您的要求,不需要创建独立的IAM用户进行权限管理,您可以跳过本章节,不影响您使用RDS服务的其它功能。IAM是华为云提供权限管理的基础服务,无需付费即可使用,您只需要为您账号中的资源进行付费。关于IAM的详细介绍,请参见IAM产品介绍。RDS权限默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。RDS部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华北-北京1)对应的项目(cn-north-1)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问RDS时,需要先切换至授权区域。根据授权精程度分为角色和策略。角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对RDS服务,管理员能够控制IAM用户仅能对某一类数据库资源进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,RDS支持的API授权项请参见策略及授权项说明 。如表1所示,包括了RDS的所有系统权限。表1 RDS系统策略策略名称/系统角色描述类别依赖关系RDS FullAccess关系型数据库服务所有权限。系统策略无。RDS ReadOnlyAccess关系型数据库服务资源只读权限。系统策略无。RDS ManageAccess关系型数据库服务除删除操作外的DBA权限。系统策略无。RDS Administrator关系型数据库服务管理员。系统角色依赖Tenant Guest和Server Administrator角色,在同项目中勾选依赖的角色。表2列出了RDS常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。表2 常用操作与系统权限的关系操作RDS FullAccessRDS ReadOnlyAccessRDS ManageAccessRDS Administrator创建RDS实例√x√√删除RDS实例√xx√查询RDS实例列表√√√√表3 常用操作与对应授权项操作名称授权项备注创建数据库实例rds:instance:createrds:param:list界面选择VPC、子网、安全组需要配置:vpc:vpcs:listvpc:vpcs:getvpc:subnets:getvpc:securityGroups:get创建加密实例需要在项目上配置KMS Administrator权限。变更数据库实例的规格rds:instance:modifySpec无。扩容数据库实例的磁盘空间rds:instance:extendSpace无。单机转主备实例rds:instance:singleToHa若原单实例为加密实例,需要在项目上配置KMS Administrator权限。重启数据库实例rds:instance:restart无。删除数据库实例rds:instance:delete无查询数据库实例列表rds:instance:list无。实例详情rds:instance:list实例详情界面展示VPC、子网、安全组,需要对应配置vpc:*:get和vpc:*:list。修改数据库实例密码rds:password:update无。修改端口rds:instance:modifyPort无。修改内网IPrds:instance:modifyIp界面查询剩余ip列表需要:vpc:subnets:getvpc:ports:get修改实例名称rds:instance:modify无。修改运维时间窗rds:instance:modify无。手动主备倒换rds:instance:switchover无。修改同步模式rds:instance:modifySynchronizeModel无。切换策略rds:instance:modifyStrategy无。修改实例安全组rds:instance:modifySecurityGroup无。绑定/解绑公网IPrds:instance:modifyPublicAccess界面列出公网ip需要:vpc:publicIps:getvpc:publicIps:list设置回收站策略rds:instance:setRecycleBin无。查询回收站rds:instance:list无。开启、关闭SSLrds:instance:modifySSL无。开启、关闭事件定时器rds:instance:modifyEvent无。读写分离操作rds:instance:modifyProxy无。申请内网域名rds:instance:createDns无。备机可用区迁移rds:instance:create备机迁移涉及租户子网下的IP操作,若为加密实例,需要在项目上配置KMS Administrator权限。表级时间点恢复rds:instance:tableRestore无。透明数据加密(Transparent Data Encryption,TDE)权限rds:instance:tde仅用于SQL Server数据库实例。修改主机权限rds:instance:modifyHost无。查询对应账号下的主机rds:instance:list无。获取参数模板列表rds:param:list无。创建参数模板rds:param:create无。修改参数模板参数rds:param:modify无。应用参数模板rds:param:apply无。修改指定实例的参数rds:param:modify无。获取指定实例的参数模板rds:param:list无。获取指定参数模板的参数rds:param:list无。删除参数模板rds:param:delete无。重置参数模板rds:param:reset无。对比参数模板rds:param:list无。保存参数模板rds:param:save无。查询参数模板类型rds:param:list无。设置自动备份策略rds:instance:modifyBackupPolicy无。查询自动备份策略rds:instance:list无。创建手动备份rds:backup:create无。获取备份列表rds:backup:list无。获取备份下载链接rds:backup:download无。删除手动备份rds:backup:delete无。复制备份rds:backup:create无。查询可恢复时间段rds:instance:list无。恢复到新实例rds:instance:create界面选择VPC、子网、安全组需要配置:vpc:vpcs:listvpc:vpcs:getvpc:subnets:getvpc:securityGroups:get恢复到已有或当前实例rds:instance:restoreInPlace无。获取实例binlog清理策略rds:binlog:get无。合并binlog文件rds:binlog:merge无。下载binlog文件rds:binlog:download无。删除binlog文件rds:binlog:delete无。设置binlog清理策略rds:binlog:setPolicy无。获取数据库备份文件列表rds:backup:list无。获取历史数据库列表rds:backup:list无。查询数据库错误日志rds:log:list无。查询数据库慢日志rds:log:list无。下载数据库错误日志rds:log:download无下载数据库慢日志rds:log:download无开启、关闭审计日志rds:auditlog:operate无。获取审计日志列表rds:auditlog:list无。查询审计日志策略rds:auditlog:list无。生成审计日志下载链接rds:auditlog:download无。获取主备切换日志rds:log:list无。创建数据库rds:database:create无。查询数据库列表rds:database:list无。查询指定用户的已授权数据库rds:database:list无。删除数据库rds:database:drop无。创建数据库帐户rds:databaseUser:create无。查询数据库帐户列表rds:databaseUser:list无。查询指定数据库的已授权帐户rds:databaseUser:list无。删除数据库帐户rds:databaseUser:drop无。授权数据库帐户rds:databasePrivilege:grant无。解除数据库帐户权限rds:databasePrivilege:revoke无。任务中心列表rds:task:list无。删除任务中心任务rds:task:delete无。包周期下单bss:order:update无。用户标签操作rds:instance:modify无
  • [问题求助] IAM账户如何登陆OceanConnect平台?
    本人通过个人账户新创建了个IAM账户,现想通过IAM账户登陆华为云平台上物联网平台的开发中,但是在跳转登陆过程中失败(IAM账户已经加入admin分组),一直无法进入OC平台,请问什么原因,如何解决?
  • [公告] 华为智慧园区设备伙伴认证流程介绍
    智慧园区设备终端伙伴认证介绍1         概述华为智慧园区解决方案致力于为客户打造一个数字化、智慧化的园区,方案包含应用、平台、联接、端四层架构,其中“端”侧指应用在园区场景的各种弱电子系统,包括SA、FA、CA、OA、BA等。智慧园区解决方案南向伙伴即指其产品已与华为沃土数字平台南向接口完成预集成,并通过华为验证要求的业界厂家。本文档即用于介绍如何成为华为智慧园区南向终端伙伴,以及相应的操作指导。2        认证说明 认证流程整个认证流程可分为4个阶段,即:注:1.         华为SPC平台登录地址: http://partner.huawei.com/2.         华为智慧园区合作伙伴自助认证平台登录地址:https://openlab.huawei.com,平台登录需使用SPC注册账号。3.         伙伴在一个方案中可包含多个产品设备,认证完后如有新产品或换代产品,可再次发起测试并发布。4.         单产品测试通过后即会提供华为智慧园区沃土数字平台互通测试报告(后续会增加单产品技术认证证书)。5.         伙伴与华为的园区联合方案认证通过后,该方案即在华为Market Place上市发布,供一线销售人员使用,同时会颁发智慧园区“沃土数字平台南向终端”伙伴证书。具体操作步骤可参考附件1“智慧园区南向终端伙伴SPC系统操作指导”&附件2“华为智慧园区合作伙伴认证测试指导书V0.9”。3. 认证证书认证完成后,将会给伙伴颁发两类证书,一类为伙伴身份证书,证书样式见下:第二类为单产品的技术认证证书(暂只提供测试报告) 4         伙伴权益成为华为智慧园区沃土数字平台伙伴后,伙伴将享受到如下权益:
  • [管理与部署] 【云小课】应用平台第2课 超过99%的用户都在用的云服务!你不能不知道!
    从我们登录华为云的那一刻起,就开始了与统一身份认证服务(Identity and Access Management,简称IAM)的密切接触,为啥这么说?因为连华为云的登录页面都是IAM的程序猿小哥哥做的!今天这一课我们就来聊一聊这个功能强大又操作便捷的云服务--IAM。谁能用IAM?是你,就是屏幕对面的你!权限管理--如果将你账号里的各种资源类比成一块大水果蛋糕,而你想把草莓味的只分给小A,又想把抹茶味的分给小B和小C一起吃,这就是一个典型的权限管理问题,IAM会把你的权限管理得明明白白,小A的蛋糕绝不让小B和小C看到。账号安全管理--当你在华为云上购买的资源越来越多,一定会越来越担心“盗号风险”,连家里防盗门锁都升级了,华为云的账号安全怎能不升级?了解IAM的账号安全管理,给你的资源加上多重保险,妈妈再也不用担心我的账号安全!委托--如果将你账号里的资源看成一个豪宅,而你想找一个专业的管家帮你打理豪宅内外的琐事,这就是一个典型的委托管理问题,来找IAM,帮你把你的各类委托分配的清清楚楚,如果你对你找的管家不满意,随时可以“解雇”他,取消委托关系。身份提供商--什么?一个富二代刚刚继承了家族巨额财产还有多家上市企业?霸道总裁不想为公司员工逐一创建IAM用户又点名要使用华为云?安排!身份提供商让你的员工完美单点登录,再也不用辛苦记住无数个账号密码!划重点了,如此强大怎么收费?免费!!!就是这么任性!权限管理--他只能做你同意的事使用IAM,你可以将账号内不同的资源按需分配给你创建的IAM用户,IAM用户使用自己独立的用户名和密码登录,向密码共享说NO!实现安全而精细的权限管理,同时满足企业对权限最小化的安全管控要求。例如图1:控制用户Charlie能管理项目B的VPC,而让用户James只能查看项目B中VPC的数据。了解更多请猛戳→给IAM用户授权。当前已有大量云服务支持通过IAM进行资源管理,同时在IAM内置多个云服务系统权限,如果系统权限不满足您的要求您还可以创建自定义策略。为了您的权限管理更加便捷,IAM还在不断探究新方向,总之,权限管理这一块,IAM为您承包!图1 权限管理模型账号安全管理--全力保障你的账号安全当您开始使用华为云的一刻起,保障您的账号安全就是我们首要的任务!IAM为您提供多种账号安全保护功能,您可以根据自己的需求进行开启或关闭:设置登录验证策略和密码策略,从源头保护您的账号。开启敏感操作保护,您及子用户在进行敏感操作时都需要进行身份验证。设置访问控制策略,限制用户只能从特定IP地址区间、网段及VPC Endpoint访问华为云。委托--让其他账号或者云服务管理你的资源账号委托您可以使用IAM提供的委托功能,将自己账号中的资源操作权限委托给更专业、高效的其他华为云账号,被委托的账号可以根据权限代替您进行资源运维工作。当委托关系发生变化时,您可以随时修改或撤消对代运维公司的授权。下图中账号A即为委托方,账号B为被委托方。了解更多请猛戳→委托某个云账号管理您账号下的资源云服务委托由于华为云各服务之间存在业务交互关系,一些云服务需要与其他云服务协同工作,需要您创建云服务委托,将操作权限委托给该服务,让该服务以您的身份使用其他云服务,代替您进行一些资源运维工作。了解更多请猛戳→委托某个云服务管理您账号下的资源例如:在使用Elasticsearch服务时,Elasticsearch服务请求获取您其他云服务和资源的权限,创建委托并授权后,在发生故障转移时,Elasticsearch可以使用这个委托将您的弹性IP绑定到主Elasticsearch实例,帮助您进行资源运维。身份提供商--实现企业员工一键登录上云当您希望本企业员工可以使用企业内部的认证系统登录华为云,而不需要在华为云中重新创建用户时,您可以使用IAM的身份提供商功能,建立您所在企业与华为云的信任关系,通过联合认证使员工使用企业已有账号直接登录华为云,实现单点登录。了解更多请猛戳→身份提供商身份提供商这个词可能您不太熟悉,但您的生活中一定在经常使用这个功能,举个简单的例子:小明今天第一次在“饿得很”外卖平台点外卖,觉得注册账号很麻烦,看到界面上有个按钮“使用某宝账号登录”,点击之后按照引导在某宝授权,就直接登录了“饿得很”外卖,省去了再填一遍个人信息的麻烦。这就是一个典型的联邦身份认证的场景,其中某宝是“身份提供商 IdP”,饿得很外卖平台是“服务提供商 SP”,SP和IdP通过用户授权建立信任关系实现用户单点登录,但SP不获取、储存用户信息,只获取IdP验证用户身份的结果。欢迎围观更多IAM信息IAM控制台IAM产品介绍IAM用户指南IAMAPI参考今天的小课初步介绍了IAM的基本功能,下一期,带你玩转IAM的授权功能!一起期待吧!
  • [内容拦截申诉] 论坛 - 遇到会话超时后,重新走登录认证流程后,紧接着的请求还是会报会话超时错误
    发文的版块名:视频服务 - 融合视频发文的标题名:遇到会话超时后,重新走登录认证流程后,紧接着的请求还是会报会话超时错误帖子内容链接:https://bbs.huaweicloud.com/forum/thread-48041-1-1.html
  • [融合视频] 遇到会话超时后,重新走登录认证流程后,紧接着的请求还是会报会话超时错误
    问题描述:ipad 长时间切后台后再切前台,会出现session过期问题,客户端收到对应的错误码(125023001)会重新走后台登录流程,认证成功后,会调用SetGlobalFilterCond、ModifyDeviceInfo和QueryCustomizeConfig,这是三个接口是异步调用的 ,现在这三个接口低概率出现平台再次返回"user session not found or timeout."(125023001)问题,客户端收到回调后重新走认证逻辑,然后又会出现相同的问题,从日志和现象上看只要出现一次就会陷入无限循环。 当前分析结论昨天拉上服务器平台的兄弟,结合客户端日志分析了一下问题1.在认证成功后,客户端请求的三个接口,平台验证session信息是有效的,平台兄弟是这么解释的:“如果session无效,session信息前会带+号”,然后推测头信息里可能没携带“csrfToken”,然后我们在客户端的日志里发现了认证成功后调用了设置头信息的方法。2.回过头再看平台日志,平台兄弟说SetGlobalFilterCond、ModifyDeviceInfo是失败的,QueryCustomizeConfig是成功的,因为前两个接口response body大小都是80个字节大小,QueryCustomizeConfig非常大,肯定是个正常的。3.再看客户端逻辑,客户端收到过期的接口是,SetGlobalFilterCond,收到超时后会调用[MsaAccess cancelPreviousRequests];方法,所以客户端没打印ModifyDeviceInfo和QueryCustomizeConfig的响应日志。 总结一下,如果是csrfToken导致的问题,客户端设置了csrfToken,前面两个接口请求sdk还没有携带csrfToken,第三次请求才携带(或者csrfToken携带的是错误的?)。下方图片即为认证成功后设置新csrfToken和调用其他3个接口的代码。 当时复现该问题的时候是连的生产环境,详细日志没抓到,已经通知一线同事连验收环境进行测试,但是概率较低,目前为止一共出现过2次,现在客户端走的是https协议,无法在客户端进行抓包,日志中也没有打印头信息内容,所以定位问题难度较高。
  • [技术干货] 【知识点】园区第三方应用单点登录集成(IAM)
    https://mp.weixin.qq.com/s?__biz=MzA5MjM5OTYzNA==&mid=2247485288&idx=1&sn=77d3e680bb0b42a27f49b7a8b570579a&chksm=906cf615a71b7f0324f29a316a574cbbd9352057c35cc311ce4cb6573d8b056942351293524f&token=109181865&lang=zh_CN#rd
  • [行业前沿] 华为云统一身份认证服务IAM于2019年5月18日00:00-04:00(北京时间)升级通知
    尊敬的华为云客户:华为云计划于2019/05/18 00:00-04:00(北京时间)进行统一身份认证服务IAM升级,升级详情如下:升级内容:华为云统一身份认证服务IAM升级;升级影响:升级过程中IAM创建、修改及删除等接口会出现短暂不可用;如您需要通过IAM控制台或API调用进行用户身份认证相关管理操作(创建修改或删除用户、授权、修改账号设置等),以及对云服务执行创建或删除资源等操作,请避开以上升级时间进行。若在以上升级时间内出现上述操作失败,请您间隔10分钟后再进行重试。给您带来的不便,敬请谅解。感谢您对华为云的支持!
  • [技术干货] 华为云IAM服务域名解析IP网段变更通知
    尊敬的华为云客户:华为云计划从2019/05/09开始针对IAM服务API接口域名的解析IP地址进行变更。本次变更对以下用户不受影响:1、未通过API接口直接调用华为云IAM服务的用户。2、正常通过公网DNS解析华为云域名来访问IAM服务API,并且未配置白名单或防火墙策略限制的用户。本次变更对以下用户有影响,请做相应排查及调整:1、直接使用IP或在所使用的机器中配置了域名与IP的映射来访问IAM服务API的用户,请修改为使用公网DNS域名解析方式访问。2、所使用的业务系统中,如果有配置白名单或防火墙策略限制不能访问变更后IP网段的用户,请在信任域中添加如下IP网段。具体华为云域名解析IP网段变更详情如下:解析IP网段华为云域名区域名称43.254.0.0/2449.4.112.0/24139.159.208.0/24iam.myhuaweicloud.com(推荐)iam.myhwclouds.com全局43.254.0.0/24iam.cn-north-1.myhuaweicloud.com(推荐)iam.cn-north-1.myhwclouds.com华北-北京一159.138.16.0/24iam.ap-southeast-1.myhuaweicloud.com(推荐)iam.ap-southeast-1.myhwclouds.com香港218.61.208.0/24iam.cn-northeast-1.myhuaweicloud.com(推荐)iam.cn-northeast-1.myhwclouds.com东北-大连如您有任何问题,可随时通过工单或者服务热线(950808)与我们联系。感谢您对华为云的支持!https://www.huaweicloud.com/notice/2018/20190505163251040.html
  • [技术干货] 使用CSE SDK如何在edge service拦截用户请求做认证鉴权
    认证鉴权的时候,通常会获取http header,对会话进行认证。 CSE SDK一般有两种方式拦截:* 通过Handler : 这种方式的好处是可以获取微服务元数据信息。对于需要做访问控制、获取调用的方法名称等,非常简单。   例子:https://github.com/huaweicse/cse-java-chassis-samples/blob/master/HouseAppWithSpringBoot2/edge-service/src/main/java/com/huawei/cse/houseapp/edge/ApiDispatcher.java  + AuthFilter.java* 通过HttpServerFilter: 这种机制的好处是在Http层拦截请求,可以操作HTTP的header等。   例子:https://github.com/apache/servicecomb-samples/blob/master/porter_lightweight/gateway-service/src/main/java/org/apache/servicecomb/samples/porter/gateway/ApiDispatcher.java  + AuthHandler.java
  • [大咖交流] idou老师教你学istio1:如何为服务提供安全防护能力
    之前,已为大家介绍过 Istio 第一主打功能---连接服务。凡是产生连接关系,就必定带来安全问题,人类社会如此,服务网格世界,亦是如此。今天,我们就来谈谈Istio第二主打功能---保护服务。那么,便引出3个问题:Istio 凭什么保护服务?Istio 具体如何保护服务?如何告诉 Istio 发挥保护能力?Istio凭什么保护服务?将单体应用程序分解为一个个服务,为大型软件系统的开发和维护带来了诸多好处,比如更好的灵活性、可伸缩性和可复用性。但这也带来了一些安全问题:为了抵御中间人攻击,需要对流量进行加密为了提供灵活的服务访问控制,需要 mTLS(双向的安全传输层协议)和细粒度的访问策略要审计谁在什么时候做了什么,需要审计工具Istio 尝试提供全面的安全解决方案来解决这3个问题。如上图所示, Istio 安全的三大目标是:默认安全(Security by default):应用程序代码和基础结构,无需更改。深度防御(Defense in depth):与现有安全系统集成,提供多层防御。零信任网络(Zero-trust network):在不受信任的网络上,构建安全解决方案。为了实现这3个目标,Istio 安全功能提供了4大守护系统:强大的身份(Identity)系统健壮的策略(Policy)系统认证,授权和审计(AAA:Authentication,Authorization,Accounting)系统,用于保护服务和数据透明的 TLS 加密(Encryption)系统。就保护对象而言,Istio 安全系统可以抵御来自内部或外部的威胁,这些威胁主要针对服务网格内的端点(Endpoints),通信(Communication),平台(Platform)和数据(Data)。Istio具体如何保护服务?在安全方面,Istio 具备3个远大的目标,配备了4大守护系统,那么它到底是通过怎样的架构实现这个目标的呢,又通过什么样的安全基础设施,和 kubernetes 配合呢?1、Istio 安全架构如上图,与 Istio 的4大守护系统相对应,Istio 中涉及安全的组件有:Pilot :将授权策略和安全命名信息分发给代理Proxy :实现客户端和服务端之间的安全通信Citadel :用于密钥和证书管理Mixer :管理授权和审计由此可见,Pilot 不仅负责流量规则和策略的分发,还负责安全相关策略的下发,有点像皇上的贴身太监,负责宣读圣旨;Proxy 有点像各州属的州官,负责奉天承运;Citadel 有点像玉玺和虎符,负责鉴真去假;Mixer 有点像三省六部,负责授权审计。2、两个安全基本概念2.1)Identity身份(Identity)是几乎所有安全基础架构的基本概念。在服务和服务的通信开始前,双方必须用其身份信息交换凭证,以达到相互认证的目的。在客户端,根据安全命名(secure naming)信息,检查服务端的标识,以查看它是否是该服务的授权运行程序;在服务端,服务端可以根据授权策略(authorization policies)信息,确定客户端可以访问哪些数据,审计其在什么时间访问了什么,拒绝未授权客户端的访问。在 Istio 身份模型中,Istio 使用一流的服务标识来确定服务的身份。这为表示人类用户,单个服务或一组服务提供了极大的灵活性和粒度。在没有此类身份的平台上,Istio 可以使用可以对服务实例进行分组的其他身份,例如服务名称。不同平台上的 Istio 服务标识:Kubernetes: Kubernetes 服务帐户GKE/GCE: 可以使用 GCP 服务帐户AWS: AWS IAM 用户/角色 帐户On-premises (non-Kubernetes): 用户帐户,自定义服务帐户,服务名称,istio 服务帐户或 GCP 服务帐户。做个类比,京东和天猫都有自己的一套非常成熟的服务账户系统,淘宝只需要复用天猫的账户系统即可,无需重新开发一套,这样我们就可以用天猫的账号,直接登录淘宝。而 Istio 也更倾向于复用业界一流的服务账户系统,如 Kubernetes 和 AWS 的,但也可以自定义服务账户,并按需复用 Kubernetes 的账户系统。2.2)PKIIstio PKI(Public Key Infrastructure)建立在 Istio Citadel 之上,可为每个工作负载提供安全且强大的工作负载标识。Istio 使用 X.509 证书来携带 SPIFFE 格式的身份信息。PKI 还可以大规模自动化地进行密钥和证书轮换。Istio 支持在 Kubernetes pod 和本地计算机上运行的服务。目前,Istio 为每个方案使用不同的证书密钥配置机制,下面试举例 Kubernetes 方案的配置过程:Citadel 监视 Kubernetes apiserver,为每个现有和新的服务帐户创建 SPIFFE 证书和密钥对。 Citadel 将证书和密钥对存储为 Kubernetes secrets。创建 pod 时,Kubernetes 会根据其服务帐户通过 Kubernetes secret volume 将证书和密钥对挂载到 pod。Citadel 监视每个证书的生命周期,并通过重写 Kubernetes secret 自动轮换证书。Pilot 生成安全命名信息,该信息定义了哪些服务帐户可以运行某个服务。接着Pilot 将安全命名信息传递给 Envoy。如何告诉Istio发挥保护能力?如上一章节所言,Istio 基于控制面组件,引入了一流的服务账户系统,结合强大的PKI,实现了对服务网格的安全守护。同时,Istio 也开放了接口,让我们可以进行精细化的配置,全方位满足我们对服务的安全需求。服务安全,总是离不开两个具体过程:认证(Authentication)和鉴权(Authorization)。Istio 通过 Policy 和 MeshPolicy 文件,实现对认证相关功能的定义;通过RbacConfig、ServiceRole 和 ServiceRoleBinding 文件,实现对鉴权相关功能的启用和定义。让我们举个几个通俗的例子来区分认证和鉴权:进火车站需要提供证件和火车票,身份证可以证明你就是你,这是认证;火车票可以证明你有权上那趟火车,这是授权。又例如,你要访问自己淘宝的购物车,需要先登录,这是认证。你要访问朋友的购物车,就需要他的允许,这是授权。再例如,有经验的朋友能发现浏览器经常会面对两个错误码:401和403。通常而言,401就是未登录的意思,需要认证;403就是禁止访问的意思,需要授权。1、认证Istio 提供两种类型的身份认证:A)传输身份认证,也称为服务到服务身份认证:对直连客户端进行验证。Istio 提供双向TLS作为传输身份认证的全栈解决方案。我们可以轻松启用此功能,而无需更改服务代码。这个解决方案:为每个服务提供强大的身份认定,以实现跨群集和跨云的互操作性。保护服务到服务通信和最终用户到服务通信。提供密钥管理系统,以自动执行密钥和证书生成,分发和轮换。B)来源身份认证,也称为终端用户身份认证:对来自终端用户或设备的原始客户端请求进行验证。Istio 通过 JSON Web Token(JWT)、Auth0、Firebase Auth、Google Auth 和自定义身份认证来简化开发者的工作,使之轻松实现请求级别的身份认证。在这两种情况下,Istio 都通过自定义 Kubernetes API 将身份认证策略存储在 Istio 配置存储(Istio config store)中。Pilot 会在适当的时候进行同步,为每个Proxy更新其最新状态以及密钥。此外,Istio 支持在许可模式下进行身份认证,以帮助我们理解策略变更前后,服务的安全状态是如何变化的。1.1)认证架构我们可以使用身份认证策略,为 Istio 网格中接收请求的服务指定身份认证要求。我们使用 .yaml 文件来配置策略,策略将保存在 Istio 配置存储中。在任何策略变更后,Pilot 会将新策略转换为适当的配置,下发给Envoy,告知其如何执行所需的身份认证机制。Pilot 可以获取公钥并将其附加到 JWT 进行配置验证。或者,Pilot 提供 Istio 系统管理的密钥和证书的路径,并将它们安装到负载 Pod 中,以进行双向 TLS。本文多次提到双向TLS认证,让我们理解一下其在 Istio 里的实现。Istio 通过客户端和服务端各自配备的 Envoy 进行通信,也就是说,客户端和服务端的流量,是被各自的 Envoy 接管了的。对于客户端调用服务端,遵循的步骤是:Istio 将出站流量从客户端重新路由到客户端的本地 Envoy。客户端 Envoy 与服务端 Envoy 开始双向 TLS 握手。在握手期间,客户端 Envoy 还执行安全命名检查,以验证服务证书中提供的服务帐户是否有权运行目标服务。客户端 Envoy 和服务端 Envoy 建立了一个双向的 TLS 连接,Istio 将流量从客户端 Envoy 转发到服务端 Envoy。授权后,服务端 Envoy 通过本地 TCP 连接将流量转发到服务端的服务。1.2)认证策略配置和其他的 Istio 配置一样,可以用 .yaml 文件的形式来编写认证策略,然后使用 Istioctl 二进制工具进行部署。如下图的配置,通过配置 Policy 文件,对 reviews 服务进行了传输身份认证的配置,要求其必须使用双向TLS做认证。apiVersion: "authentication.Istio.io/v1alpha1" kind: "Policy" metadata:   name: "reviews" spec:   targets:   - name: reviews       peers:     - mtls: {}2、授权Istio 的授权功能,也称为基于角色的访问控制(RBAC),为 Istio 服务网格中的服务提供命名空间级别,服务级别和方法级别的访问控制。它的特点是:基于角色的语义,简单易用。包含服务到服务和终端用户到服务两种授权模式。通过自定义属性灵活定制授权策略,例如条件,角色和角色绑定。高性能,因为 Istio 授权功能是在 Envoy 里执行的。2.1)授权架构上图显示了基本的 Istio 授权架构。和认证的生效过程一样,运维人员使用.yaml文件指定 Istio 授权策略。部署后,Istio 将策略保存在 Istio Config Store 中。Pilot 会一直监视 Istio 授权策略的变更,如果发现任何更改,它将获取更新的授权策略,并将 Istio 授权策略分发给与服务实例位于同一 pod 内的 Envoy 代理。每个 Envoy 代理都运行一个授权引擎,该引擎在运行时授权请求。当请求到达代理时,授权引擎根据当前授权策略评估请求上下文,并返回授权结果ALLOW或DENY。2.2)授权策略配置我们可以使用 RbacConfig 启用授权策略,并使用 ServiceRole 和ServiceRoleBinding 配置授权策略。 RbacConfig 是一个网格维度的单例,其固定名称值为 default,也就是说我们只能在网格中配置一个 RbacConfig 实例。与其他 Istio 配置对象一样,RbacConfig 被定义为 Kubernetes CustomResourceDefinition (CRD) 对象。在 RbacConfig 中,运算符可以指定 mode 值,它可以是:OFF:禁用 Istio 授权。ON:为网格中的所有服务启用了 Istio 授权。ON_WITH_INCLUSION:仅对包含字段中指定的服务和命名空间启用 Istio 授权。ON_WITH_EXCLUSION:除了排除字段中指定的服务和命名空间外,网格中的所有服务都启用 Istio 授权。在以下示例中,为 default 命名空间启用了 Istio 授权:apiVersion: "rbac.Istio.io/v1alpha1" kind: RbacConfig metadata:   name: default     namespace: Istio-system spec:   mode: 'ON_WITH_INCLUSION'     inclusion:       namespaces: ["default"]针对服务和命名空间启用授权后,我们还需要配置具体的授权策略,这通过配置ServiceRole 和 ServiceRoleBinding 实现。与其他 Istio 配置对象一样,它们同样被定义为CRD对象。ServiceRole 定义了一组访问服务的权限。ServiceRoleBinding 向特定对象授予 ServiceRole,例如用户,组或服务。ServiceRole 和 ServiceRoleBinding 组合规定了: 允许谁在哪些条件下做什么,具体而言:谁指的是 ServiceRoleBinding 中的 subject 部分。做什么指的是 ServiceRole 中的 rule 部分。哪些条件指的是我们可以在 ServiceRole 或 ServiceRoleBinding 中使用 Istio Attributes 指定的 condition 部分。让我们再举一个简单的例子,如下图,ServiceRole 和 ServiceRoleBinding 的配置规定:将所有用户(user=“*”)绑定为(products-viewer)角色,这个角色可以对products 这个服务发起 GET 或 HEAD 请求,但是其限制条件是请求头必须包含version,且值为v1或v2。apiVersion: "rbac.Istio.io/v1alpha1" kind: ServiceRole metadata:   name: products-viewer     namespace: default spec:   rules:     - services: ["products"] methods: ["GET", "HEAD"]     constraints:         - key: request.headers[version]       values: ["v1", "v2"] --- apiVersion: "rbac.Istio.io/v1alpha1" kind: ServiceRoleBinding metadata:   name:binding-products-allusers     namespace:default spec:   subjects:     - user: "*"     roleRef:     kind: ServiceRole         name: "products-viewer"至此,我们做个简单的总结:单体应用程序拆分成成千上百个服务后,带来了安全问题,Istio 尝试在由服务组成的服务网格里,加入了一套全栈解决方案。这套方案里,Istio 默默处理了大部分安全基础设施,但也暴露了认证和授权两个功能让用户进行自定义配置。我们通过 Policy、MeshPolicy 以及 RbacConfig、ServiceRole、ServiceRoleBinding 就可以完成对认证和授权环节所有功能的配置,而不需要侵入地改动任何服务的代码。
  • [技术干货] 方案(设备、应用)认证【转】
    (转自https://developer.huawei.com/ict/forum/thread-49421.html)方案(设备、应用)认证FAQ1.   认证条件、认证意义、认证费用? 1.1条件、费用要想知道为啥会有方案认证这个环节就不得不提MAR、SPP流程了,两者都是华为的合作伙伴管理流程,包含了合作伙伴的合作、开发、测试认证、商业激励和营销推广。认真看会发现在MAR流程里完成了方案开发后就是方案的测试认证环节。所以重点来了,要做华为认证的条件很简单,加入华为合作方案完成开发,最主要的是认证流程、测试流程全免费。 1.2意义认证完成后会收到“金灿灿”的设备或者应用的认证证书,而且后续Marketplace 、社区案例中心都得做过认证才可以哦,测试认证不仅仅是产品实力的体现,更是对客户负责的体现。  2.   OceanConnect平台认证的分类2.1认证的分类、选择、关系从合作伙伴的角度来讲分两类:l  设备类认证(Compatible)l  应用系统类认证(Enabled)从华为解决方案分类来讲分四类:l  NB-IoT设备认证(Compatible)l  AgentLite设备认证(Compatible)l  车联网OBD设备认证(Compatible)l  SmartHome终端认证(Compatible)所有认证均可独立认证、按需选择对应测试认证即可:应用认证通用设备认证NB、AgentLite、OBD、SmartHome 3.   认证流程3.1应用认证流程a)下载并参考测试认证中的《华为IoT应用认证指导(Enabled)》,按要求完成测试用例,相关测试截图,完成测试报告模板的修改。b) 将测试用例、截图、报告反馈给开发阶段对接的华为技术支持工程师。c) 通过后等待证书下发,未通过重复ab两步。 3.2 设备认证流程a) NB类型的设备在开发阶段会有接入规范,测试认证前请再次确认设备功能符合华为NB-IoT终端接入规范。b) 下载并参考测试认证中的《华为XXX认证指导(Compatible)》,按要求完成测试用例,相关测试截图,完成测试报告模板的修改。b) 将测试用例、截图、报告反馈给开发阶段对接的华为技术支持工程师。c) 测试报告未通过请重复abc两步,通过后华为开发相关人员会把开发结果填入系统,登录MAR账号确认开发结果,系统流程会自动转至测试认证阶段。e) 根据提示联系测试工程师,预约openlab并到场测试,openlab内借助环境和工具完成端到端测试。   3.3 注意事项       a.在填测试报告时,发现有些补充内容不清楚,举个栗子:在应用认证指导压缩包内,测试报告中有一个实验室组网,不清楚深圳F5Openlab、上海Openlab组网关系,可以忽略,在原图保持未知部分不动,把已知部分文字和图片换掉即可。一句话概括,不清楚的部分,把已知部分替换,未知部分保持不变。认证的华为同事会帮忙检查处理。       b.在填写测试用例时,发现有些测试用例没有条件测试,举个栗子:在应用NB设备认证指导压缩包内,有认证测试用例表格中有张场景用例的sheet,其中编号为NB_认证_终端入网_002的测试用例,测试步骤里提到打开vEPC跟踪某一IMSI信令,这中没有条件登录后台的只需关注测试结果即可。一句话概括:测试用例不具备测试条件的只需关注结果即可,测试用例优先级为option的可测可不测。       c. 有些不能测试的或者未做此功能的,请不要删除用例,在备注中进行相关说明。       d.  测试报告填写易遗漏点:页眉中要填写公司信息,组网图要提供,版本信息要填写所用到的硬件和软件信息       e.  测试结果截图,数据上报中一定要有电量batteryLevel(0~100%)、信号强度RSRP(-140~-44)=AT+NUESTATS命令返回的Signal power/10 、信号覆盖等级ECL(0~2)、信噪比SNR(-20~30)=AT+NUESTATS命令返回的SNR字段/10
  • [技术干货] not allowed multi path for com.huawei.iam.cache.controller.AgencyController:getAgency
    java.lang.Error: generate operation swagger failed, com.huawei.iam.cache.controller.AgencyController:getAgencygenerate operation swagger failed, com.huawei.iam.cache.controller.AgencyController:getAgencyjava.lang.Error: not allowed multi path for com.huawei.iam.cache.controller.AgencyController:getAgency说明: CSE不允许一个接口定义多个path,比如:@RequestMapping(value = {"/v3-ext/agencies", "/v3-huawei/agencies", "/v3.0/OS-AGENCY/agencies"},                 method = RequestMethod.GET, produces = "application/json;charset=UTF-8") public Map<String, Object> listAgency(@RequestParam("domain_id") String domainId,                                       @RequestParam(value = "name", required = false) String name,                                       HttpServletRequest request) throws BadRequestException {CSE不允许一个接口定义多个path,因为每个接口必须存在唯一的operation id。 这种情况需要将接口拆分为3个接口,比如listAgency1, listAgency2, listAgency3. 
  • [新特性] 视频点播上线新功能(IAM子账号权限管理)啦
    视频点播发布日志管理服务【新功能】:IAM子账号权限管理详细操作与描述:支持在IAM服务中创建视频点播子用户,支持配置四种不同权限:点播服务管理员、用户组管理员、用户组操作员和用户组访客。背景描述统一身份认证服务针对视频点播服务的预置策略及对应权限说明如表1所示。表1 预置策略说明操作步骤在统一身份认证服务上配置的用户组、权限策略、用户关系建议如图1所示。 图1  权限控制配置建议   其中,User5同时属于两个用户组,才能保证User7、User8登录点播服务控制台时,能够看到User5发布的媒体资源。登录统一身份认证服务控制台,单击“用户”并创建IAM用户,例如创建IAM用户“vod_operator”,并设置密码生成方式为“自定义”。单击“用户组”并创建用户组,例如创建用户组“Operator”。返回“用户组”界面,单击“修改”,修改用户组“Operator”的配置。单击“确定”返回。在“用户组权限”中,修改“华北-北京一”的策略,策略对应的权限说明请参考表1。在“包含用户”中,选择需要赋权的IAM用户,例如“vod_operator”。退出当前用户,返回公有云登录框,切换到IAM用户登录,以租户账号、IAM用户和密码登录。
  • [教程] OBS权限管理配置实践
    OBS权限管理配置实践参考1       背景介绍       华为云与Amazon S3的权限管理实现一致,对象存储是采用结合统一身份管理服务来做的访问权限控制。       具体来说就是在统一身份管理中创建用户组并对该用户组赋予特定资源的特定访问权限,然后创建用户将用户加入到所需对应资源和访问权限的用户组,该统一身份管理中资源的粒度是服务,不支持更细粒度的资源控制,如果要做到更细粒度的资源权限控制就需要靠桶策略来进行控制。在完成用户和用户组的配置后,在对象存储的桶权限管理中桶策略的高级设置,通过添加高级桶策略来完成指定资源特定访问权限配置。       这两天在华为云上摸索了一下通过查看资料和提工单搞了一下简单验证,详细成果在这里给大家分享一下。本文中首先通过控制台完成相关资源创建和策略配置,然后采用开源工具s3curl进行业务验证,工具下载路径:https://github.com/rtdp/s3curl。2       场景一:给子账户授权2.1       方案说明通常一个大企业下面可能会分设多个业务部门,多个业务部门之间的数据需要独立管理的场景下可以考虑使用不同子用户进行独立的资源和权限配置。A账户下创建两个子账户A1/A2,为两个子账户授予桶的上传对象权限,然后验证两个子账户的权限是否正确。2.2       配置操作2.2.1       使用统一身份认证服务控制台 创建用户组输入用户组名后点击确认进行创建(以创建“obstest”为例)2.2.2       修改创建的用户组中对象存储服务权限为Buckets Viewer1)在用户组中点击新创建用户组的修改按钮2)点击用户组权限的对象存储服务对应的修改按钮3)选中权限为“OBS Buckets Viewer”权限,赋予该用户组内用户具有列举该主账户所有桶的权限2.2.3       创建用户并将用户加入用户组中依次创建userA1、userA2后可以看到该用户组的权限及用户配置信息2.2.4       获取账户ID(租户ID)和子账户ID配置桶策略1)在账户-我的凭证中获取账号ID2)在统一身份管理用户-基本信息中获取子账户ID3)登陆对象存储控制台,使用账户A创建桶:obs-bucketpolicy,该桶内创建子目录abc,在桶策略-高级配置中添加桶策略。a.同时为userA1、userA2配置特定桶内特定资源上传权限说明:1、  桶策略中“被授权用户”字段: 被授权用户指本条桶策略作用的账户或用户。被授权用户可以选择,可以同时选择多个。2、 桶策略中“资源”字段:资源指桶或对象。您可以指定一个对象或对象集,比如fileA*,fileB*,当指定给对象集时,使用通配符“*”。如果不输入,则表示指定资源为桶,且在动作处只能选择与桶相关的。多个资源使用英文逗号分隔。3、    桶策略中的“动作”字段:指定本条桶策略可以执行的操作。例如:上传、下载、删除等。4、    桶策略中的“条件”字段:指定本条桶策略可以执行的操作。通过设置该字段可以实现指定IP、指定域名等访问该策略所限定的资源。2.3       权限验证使用子账号的AK/SK进行业务验证2.3.1       获取主账号和子用户的AK/SK1.    主账号AK/SK获取在主账号-我的凭证-管理访问密钥中,通过新增访问密钥来创建主账号的密钥。2.    子用户AK/SK获取在统一身份认证服务控制台-用户列表中,通过对应用户的“设置凭证”按钮进入密钥创建控制台。在设置凭证页面通过“管理访问密钥”-“新增访问密钥”来创建子用户的访问密钥。注意:创建子用户密钥时提示需要输入“登陆密码”,此次需要输入的密码为主账号的登陆密码,不是子用户密码。2.3.2       开源工具s3curl配置用户的AK/SK并在s3curl中添加obs的endpoint1)          vim 编辑s3curl工具目录下的.s3curl文件,添加2个子用户的AK/SK2)          vim编辑s3curl工具目录下的s3curl.pl脚本,添加obs的endpoint2.3.3       使用userA1、userA2上传对象到桶内的abc/目录下上传成功,上传到其他目录失败,下载资源也失败1)          userA1上传对象到abc/目录下,上传成功。2)          userA2上传对象到abc/目录下,上传成功。登陆控制台可以看到对应路径下有上传成功的文件。3)          userA1/A2上传对象到非abc目录下,上传失败。a.      使用userA1上传对象到桶根目录下,上传失败,提示无权限访问。b.      使用userA2上传对象到def目录下,上传失败,提示无权限访问。4)          userA1/A2下载桶内对象,下载失败,提示无权限访问。a.使用userA1下载桶根目录下的资源,下载失败。b.使用userA2下载赋予其上传权限路径下资源,下载失败。3       场景二:子账户桶资源隔离3.1       方案说明按照前一个场景的配置虽然可以实现不同子账号只能访问配置了特定访问策略的资源,但是每个子用户都可以看到该租户账号下面的所有桶资源无法做到每个子用户只能看到自己有权限访问的桶。通过使用OBSBrowser挂载外部桶的方式可以实现子用户的桶资源隔离。A账户下创建子账户userB,为子账户授予特定桶内资源的完全访问权限,然后使用OBSBrowser挂载外部桶方式验证子账户的权限是否正确。3.2       配置操作3.2.1       直接创建子用户,不添加到任何用户组或者添加到不具有OBS访问权限的用户组中使用A账户登录华为云,创建子用户userB,此用户不设置OBS访问权限。创建userB后可以看到该用户未配置相关用户组。3.2.2       获取账户ID(租户ID)和子账户ID配置桶策略1)在账户-我的凭证中获取账号ID。2)在统一身份管理用户-基本信息中获取子账户ID。3)登陆对象存储控制台,找到需要配置子账户访问的桶,在桶策略-高级配置中添加桶策略。a.为userB配置特定桶内特定资源完全访问权限。b.为userB配置特定桶的列举权限。配置结果重复该步骤,为另外一个桶也配置相同的用户策略。3.3       权限验证使用子账号的AK/SK进行业务验证3.3.1       获取主账号和子用户的AK/SK1.    主账号AK/SK获取在主账号-我的凭证-管理访问密钥中,通过新增访问密钥来创建主账号的密钥。2.    子用户AK/SK获取在统一身份认证服务控制台-用户列表中,通过对应用户的“设置凭证”按钮进入密钥创建控制台。在设置凭证页面通过管理访问密钥-新增访问密钥来创建子用户的访问密钥。注意:创建子用户密钥时提示需要输入“登陆密码”,此次需要输入的密码为主账号的登陆密码,不是子用户密码。3.3.2       使用OBSBrowser配置子账户的AK/SK通过挂载外部桶方式挂载配置有访问权限的桶1)          配置子账户AK/SK2)          挂载两个外部桶在直接使用添加的子账户进行登录时会遇到如下报错信息,请点击确认后忽略该报错。然后点击“添加桶”按钮,并在添加桶的配置窗体中选择“添加外部桶”并输入正确桶名点击确定,即可完成外部桶挂载。重复操作将两个桶都挂载上3.3.3       对挂载的桶进行上传下载删除对象均成功4       景三:给不同租户(账户)授权4.1       方案说明A/B/C三个账户,A账户为桶owner,A账户给B账户赋予上传对象权限,给C账户赋予下载对象权限。4.2       配置操作4.2.1       获取租户的账户ID4.2.2       使用A账户登录console,为特定桶配置桶策略举例:为账户配置obs-ydy-des桶上传对象的权限为B账户配置写入权限,为C账户配置读取桶内资源的权限。4.3       权限验证使三个账户的AK/SK使用S3Curl工具进行验证业务4.3.1       配置工具A/B/C三个账户的AK/SK(A账户:usertzf  B账户:userydy  C账户:userhqh)4.3.2       使用A账户上传对象成功使用A账户,上传成功Console控制台可以看到上传的文件4.3.3       使用B账户上传对象成功,上传是指定桶owner具有该对象完全控制权限 使用B账户,上传成功Console控制台客户查看到上传成功的文件4.3.4       使用B账户只能下载自己上传的对象,无法下载A账户上传的对象1)          B账号下载自己上传的对象,下载成功2)          B账号下载A账户上传的对象,下载失败4.3.5       使用C账户下载对象成功1)          C账户下载A账户上传的对象,下载成功2)          C账户下载B账户上传的对象,下载失败失败原因:桶策略由桶Owner设定,只会对桶Owner上传的对象生效,无法对其他用户上传的对象生效。4.3.6       使用C账户无法上传对象使用C账户上传对象时提示无权限,上传失败5       场景四:委托服务进行OBS访问5.1       方案说明       在需要使用其他服务来对OBS中的数据进行访问时,可以通过创建委托的方式来实现。委托创建后被委托的服务可以用创建委托的租户身份来对OBS资源进行访问。本方案例中以委托ECS通过AK/SK+STStoken访问OBS为例进行说明。5.2       配置操作5.2.1      登陆统一身份认证服务控制台,创建委托选择委托类型为“云服务”,在云服务中选择“ECS BMS”,在权限选择中配置“全局服务-对象存储服务的策略为Tenant Administrator”5.2.2       创建ECS时在高级中配置使用创建的委托5.3       55.3    权限验证5.3.1       登陆ECS获取临时AK/SK和STSToken执行命令: curl http://169.254.169.254/openstack/latest/securitykey 获取临时AK/SK和STSToken,其中169.254.169.254是ECS服务委托时的IP,如果其他云服务创建委托,需要使用各自云服务的IP地址。具体IP地址需要从云服务接口人获取。5.3.2       使用s3curl验证访问权限添加临时AK/SK用户执行命令:./s3curl.pl --id=linshi -- -H "x-amz-security-token:***(token的内容)*** " http://obs-wjl2.obs.cn-north-1.myhwclouds.com/123.txt -v注意:通过委托形式访问OBS不支持跨Region的访问,原因是IAM为非全局服务,每个Region的IAM独立提供鉴权服务。但是创建的委托配置全局共享。如果ECS跨Region采用临时AK/SK+STStoken访问访问OBS会提示找不到AK/SK记录。6      场景五:委托租户采用临时AK/SK+Ststoken进行OBS访问6.1      方案说明    假设非华为云服务的账户为ThomasYang,使用非华为云服务的租户为shan0304。在需要使用应用市场上的非华为云自身服务来对OBS中的数据进行访问时,可以通过shan0304创建委托提供该服务的第三方应用的租户ThomasYang的方式来实现。委托创建后被委托的租户可以用创建委托的租户身份来对OBS资源进行访问。本方案例中以委托某租户通过AK/SK+STStoken访问OBS为例进行说明。6.2      配置操作租户shan0304登陆统一身份认证服务控制台,创建租户委托。选择委托类型为“普通账号”,委托账号中输入被委托租户的账号名称,在权限选择中赋予对象存储Tenant_Administrator权限。                                               6.3      权限验证6.3.1        获取被委托租户具有te_agency权限的token以postman为例进行说明,采用post方法调用IAM的v3/auth/tokens接口,在header中配置Content-Type为application/json,然后在Body中输入如下信息(参考截图):执行如下命令:https://iam.myhuaweicloud.com/v3/auth/tokens在响应消息的Headers中获取X-Subject-Token字段,该字段即为所需的token信息。可以在响应消息的body中查看roles字段,确认该token具有te_agency权限。6.3.2        使用具有te_agency权限的token获取临时AK/SK+Ststoken以postman为例进行说明,采用post方法调用IAM的v3.0/OS-CREDENTIAL/securitytokens接口,在Header中输入Content-Type为application/json,以及X-Auth-Token字段添加前一步中获取到的token信息。并在Body中输入如下信息(参考截图):在响应消息的Body中获取所需的临时AK/SK和Ststoken,参考下图6.3.3        使用s3curl验证临时AK/SK+Ststoken的权限添加临时AK/SK用户执行命令:./s3curl.pl –id=linshi -- -H “x-amz-security-token:****” http://dfv-video.obs.cn-north-1.myhwclouds.com -v其中dfv-video是tangzifu账户中的桶。7      场景六:配置桶策略限定权限的子用户临时AK/SK+Ststoken进行OBS访问7.1      方案说明当前IAM无法提供权限伸缩功能,类似于阿里云的RAM中“角色”功能(具有一定权限的用户)。华为云可以提供子用户+桶策略的方式来达到相同效果。首先在统一身份管理中创建一个子用户,该子用户不具备对象存储的任何访问权限,然后给指定桶配置该子用户的桶策略限定该子用户具有某个桶特定资源的特定操作权限。以子用户的用户名密码获取到子用户的token,再获取子用户的临时AK/SK+STStoken,以临时AK/SK+Ststoken的方式访问资源。7.2      配置操作7.2.1        直接创建子用户,不添加到任何用户组或者添加到不具有OBS访问权限的用户组中7.2.2        给指定桶配置该子用户的桶策略以自定义模式给子用户7.3      权限验证7.3.1        获取子用户的token以postman为例进行说明,采用post方法调用IAM的v3/auth/tokens接口,在header中配置Content-Type为application/json,然后在Body中输入如下信息(参考截图):在响应消息的Headers中获取X-Subject-Token字段,该字段即为所需的token信息。7.3.2        使用子用户的token获取临时AK/SK+Ststoken以postman为例进行说明,采用post方法调用IAM的v3.0/OS-CREDENTIAL/securitytokens接口,在Header中输入Content-Type为application/json,以及X-Auth-Token字段添加前一步中获取到的token信息。并在Body中输入如下信息(参考截图):在响应消息的Body中获取所需的临时AK/SK和Ststoken,参考下图7.3.3        使用s3curl验证临时AK/SK+Ststoken的权限添加临时AK/SK用户执行命令:./s3curl.pl –id=zhihu –put=./README -- -H “x-amz-security-token:****” http://obs-mei1.obs.cn-north-1.myhwclous.com/zhihu/123.txt -v
总条数:142 到第
上滑加载中