文档

通过RAM Policy为RAM用户授权

更新时间:

使用表格存储产品前,您需要为RAM用户授予访问表格存储资源的权限。本文介绍如何通过RAM Policy为RAM用户授予访问表格存储资源的权限。

背景信息

阿里云权限管理机制包括访问控制和临时安全令牌,您可以根据需求使用不同权限的RAM用户访问表格存储,也可以临时授权用户访问表格存储资源。使用RAM和STS能极大地提高管理的灵活性和安全性。

  • 访问控制RAM中默认已内置了表格存储相关的系统权限策略AliyunOTSFullAccess、AliyunOTSReadOnlyAccess和AliyunOTSWriteOnlyAccess,您可以为RAM用户配置相应系统权限策略。

  • 当要实现更细粒度的授权时,您可以使用自定义权限策略为RAM用户授权。

  • 当要实现临时授权时,您可以使用临时访问凭证进行授权。

使用默认系统策略

  1. 如果未创建RAM用户,请创建RAM用户。具体操作,请参见创建RAM用户

  2. 为RAM用户授权。具体操作,请参见为RAM用户授权

    • 如果需要管理表格存储,例如创建实例等,请授予RAM用户AliyunOTSFullAccess权限。

    • 如果需要只读访问表格存储,例如读取表中数据等,请授予RAM用户AliyunOTSReadOnlyAccess权限。

    • 如果需要只写访问表格存储,例如创建数据表等,请授予RAM用户AliyunOTSWriteOnlyAccess权限。

使用自定义策略

  1. 如果未创建RAM用户,请创建RAM用户。具体操作,请参见创建RAM用户

  2. 创建自定义权限策略。具体操作,请参见创建自定义权限策略

    其中自定义权限策略的权限配置请参见自定义RAM Policy

  3. 为RAM用户授予自定义权限策略。具体操作,请参见为RAM用户授权

使用临时访问凭证

  1. 创建临时角色及授权。

    1. 创建可信实体为阿里云账号的RAM角色。具体操作,请参见创建可信实体为阿里云账号的RAM角色

      创建名称分别为ramtestappreadonlyramtestappwrite两个角色,ramtestappreadonly用于读取等操作,ramtestappwrite用于上传文件的操作。

    2. 创建自定义权限策略。具体操作,请参见创建自定义权限策略

      其中自定义权限策略的权限配置请参见自定义权限策略

      此处以ram-test-app-readonlyram-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"
        }                        
    3. 为临时角色授权。具体操作,请参见为RAM角色授权

      ramtestappreadonly角色赋予ram-test-app-readonly(只读访问表格存储)策略,为ramtestappwrite角色赋予ram-test-app-write(只写表格存储)策略。

      授权完成后,记录角色的ARN,即需要扮演角色的ID,如下图所示。fig_arn

  2. 临时授权访问。

    1. 如果未创建RAM用户,请创建RAM用户。具体操作,请参见创建RAM用户

    2. 创建自定义权限策略。具体操作,请参见创建自定义权限策略

      其中自定义权限策略的权限配置请参见自定义权限策略

      此处以AliyunSTSAssumeRolePolicy2016011401AliyunSTSAssumeRolePolicy2016011402两个策略为例介绍。其中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"
            }
            ]
        }                                
    3. 为RAM用户授予临时角色。具体操作,请参见为RAM用户授权

      将自定义策略AliyunSTSAssumeRolePolicy2016011401AliyunSTSAssumeRolePolicy2016011402授权给名称为ram_test_app的RAM用户。

  3. 从STS获取的临时访问凭证。具体操作,请参见AssumeRole

  4. 使用临时授权读写数据。

    您可以使用临时授权调用不同语言的SDK访问表格存储。Java SDK请参考以下方式创建OTSClient对象,传入从STS获取的AccessKeyId、AccessKeySecret和SecurityToken等参数。

    OTSClient client = new OTSClient(otsEndpoint, stsAccessKeyId, stsAccessKeySecret, instanceName, stsToken);