全部產品
Search
文件中心

Tablestore:通過RAM Policy為RAM使用者授權

更新時間:Jun 30, 2024

使用Tablestore產品前,您需要為RAM使用者授予訪問Tablestore資源的許可權。本文介紹如何通過RAM Policy為RAM使用者授予訪問Tablestore資源的許可權。

背景資訊

阿里雲許可權管理機制包括存取控制和臨時安全性權杖,您可以根據需求使用不同許可權的RAM使用者訪問Tablestore,也可以臨時授權使用者訪問Tablestore資源。使用RAM和STS能極大地提高管理的靈活性和安全性。

  • 存取控制RAM中預設已內建了Tablestore相關的系統權限原則AliyunOTSFullAccess、AliyunOTSReadOnlyAccess和AliyunOTSWriteOnlyAccess,您可以為RAM使用者配置相應系統權限原則。

  • 當要實現更細粒度的授權時,您可以使用自訂權限原則為RAM使用者授權。

  • 當要實現臨時授權時,您可以使用臨時訪問憑證進行授權。

使用預設系統策略

  1. 如果未建立RAM使用者,請建立RAM使用者。具體操作,請參見建立RAM使用者

  2. 為RAM使用者授權。具體操作,請參見為RAM使用者授權

    • 如果需要管理Tablestore,例如建立執行個體等,請授予RAM使用者AliyunOTSFullAccess許可權。

    • 如果需要唯讀訪問Tablestore,例如讀取表中資料等,請授予RAM使用者AliyunOTSReadOnlyAccess許可權。

    • 如果需要唯寫訪問Tablestore,例如建立資料表等,請授予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(唯讀訪問Tablestore)策略,為ramtestappwrite角色賦予ram-test-app-write(唯寫Tablestore)策略。

      授權完成後,記錄角色的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訪問Tablestore。Java SDK請參考以下方式建立OTSClient對象,傳入從STS擷取的AccessKeyId、AccessKeySecret和SecurityToken等參數。

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