使用表格存储产品前,您需要为RAM用户授予访问表格存储资源的权限。本文介绍如何通过RAM Policy为RAM用户授予访问表格存储资源的权限。
背景信息
阿里云权限管理机制包括访问控制和临时安全令牌,您可以根据需求使用不同权限的RAM用户访问表格存储,也可以临时授权用户访问表格存储资源。使用RAM和STS能极大地提高管理的灵活性和安全性。
访问控制RAM中默认已内置了表格存储相关的系统权限策略AliyunOTSFullAccess、AliyunOTSReadOnlyAccess和AliyunOTSWriteOnlyAccess,您可以为RAM用户配置相应系统权限策略。
当要实现更细粒度的授权时,您可以使用自定义权限策略为RAM用户授权。
当要实现临时授权时,您可以使用临时访问凭证进行授权。
使用默认系统策略
使用自定义策略
如果未创建RAM用户,请创建RAM用户。具体操作,请参见创建RAM用户。
创建自定义权限策略。具体操作,请参见创建自定义权限策略。
其中自定义权限策略的权限配置请参见自定义RAM Policy。
为RAM用户授予自定义权限策略。具体操作,请参见为RAM用户授权。
使用临时访问凭证
创建临时角色及授权。
创建可信实体为阿里云账号的RAM角色。具体操作,请参见创建可信实体为阿里云账号的RAM角色。
创建名称分别为
ramtestappreadonly
和ramtestappwrite
两个角色,ramtestappreadonly
用于读取等操作,ramtestappwrite
用于上传文件的操作。创建自定义权限策略。具体操作,请参见创建自定义权限策略。
其中自定义权限策略的权限配置请参见自定义权限策略。
此处以
ram-test-app-readonly
和ram-test-app-write
两个策略为例介绍。ram-test-app-readonly策略
{ "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-write策略
{ "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" }
为临时角色授权。具体操作,请参见为RAM角色授权。
为
ramtestappreadonly
角色赋予ram-test-app-readonly
(只读访问表格存储)策略,为ramtestappwrite
角色赋予ram-test-app-write
(只写表格存储)策略。授权完成后,记录角色的ARN,即需要扮演角色的ID,如下图所示。
临时授权访问。
如果未创建RAM用户,请创建RAM用户。具体操作,请参见创建RAM用户。
创建自定义权限策略。具体操作,请参见创建自定义权限策略。
其中自定义权限策略的权限配置请参见自定义权限策略。
此处以
AliyunSTSAssumeRolePolicy2016011401
和AliyunSTSAssumeRolePolicy2016011402
两个策略为例介绍。其中Resource
为角色的ARN信息。AliyunSTSAssumeRolePolicy2016011401
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "acs:ram:198***237:role/ramtestappreadonly" } ] }
AliyunSTSAssumeRolePolicy2016011402
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "acs:ram:198***237:role/ramtestappwrite" } ] }
为RAM用户授予临时角色。具体操作,请参见为RAM用户授权。
将自定义策略
AliyunSTSAssumeRolePolicy2016011401
和AliyunSTSAssumeRolePolicy2016011402
授权给名称为ram_test_app
的RAM用户。
从STS获取的临时访问凭证。具体操作,请参见AssumeRole。
使用临时授权读写数据。
您可以使用临时授权调用不同语言的SDK访问表格存储。Java SDK请参考以下方式创建OTSClient对象,传入从STS获取的AccessKeyId、AccessKeySecret和SecurityToken等参数。
OTSClient client = new OTSClient(otsEndpoint, stsAccessKeyId, stsAccessKeySecret, instanceName, stsToken);