使用Tablestore產品前,您需要為RAM使用者授予訪問Tablestore資源的許可權。本文介紹如何通過RAM Policy為RAM使用者授予訪問Tablestore資源的許可權。
背景資訊
阿里雲許可權管理機制包括存取控制和臨時安全性權杖,您可以根據需求使用不同許可權的RAM使用者訪問Tablestore,也可以臨時授權使用者訪問Tablestore資源。使用RAM和STS能極大地提高管理的靈活性和安全性。
存取控制RAM中預設已內建了Tablestore相關的系統權限原則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
(唯讀訪問Tablestore)策略,為ramtestappwrite
角色賦予ram-test-app-write
(唯寫Tablestore)策略。授權完成後,記錄角色的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訪問Tablestore。Java SDK請參考以下方式建立OTSClient對象,傳入從STS擷取的AccessKeyId、AccessKeySecret和SecurityToken等參數。
OTSClient client = new OTSClient(otsEndpoint, stsAccessKeyId, stsAccessKeySecret, instanceName, stsToken);