开发者社区 问答 正文

如何读/写权限分离



读/写权限分离


当需要对部分用户共享表格存储某个实例的数据,但又不希望数据被修改时,可以创建一个具有只读权限的子账号,做到读/写权限分离。
创建一个 ram_test_pub 的账号,在[backcolor=transparent]编辑个人授权策略页面选择 ReadOnly 即可,如下图所示。



测试示例


使用该账号的 AccessKey 测试建表和删表的权限。下面示例中使用了 ram_test_pub 的 AccessKey,试验过程中请替换成您自己获取到的 AccessKey。 $python ots_console --url http://TableStoreTest.cn-hangzhou.ots.aliyuncs.com --id ftWyMEYu1rBYTbWM --key u4qR5IGu5xJsvSO1y8moyC6n5vA7af
$OTS-TableStoreTest>: ct test pk1:string,pk2:integer readrt:1 writert:1
Fail to create table test.
$OTS-TableStoreTest>: dt test
You will delete the table:test!
press Y (confirm) :Y
Fail to delete table test.


由上述示例可见,ram_test_pub 没有建表和删表的权限。

展开
收起
云栖大讲堂 2017-10-25 09:52:24 2064 分享 版权
阿里云 AI 助理回答

在阿里云的表格存储(Table Store)服务中,实现读/写权限分离是一种常见的做法,以确保数据的安全性和完整性。通过阿里云的资源访问管理(Resource Access Management,RAM)服务,您可以为不同的用户或应用分配精细的访问控制策略。

如何配置读/写权限分离:

  1. 创建RAM用户:首先,在RAM控制台创建一个新的RAM用户,例如ram_test_pub,这个用户将用于只读访问。

  2. 设置授权策略:对于新创建的RAM用户,需要为其配置一个只读的授权策略。在编辑该用户的授权策略时,选择或自定义一个策略模板,确保该策略仅包含对表格存储的读取权限,而不包括写入、删除或修改表的权限。通常,这会涉及到设置如ots:DescribeTable, ots:GetRow, ots:GetRange等操作的允许权限,同时排除所有写操作相关的权限,比如ots:CreateTable, ots:DeleteTable, ots:PutRow, ots:UpdateRow, ots:DeleteRow等。

  3. 获取AccessKey和SecretKey:为ram_test_pub用户生成AccessKey ID和AccessKey Secret,这些凭证将用于后续的API调用验证。

  4. 测试权限:使用步骤3中获取的AccessKey和SecretKey进行API调用测试,验证该账号确实只能执行读取操作,而无法执行建表(ots:CreateTable)、删表(ots:DeleteTable)等写入操作。您可以通过阿里云提供的SDK或者命令行工具(如示例中的ots_console)来进行测试。

示例代码解释:

  • 在提供的Python命令行示例中,尝试使用ram_test_pub账号的AccessKey执行创建表(ct test ...)和删除表(dt test)的操作。
  • 结果显示“Fail to create table test.”和“Fail to delete table test.”,这证明了ram_test_pub账号没有足够的权限来执行写操作,即建表和删表失败,符合我们设置的只读权限要求。

通过上述步骤,您可以有效地在阿里云表格存储服务中实施读/写权限分离,确保数据安全的同时满足不同场景下的数据共享需求。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: