版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、表格存储授权管理访问控制/STS SDK使用手册访问控制/STS SDK使用手册 PAGE 32 PAGE 32授权管理RAM和STS介绍RAM和STS是阿里云提供的权限管理系统,详情可以参考访问控制产品帮助文档。RAM可以将在主账号的权限范围内创建子账号,给不同的子 账号分配不同的权限从而达到授权管理的目的。STS来完成对于临时用 户的访问授权。背景介绍AccessKey的情况下如何安全的授权别人访问。 因为一旦主账号的AccessKey暴露出去的话会带来极大的安全风险,别人可以随意操作该账号下所有的资源,盗取重要信息等。相对于RAM提供的长效控制机制,STS提供的是一种临时访问授权,通过S
2、TS可以返回临时的AccessKey和(TableStore)。一般来说从STS获取的权限会 受到更加严格的限制,并且拥有时间限制,因此这些信息泄露之后对于系统的影响也很小。这些功能在下文中会以实际的例子来说明。基本概念以下是一些基本概念的简单解释:子账号:从阿里云的主账号中创建出来的子账号,在创建的时候可以分配独立的密码和权限,每个子 账号拥有自己AccessKey,可以和阿里云主账号一样正常的完成有权限的操作。一般来说,这里的子 账号可以理解为具有某种权限的用户,可以被认为是一个具有某些权限的操作发起者。角色(Role):表示某种操作权限的虚拟概念,但是没有独立的登录密码和AccessKe
3、y。子账号可以 扮演角色,扮演角色的时候的权限是该角色自身的权限。RDSRDS/API授权策略(Policy):用来定义权限的规则,比如允许用户读取、或者写入某些资源。资源(Resource):代表用户可访问的云资源,比如TableStore所有的Instance、或者某个Instance、或者某个Instance下面的某个Table等。子账号和角色可以类比为某个个人和其身份的关系,某人在公司的角色是员工,在家里的角色是父亲,在不同 的场景扮演不同的角色,但是还是同一个人。在扮演不同的角色的时候也就拥有对应角色的权限。单独的员工 或者父亲概念并不能作为一个操作的实体,只有有人扮演了之后才是一个
4、完整的概念。这里还可以体现一个重 要的概念,那就是角色可以被多个不同的个人同时扮演。完成角色扮演之后,该个人就自动拥有该角色的所有 权限。这里再用一个例子解释一下。某个阿里云用户,名为alice,其在TableStore有两个Instance,alice_a和alice_b。alice对这两个Instance都拥有完全的权限。为了避免阿里云账号的AccessKey泄露导致安全风险,alice使用RAM创建了两个子账号bob和carol,bob对alice_a拥有读写权限,carol对alice_b拥有读写权限。bob和carol都拥有独立的Instance,而且alice可以很方便的在控制台取
5、消泄 露用户的权限。现在因为某些原因,需要授权给别人读取alice_a中的Table,这种情况下不应该直接把bob的AccessKey透露出去,那么,这个时候可以新建一个角色,比如AliceAReader,给这个角色赋予读取alice_a的权限。但是请注意,这个时候AliceAReader还是没法直接用的,因为并不存在对应AliceAReader的AccessKey,AliceAReader现在仅仅表示一个拥有访问alice_a权限的一个虚拟实体。为了能获取临时授权,这个时候可以调用STS的AssumeRole接口,告诉STS,bob将要扮演AliceAReader这个角色,如果成功,STS会
6、返回一个临时的AccessKeyId、AccessKeySecret还有SecurityToken作为访问凭证。将这个凭证发给需要访问的临时用户就可以获得访问alice_a的临时权 限了。凭证过期的时间在调用AssumeRole的时候指定。为什么RAM和STS这么复杂乍一看RAM和STS的概念是很复杂的,但这是为了权限控制的灵活性而牺牲了部分的易用性。将子账号和角色分开,主要是为了将执行操作的实体和代表权限集合的虚拟实体分开。如果用户本身需要的权 限很多,比如读写权限,但是实际上每次操作只需要其中的一部分权限,那么我们就可以创建两个角色,分别 具有读写权限,然后创建一个没有任何权限但是可以拥有
7、扮演这两个角色权限的用户。当用户需要读的时候就 可以临时扮演其中拥有读权限的角色,写的时候同理,将每次操作中权限泄露的风险降低。而且通过扮演角色 可以将权限授予其他的阿里云用户,更加方便了协同使用。当然,提供了灵活性并不代表一定要使用全部的功能,应该根据需求来使用其中的一个子集即可。比如不需要 带过期时间的临时访问凭证的话,完全可以只使用RAM的子账号功能而无需使用STS。下面会用范例提供一些RAM和STS的使用指南,以及使用上的建议。示例在操作上会尽量使用控制台和命令行 等操作方式,减少实际代码使用。如果需要使用代码来实现建议参看RAM和STS的API手册。快速入门这个示例从一个没有任何In
8、stance的阿里云用户开始,以下内容中出现的AccessKey请替换成用户自己对应的AccessKey。在测试中使用到了CLI工具,这是TableStore的命令行工具,可以直接通过命令行读写数据,获取的地址为表格 存储CLI工具包。安装依赖:python安装依赖:pythononekey_INSTALL.py参数配置:pythonots_console-urlhttp:/.-idAccessID-key执行命令:如建表,ctpk1:string,pk2:integerreadrt:1writert:1详细用法和其它命令请参考CLI工具包内的帮助文档。假定该用户是一个移动开发者,目前只有一个
9、ram-test-dev的Instance用来做开发测试等功能。子账号访问那么,第一件要做的事情就是不再使用主账号来访问这个Instance,这样可以规避AccessKey或者密码泄露导 致的问题。在控制台上操作请点击进入访问控制,如果之前没有使用过的需要先点击开通公测服务。进入用户管理页面。这里显示还没有任何用户,那么我们点击右上角的新建用户来创建一个拥有和主账号一样完全访问TableStore权限的子账号,记住要勾选生成AccessKey的选项。最后一步会生成该账号的AccessKey,一定要在这一步保存下来用于后续的访问。性能测试/性能测试视频教程性能测试/性能测试视频教程返回用户管理界
10、面,这里显示我们创建了一个名为ram_test的账号。创建完成之后,该子账号还是没有任何权 限的,点击右边的授权链接,给该账号赋予TableStore的完全访问权限。授权完成之后如果该账号需要控制台登录等权限也可以点击右侧的管理链接来完成操作。$pythonots_console$pythonots_console-url HYPERLINK http:/TableStoreT/ http:/TableStoreT-idVPIzjuDB6T4FGoWM-key r1usnIQ4Tw1yI6bNJkKay6A8EJoMvs$OTS-TableStoreTest:cttestpk1:string,
11、pk2:integerreadrt:1writert:1 Table test has been createdsuccessfully.$OTS-TableStoreTest: dt test You will delete the table:test!press Y (confirm) :YTable test has been deleted successfully.可见一般的操作已经完全可以使用这个账号来完成所有的操作,避免泄露主账号的AccessKey读写权限分离当需要对部分用户共享TableStore某个Instance的数据,但又不希望数据被修改,这时可以创建一个具有只读 权
12、限的子账号,做到读写权限分离。那么同上文的操作方式,创建一个ram_test_pub的账号,在授权管理的地方选择ReadOnly即可,如下图所示。OSS/周边工具OSS/周边工具使用该账号的AccessKey同样测试建表和删表的权限,这里的AccessKey为ram_test_pub的,实际试验中AccessKey请替换成自己试验使用的。阿里云大数据平台/郡县图治阿里云大数据平台/郡县图治$python$pythonots_console-url HYPERLINK http:/TableStoreT/ http:/TableStoreT-idftWyMEYu1rBYTbWM-key u4qR
13、5IGu5xJsvSO1y8moyC6n5vA7af$OTS-TableStoreTest:cttestpk1:string,pk2:integerreadrt:1writert:1 Fail to create tabletest.$OTS-TableStoreTest: dt test You will delete the table:test!press Y (confirm) :YFail to delete table test.可见确实已经无法使用ram_test_pub这个账号建表和删表了。自定义权限Action定义包含两类API:Instance读写相关的管理类API;表和行
14、读写相关的数据 类API。可以根据Action设置开放或限制用户可以访问的API。API名称/ActionAPI类别说明ListInstance管理类获取Instance列表,仅控制台调用InsertInstance管理类创建Instance,仅控制台调用GetInstance管理类获取Instance信息,仅控制台调用DeleteInstance管理类删除Instance,仅控制台调用ListTable数据类获取Table列表,控制台和SDK调用CreateTable数据类创建Table,控制台和SDK调用UpdateTable数据类更新Table信息,控制台和SDK调用DescribeTa
15、ble数据类获取Table信息,控制台和SDK调用DeleteTable数据类删除Table,控制台和SDK调用GetRow数据类读取一行数据,仅SDK调用PutRow数据类插入一行数据,仅SDK调用UpdateRow数据类更新一行数据,仅SDK调用DeleteRow数据类删除一行数据,仅SDK调用GetRange数据类范围读取数据,仅SDK调用BatchGetRow数据类批量读取多行数据,仅SDK调用BatchWriteRow数据类批量写入多行数据,仅SDK调用在创建TableStore的授权策略时,每个action需要添加ots:前缀,多个action以逗号分隔,并且支持星号通配 符(包括
16、前缀匹配和后缀匹配)。下面是一些典型的Action定义。单个API。Action: ots:GetRowAction: ots:GetRow多个API。Action: Action: ots:PutRow, ots:GetRow所有只读API。Action: Action: ots:BatchGet*, ots:Describe*, ots:Get*, ots:List*所有读写API。Action: ots:*Action: ots:*Resource定义acs:ots:region:user_id:instance/instance_name/table/table_nameTableSt
17、ore的资源由多个字段组成:产品、地域、用户ID、实例名和表名,每个字段支持星号通配符(包括前 缀匹配和后缀匹配),格式如下,其中xxx表示变量。产品固定为ots,地域为英文缩写(如cn-hangzhou, 服务节点地域信息请参考),用户ID为阿里云账号ID。acs:ots:region:user_id:instance/instance_name/table/table_name典型的Resource定义。所有地域的所有用户的所有资源。Resource: acs:ots:*:*:*Resource: acs:ots:*:*:*华东1(杭州)域,用户123456的所有Instance及其下面所
18、有的Table。Resource: acs:ots:cn-hangzhou:123456:instance/*Resource: acs:ots:cn-hangzhou:123456:instance/*华东1(杭州)域,用户123456的名称为abc的Instance及其下面所有的Table。Resource: Resource: acs:ots:cn-hangzhou:123456:instance/abc, acs:ots:cn-hangzhou:123456:instance/abc/table/*所有以abc开头的Instance及下面的所有Table。Resource: acs:o
19、ts:*:*:instance/abc*Resource: acs:ots:*:*:instance/abc*所有以abc开头的Instance下面的所有以xyz开头的Table(不包括Instance资源,不匹配acs:ots:*:*:instance/abc*)。Resource: acs:ots:*:*:instance/abc*/table/xyz*Resource: acs:ots:*:*:instance/abc*/table/xyz*所有以abc结尾的Instance及下面的所有以xyz结尾的Table。Resource: acs:ots:*:*:instance/*abc, R
20、esource: acs:ots:*:*:instance/*abc, acs:ots:*:*:instance/*abc/table/*xyz管理类API访问的资源管理类API主要为Instance相关的操作,仅由官网控制台调用,对这类API的Action和Resource定义,将影响用 户使用控制台。下面访问的资源省略了acs:ots:region:user_id:前缀,只描述instance和table部分。API名称/Action访问的资源ListInstanceinstance/*InsertInstanceinstance/instance_nameGetInstanceinsta
21、nce/instance_nameDeleteInstanceinstance/instance_name数据类API访问的资源数据类API主要为Table和行相关的操作,官网控制台和SDK都会调用,对这类API的Action和Resource定义,将影响用户使用控制台。下面访问的资源省略了acs:ots:region:user_id:前缀,只描述instance和table部 分。API名称/Action访问的资源ListTableinstance/instance_name/table/*CreateTableinstance/instance_name/table/table_nameU
22、pdateTableinstance/instance_name/table/table_nameDescribeTableinstance/instance_name/table/table_nameDeleteTableinstance/instance_name/table/table_nameGetRowinstance/instance_name/table/table_namePutRowinstance/instance_name/table/table_nameUpdateRowinstance/instance_name/table/table_nameDeleteRowin
23、stance/instance_name/table/table_nameGetRangeinstance/instance_name/table/table_nameBatchGetRowinstance/instance_name/table/table_nameBatchWriteRowinstance/instance_name/table/table_name常见问题说明是通过字符串匹配进行验证的,并且星号通配符区分前缀和后缀匹配。如 果Resource定义为acs:ots:*:*:instance/*/,则无法匹配acs:ots:*:*:instance/abc。如果Resourc
24、e定 义为acs:ots:*:*:instance/abc,则无法匹配acs:ots:*:*:instance/abc/table/xyz。登陆TableStore控制台管理实例资源,需要授予用户acs:ots:region:user_id:instance/*资源的读 取权限,因为控制台需要获取实例的列表。对于批量操作API(如BatchGetRow和BatchWriteRow),后端服务会对被访问的每张Table分别鉴 权,只有所有Table都鉴权通过操作才能被执行,否则会返回权限错误。Condition定义目前Policy支持访问IP限制、是否通过https访问、是否通过MFA(多因素认
25、证)访问和访问时间限制等多种鉴 权条件,TableStore所有API都已经支持这些条件。访问IP限制访问控制可以限制访问TableStore的源IP地址,并且支持根据网段进行过滤。下面是一些典型的使用场景。- 限制多个IP地址,如只允许IP地址为11和11的请求访问。Statement: Effect: Allow,Action: ots:*, Resource: acs:ots:*:*:*, Condition: IpAddress: acs:SourceIp: 11,11,Version: 1- 限制单个IP地址和IP网段,如只允许IP地址为11或11/24网段的请求访问。Stateme
26、nt: Effect: Allow,Action: ots:*, Resource: acs:ots:*:*:*, Condition: IpAddress: acs:SourceIp: 11, 11/24,Version: 1https访问限制访问控制可以限制是否通过https访问,下面是典型的使用场景。性能测试/Lite用户使用手册性能测试/Lite用户使用手册Statement: Statement: Effect: Allow,Action: ots:*, Resource: acs:ots:*:*:*, Condition: Bool: acs:SecureTransport: tr
27、ue,Version: 1MFA访问限制访问控制可以限制是否通过MFA(多因素认证)访问,下面是典型的使用场景。限制请求必须通过MFA访问。Statement: Effect: Allow,Action: ots:*, Resource: acs:ots:*:*:*, Condition: Bool: acs:MFAPresent : true,Version: 1访问时间限制访问控制可以限制请求的访问时间,即只允许或拒绝在某个时间点范围之前的请求。下面是典型的使用场景。2016年1月1号凌晨之前用户可以访问,之后就不能再访问。Statement: Effect: Allow,Action:
28、ots:*,大数据处理服务MaxCompute/安全指南大数据处理服务MaxCompute/安全指南Resource: acs:ots:*:*:*, Resource: acs:ots:*:*:*, Condition: DateLessThan: acs:CurrentTime: 2016-01-01T00:00:00+08:00,Version: 1典型使用场景结合上面的Action、Resource和Condition的定义,下面我们给出一些典型使用场景的Policy定义和授权方法。多种授权条件对于访问IP地址为11/24网段的用户,可以对所有名称为online-01和online-02
29、的Instance执行 读写操作(包括Instance下面的所有Table),且要求只能在2016-01-01 00:00:00之前访问和通过https访问。Statement: Statement: Effect: Allow,Action: ots:*, Resource: acs:ots:*:*:instance/online-01, acs:ots:*:*:instance/online-01/table/*, acs:ots:*:*:instance/online-02, acs:ots:*:*:instance/online-02/table/*,Condition: IpAddr
30、ess: acs:SourceIp: 11/24,DateLessThan: acs:CurrentTime: 2016-01-01T00:00:00+08:00,Bool: acs:SecureTransport: true,Version: 1大数据处理服务MaxCompute/Java SDK大数据处理服务MaxCompute/Java SDK然后,按照之前描述的方式,将策略授权给子账号。拒绝请求Statement: Statement: Effect: Deny,Action: ots:Create*, ots:Insert*, ots:Put*, ots:Update*, ots:D
31、elete*, Action: ots:Create*, ots:Insert*, ots:Put*, ots:Update*, ots:Delete*, ots:BatchWrite*,Resource: acs:ots:cn-beijing:*:instance/online*/table/*, acs:ots:cn-beijing:*:instance/product*/table/*,Condition: IpAddress: acs:SourceIp: 11,Version: 1子账号访问现在子账号已经可以登录TableStore控制台,对Instance和Table进行管理。并且子
32、账号可以调用SDK接口,访 问数据类API。登录控制台首先使用主账号进入RAM控制台,进入用户管理页面,点击子账号列表右方的管理按钮。在子账号用户详情页面,点击启用控制台登录,然后重置密码。然后通过RAM子账号登录链接登录控制台(链接可以在RAM控制台概述页面查看),登录成功后,点击左边表 格存储图标,进入控制台。启用多因素认证多因素认证(Multi-Factor Authentication, MFA)是一种简单有效的最佳安全实践方法,它能够在用户名和密码之外再额外增加一层安全保护。启用 MFA 后,用户登录阿里云网站时,系统将要求输入用户名和密码(第一安全要素),然后要求输入来自其MFA设
33、备的可变验证码(第二安全要素)。这些多重要素结合起来将 为您的账户提供更高的安全保护。在用户详情页面,点击启用虚拟MFA设备,按照帮助流程启用MFA设备。然后点击必须卡其多因素认证按钮,打开后登录控制台就会要输入MFA设备的可变验证码。性能测试/Lite实践指南性能测试/Lite实践指南调用API为子账号创建AccessKey,在调用SDK接口时传入该AccessKey,其它使用方式与主账号保持不变。进阶使用STS上面章节只用到了RAM的子账号功能,这些子账号都是可以长期正常使用的,发生泄露之后如果无法及时解除 权限的话会很危险。继续上文的例子,当开发者的App被用户使用之后,用户的数据要写入
34、ram-test-app这个Instance,当App的 用户数据很多的时候,如何才能安全的授权给众多的App用户上传数据呢?如何保证多个用户之间存储的隔离?类似这种场景需要临时访问应该使用STS来完成。STS可以指定复杂的策略来对特定的用户进行限制,仅提供最 小的权限。创建角色之前已经解释过了角色的一些概念,本节将会给出使用角色的实际例子。首先,按照上文说述的流程创建一个子账号ram_test_app,不需要赋予任何权限,因为在扮演角色的时候会自 动获得被扮演角色的所有权限。接下来开始创建角色。这里创建两个角色,一个用于用户读取等操作,一个用于用户上传文件。 打开控制台中的访问控制,选择角色
35、管理-新建角色。因为是角色是被本身阿里云账号来使用过的,因此选择默认的即可。创建完成角色之后,角色是没有任何权限的,因此这里和上文所述一样需要新建一个自定义的授权策略,授权 策略如下。Statement: Effect: Allow, Action: ots:BatchGet*, ots:Describe*, ots:Get*, ots:List*,Resource: acs:ots:*:*:instance/ram-test-app,acs:ots:*:*:instance/ram-test-app/table/*,Version: 1这里表示的就是对ram-test-app拥有只读权限。建
36、立完成之后即可在角色管理里面给RamTestAppReadOnly添加上ram-test-app的只读授权。Statement: Statement: Effect: Allow, Action: ots:Create*, ots:Insert*, ots:Put*, ots:Update*, ots:Delete*, ots:BatchWrite*,Resource: acs:ots:*:*:instance/ram-test-app,acs:ots:*:*:instance/ram-test-app/table/*,Version: 1阿里云大数据平台/推荐引擎阿里云大数据平台/推荐引擎现
37、在我们新建好了两个角色,分别为RamTestAppReadOnly和RamTestAppWrite,分别表示了对于ram- test-app的读写权限。临时授权访问创建了角色之后,接下来就可以使用临时授权来访问TableStore了。不过在正式使用之前,还有一些工作需要完成。扮演角色也是需要授权的,否则任意子账号都可以扮演这些角 色会带来不可预计的风险,因此有扮演对应角色需求的子账号需要显式的配置权限。首先在授权管理策略中新建两个自定义的授权策略,分别如下:Version: 1, Statement: Version: 1, Statement: Effect: Allow,Action: s
38、ts:AssumeRole,阿里云大数据平台/机器翻译阿里云大数据平台/机器翻译Resource: acs:ram:1983407596944237:role/ramtestappreadonlyResource: acs:ram:1983407596944237:role/ramtestappreadonlyVersion: 1, Statement: Version: 1, Statement: Effect: Allow,Action: sts:AssumeRole,Resource: acs:ram:1983407596944237:role/ramtestappwrite这里Reso
39、urce后面填写的内容表示某个角色id,角色的id可以在角色管理-角色详情中找到。然后将这个两个授权赋给ram_test_app这个账号。现在一切准备就绪,可以正式使用STS来授权访问了。这里使用一个简单的STS的python命令行工具sts.py。$python ./sts.py AssumeRole RoleArn=acs:ram:1983407596944237:role/ramtestappreadonly RoleSessionName=usr001 Policy=Version:1,Statement:Effect:Allow,Action:ots:ListTable,ots:De
40、scribeTable,Resource:acs:ot s:*:*:ram-test-app,acs:ots:*:*:ram-test-app/* DurationSeconds=1000 -id=id -secret=secretRoleArn表示的是需要扮演的角色id,角色的id可以在角色管理-角色详情中找到。$python ./sts.py AssumeRole RoleArn=acs:ram:1983407596944237:role/ramtestappreadonly RoleSessionName=usr001 Policy=Version:1,Statement:Effect:
41、Allow,Action:ots:ListTable,ots:DescribeTable,Resource:acs:ot s:*:*:ram-test-app,acs:ots:*:*:ram-test-app/* DurationSeconds=1000 -id=id -secret=secretRoleArn表示的是需要扮演的角色id,角色的id可以在角色管理-角色详情中找到。RoleSessionName是一个用来标示临时凭证的名称,一般来说建议使用不同的应用程序用户来区分。Policy 标 示 的 是 在 扮 演 角 色 的 时 候 额 外 加 上 的 一 个 权 限 限 制 。 Dur
42、ationSeconds指的是临时凭证的有效期,单位是秒,最小为900,最大为3600。 id和secret表示的是需要扮演角色的子账号的AccessKey。这里需要解释一下这里的Policy,这里传入的Policy是用来限制扮演角色之后的临时凭证的权限。最后临时凭证 获得的权限是角色的权限和这里传入的Policy的交集。在扮演角色的时候传入Policy的原因是为了灵活性,比如上传文件的时候可以根据不同的用户添加对于上传文 件路径的限制,这点会在下面的例子展示。现在我们可以来实际试验STS的作用,先在控制台创建名称为test_write_read的Table,主键为name,类似为string
43、,然后使用CLI工具测试读写操作。python2.7python2.7ots_console-url HYPERLINK http:/TableStoreT/ http:/TableStoreT-id6iTlV1uhiY71mlRt-key clkkuDiq69IJWJ7PnA9PXJxhRWMr3PYou cannot access the instance! You cannot access the instance! ErrorCode: OTSNoPermissionAccessErrorMessage: You have no permission to access the re
44、quested resource, please contact the resource owner.因为ram_test_app这个子账号没有访问权限,因此访问失败。使用临时授权写入数据现在使用STS来写入数据,这里为了简单,传入的Policy和角色的Policy一致,过期时间使用默认的3600s,SessionName假定为session001。首先使用STS来获取临时的凭证。python2.7 ./sts.py AssumeRole RoleArn=acs:ram:1983407596944237:role/ramtestappwrite RoleSessionName=session
45、001 Policy=Statement: Effect: Allow,Action: ots:Create*,ots:BatchWrite*,ots:Put*,ots:Insert*,ots:Update*,ots:Delete*,Resource: acs:ots:*:*:instance/ram-test-app,acs:ots:*:*:instance/ram-test-app/table/*,Version: 1 - id=6iTlV1uhiY71mlRt -secret=clkkuDiq69IJWJ7PnA9PXJxhRWMr3PAssumedRoleUser: Arn: acs:
46、ram:1983407596944237:role/ramtestappwrite/session001, AssumedRoleId: 330629052749595885:session001,Credentials: AccessKeyId: STS.x4gG7KMsfHckQe8nPKLO,AccessKeySecret: IA6CJh5kE5J5m8mR6aQXWbMemSL63Xh7SIhrEcke, Expiration: 2016-01-14T07:58:14Z,SecurityToken: CAESgAQIARKAATDsbhiBSujhVEHoMKm1i17pyZhPTCe
47、1BnVF5YzdNyRos4WuQjalxLkOE/hNNxg25vTo9bljKg4VCcrf h6GkJNujMMcJ4V1i/0RMDLfXwa0/vOHP9W/oSQpwAD5EaWJfqVY/nxwmJ0aKJDHPmSieWssnlmocaOZAgHkpCqQS SDA8GhhTVFMueDRnRzdLTXNmSGNrUWU4blBLTE8iEjMzMDYyOTA1Mjc0OTU5NTg4NSoGdXNyMDAxMPnCkfmjKj oGUnNhTUQ1QuIBCgExGtwBCgVBbGxvdxJnCgxBY3Rpb25FcXVhbHMSBkFjdGlvbhpPCgtvdHM6
48、Q3JlYXRlKgoPb3Rz OkJhdGNoV3JpdGUqCghvdHM6UHV0KgoLb3RzOkluc2VydCoKC290czpVcGRhdGUqCgtvdHM6RGVsZXRlKhJqCg5S ZXNvdXJjZUVxdWFscxIIUmVzb3VyY2UaTgohYWNzOm90czoqOio6aW5zdGFuY2UvcmFtLXRlc3QtYXBwCilhY3M6b3R zOio6KjppbnN0YW5jZS9yYW0tdGVzdC1hcHAvdGFibGUvKkoQMTk4MzQwNzU5Njk0NDIzN1IFMjY4NDJaD0Fzc3VtZ WRSb2xlVXNl
49、cmAAahIzMzA2MjkwNTI3NDk1OTU4ODVyD3JhbXRlc3RhcHB3cml0ZQ=,RequestId: 5F92B248-F200-40F8-A05A-C9C7D018E351使用CLI工具写入数据(版本V1.2开始支持token参数,待发布)。python2.7 ots_console -url python2.7 ots_console -url HYPERLINK http:/TableStoreT/ http:/TableStoreT -id STS.x4gG7KMsfHckQe8nPKLO-key IA6CJh5kE5J5m8mR6aQXWbMemSL6
50、3Xh7SIhrEcke - token=CAESgAQIARKAATDsbhiBSujhVEHoMKm1i17pyZhPTCe1BnVF5YzdNyRos4WuQjalxLkOE/hNNxg25vTo9bljKg 4VCcrfh6GkJNujMMcJ4V1i/0RMDLfXwa0/vOHP9W/oSQpwAD5EaWJfqVY/nxwmJ0aKJDHPmSieWssnlmocaOZAgHkp CqQSSDA8GhhTVFMueDRnRzdLTXNmSGNrUWU4blBLTE8iEjMzMDYyOTA1Mjc0OTU5NTg4NSoGdXNyMDAxMPnCkfmjKjoGUnNhTUQ1Q
51、uIBCgExGtwBCgVBbGxvdxJnCgxBY3Rpb25FcXVhbHMSBkFjdGlvbhpPCgtvdHM6Q3JlYXRlKgoP b3RzOkJhdGNoV3JpdGUqCghvdHM6UHV0KgoLb3RzOkluc2VydCoKC290czpVcGRhdGUqCgtvdHM6RGVsZXRlKhJq Cg5SZXNvdXJjZUVxdWFscxIIUmVzb3VyY2UaTgohYWNzOm90czoqOio6aW5zdGFuY2UvcmFtLXRlc3QtYXBwCilhY3M 6b3RzOio6KjppbnN0YW5jZS9yYW0tdGVzdC1hcHAvdG
52、FibGUvKkoQMTk4MzQwNzU5Njk0NDIzN1IFMjY4NDJaD0Fzc3VtZWRSb2xlVXNlcmAAahIzMzA2MjkwNTI3NDk1OTU4ODVyD3JhbXRlc3RhcHB3cml0ZQ= 3VtZWRSb2xlVXNlcmAAahIzMzA2MjkwNTI3NDk1OTU4ODVyD3JhbXRlc3RhcHB3cml0ZQ= OTS-TableStoreTest$ put test_write_read 001 age:integer=30A new row has been put in table test_write_read使用临时授权
53、读取数据现在使用STS来读取数据,这里为了简单,传入的Policy和角色的Policy一致,过期时间使用默认的3600s,SessionName假定为session002。首先使用STS来获取临时的凭证。python2.7 ./sts.py AssumeRole RoleArn=acs:ram:1983407596944237:role/ramtestappreadonly RoleSessionName=session002 Policy=Statement: Effect: Allow,Action: ots:BatchGet*,ots:Describe*,ots:Get*,ots:Lis
54、t*,Resource: acs:ots:*:*:instance/ram-test- app,acs:ots:*:*:instance/ram-test-app/table/*,Version: 1 -id=6iTlV1uhiY71mlRt - secret=clkkuDiq69IJWJ7PnA9PXJxhRWMr3PAssumedRoleUser: Arn: acs:ram:1983407596944237:role/ramtestappreadonly/session002, AssumedRoleId: 396025752746614078:session002,Credentials
55、: AccessKeyId: STS.0qJ2UE8AalcHdQ6n2Q8Q,AccessKeySecret: pSaUjb8O9mU5M76nkC6FHt6wKwbCVYO27gxSEBAu, Expiration: 2016-01-14T08:14:16Z,SecurityToken: CAES6wMIARKAAVtHeNgUnhk132OwDfxZTu8gPQCxfakYLeWha/FxoEYNqBKQTtyI4WPC5mpYuu8+n+yamSYTI2VP Q/z44fcYCNT1bQ0km87F3nb6EJxVvCdJIPNGVwQBMdQl/FLwBVhEGJ9BIwog4fMz
56、whERjqnAP8HbynAIQpG55BHaIX mv53x+GhhTVFMuMHFKMlVFOEFhbGNIZFE2bjJROFEiEjM5NjAyNTc1Mjc0NjYxNDA3OCoKc2Vzc2lvbjAwMjConMz5 oyo6BlJzYU1ENULGAQoBMRrAAQoFQWxsb3cSSwoMQWN0aW9uRXF1YWxzEgZBY3Rpb24aMwoNb3RzOkJhdGNoR 2V0KgoNb3RzOkRlc2NyaWJlKgoIb3RzOkdldCoKCW90czpMaXN0KhJqCg5SZXNvdXJjZUVxdWFscxIIUmVzb3VyY2Ua Tgoh
57、YWNzOm90czoqOio6aW5zdGFuY2UvcmFtLXRlc3QtYXBwCilhY3M6b3RzOio6KjppbnN0YW5jZS9yYW0tdGVzdC 1hcHAvdGFibGUvKkoQMTk4MzQwNzU5Njk0NDIzN1IFMjY4NDJaD0Fzc3VtZWRSb2xlVXNlcmAAahIzOTYwMjU3NTI3 NDY2MTQwNzhyEnJhbXRlc3RhcHByZWFkb25seQ=,RequestId: EE788165-B760-4014-952C-E58ED229C80D使用CLI工具读取数据(版本V1.2开始支持token参数,待发布)。
58、python2.7 ots_console -url python2.7 ots_console -url HYPERLINK http:/TableStoreT/ http:/TableStoreT -id STS.0qJ2UE8AalcHdQ6n2Q8Q-key pSaUjb8O9mU5M76nkC6FHt6wKwbCVYO27gxSEBAu - token=CAES6wMIARKAAVtHeNgUnhk132OwDfxZTu8gPQCxfakYLeWha/FxoEYNqBKQTtyI4WPC5mpYuu8+n+yamS YTI2VPQ/z44fcYCNT1bQ0km87F3nb6EJxVvCdJIPNGVwQBMdQl/FLwBVhEGJ9BIwog4fMzwhERjqnAP8HbynAIQpG55 BHaIXmv53x+GhhTVFMuMHFKMlVFOEFhbGNIZFE2bjJROFEiEjM5NjAyNTc1Mjc0NjYxNDA3OCoKc2Vzc2lvbjAwMjCo nMz5oyo6BlJzYU1ENULGAQoBMRrAAQoFQWxsb3cSSwoMQWN0aW9uRXF1YWxzEgZBY3Rpb24aMwoNb3RzOkJhd GNoR2V0KgoNb3RzOkRlc2NyaWJlKgoIb3RzOkd
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家庭养老护理技巧
- 环球中心悬挑式卸料平台综合项目施工专项方案
- 2026年设施农机与畜牧机械市场需求伴随产业结构调整升级
- 2026年低空旅游项目安全管理体系ISO认证指南
- 2026年列车检修从人检人修向机检人修跨越转型指南
- 2025年前台服务规范考
- 2026年无针注射技术透皮吸收效率研究报告
- 白内障术后高眼压护理查房
- 2026年量子直接通信104.8km光纤2.38kbps稳定传输技术解析
- 2026年设备更新“贷款直通车”与“技改贷款码”推广:温州银企对接创新模式
- 2026湖南衡阳市招聘衡东县政务服务中心综窗工作人员3人笔试备考试题及答案解析
- GB/T 7307-200155°非密封管螺纹
- 2023年江苏农林职业技术学院高职单招(数学)试题库含答案解析
- 有机电致发光器件简介(课堂PPT)
- 哈铁单招考试数学试题
- 大学生常见的心理障碍心理疾病和心理调适培训课件
- 配电室监测运维系统技术方案
- 《汉字的演变》-完整版PPT
- 春季校园传染病预防知识主题班会精编ppt
- TCECS 720-2020 钢板桩支护技术规程
- 中职信息化教学大赛作品《指数函数及其图像与性质 》教学设计
评论
0/150
提交评论