使用SDK發(fā)起請求
當您使用SDK向Tablestore發(fā)起請求時,認證系統(tǒng)接收到請求后,通過憑證來驗證請求發(fā)送者的身份。身份驗證成功后,您可以訪問相應的Tablestore資源。
身份驗證
當用戶以個人身份向Tablestore發(fā)送請求時,身份驗證的實現(xiàn)如下:
用戶將發(fā)送的請求按照指定的格式生成簽名字符串。
用戶使用AccessKey Secret對簽名字符串進行加密產(chǎn)生驗證碼。
認證系統(tǒng)收到請求后,通過AccessKey ID找到對應的AccessKey Secret,并以同樣的方法提取簽名字符串和驗證碼。
如果計算出來的驗證碼和提供的一致,Tablestore認為該請求有效。
如果計算出來的驗證碼和提供的不一致,Tablestore將拒絕處理這次請求,并返回HTTP 403錯誤。
相關概念
訪問密鑰
訪問密鑰指的是訪問身份驗證中用到的AccessKey ID和AccessKey Secret。AccessKey ID和AccessKey Secret一起使用,AccessKey ID用于標識用戶,AccessKey Secret用于驗證用戶的密鑰。身份驗證成功后,您將可以操作相應的Tablestore資源。
RAM用戶的AccessKey Secret只在創(chuàng)建時顯示,不支持查詢,請妥善保管。
阿里云賬號訪問密鑰
開始使用阿里云服務前,首先需要注冊一個阿里云賬號。阿里云賬號是阿里云資源歸屬、資源使用計量計費的基本主體。阿里云賬號為其名下所擁有的資源付費,并對其名下所有資源擁有完全控制權限。
默認情況下,資源只能被阿里云賬號所訪問,任何其他用戶訪問都需要獲得阿里云賬號的顯式授權。阿里云賬號就是操作系統(tǒng)的root或Administrator,所以我們有時稱它為根賬號或主賬號。
阿里云賬號訪問密鑰具有所有資源的訪問權限。每個阿里云賬號能夠同時擁有不超過5個訪問密鑰。每個訪問密鑰都有以下兩種狀態(tài):
Active:表明訪問密鑰處于激活狀態(tài),可以在身份驗證的時候使用。
Inactive:表明訪問密鑰處于非激活狀態(tài),不能在身份驗證的時候使用。
阿里云賬號擁有資源的全部權限,訪問密鑰一旦泄露,會給系統(tǒng)帶來巨大風險,不建議使用。推薦使用最小化授權的RAM用戶的訪問密鑰。
RAM用戶訪問密鑰
RAM用戶也叫RAM賬號,是RAM的一種實體身份類型,有確定的身份ID和身份憑證,它通常與某個確定的人或應用程序一一對應。RAM用戶具備以下特點:
一個阿里云賬號下可以創(chuàng)建多個RAM用戶,對應企業(yè)內(nèi)的員工、系統(tǒng)或應用程序。
RAM用戶不擁有資源,不能獨立計量計費,由所屬阿里云賬號統(tǒng)一控制和付費。
RAM用戶歸屬于阿里云賬號,只能在所屬阿里云賬號的空間下可見,而不是獨立的阿里云賬號。
RAM用戶必須在獲得阿里云賬號的授權后才能登錄控制臺或使用API操作阿里云賬號下的資源。
RAM用戶訪問密鑰指的是RAM用戶被授權的訪問密鑰。RAM用戶訪問密鑰只能按照RAM定義的規(guī)則去訪問Tablestore實例里的資源。通過RAM用戶訪問密鑰,您可以集中管理您的用戶(例如員工、系統(tǒng)或應用程序),以及控制用戶可以訪問您名下哪些資源的權限。例如,能夠限制您的用戶只擁有對某一個Tablestore實例的讀權限。
臨時訪問憑證
除了具備永久訪問憑證的RAM用戶,阿里云還提供具備臨時訪問憑證的RAM角色。RAM角色是一種虛擬用戶,可以被授予一組權限策略。與RAM用戶不同,RAM角色沒有確定的登錄密碼或訪問密鑰,它需要被一個可信的實體用戶(RAM用戶、阿里云服務或身份提供商)扮演。扮演成功后實體用戶將獲得RAM角色的臨時訪問憑證,即安全令牌(STS Token),使用安全令牌就能以RAM角色身份訪問被授權的資源。
服務地址
每個表格存儲實例對應一個服務地址(Endpoint),您使用阿里云SDK向Tablestore發(fā)起請求時需要指定服務地址。服務地址包括公網(wǎng)地址、公網(wǎng)(雙棧)地址、VPC地址和經(jīng)典網(wǎng)地址四種類型。更多信息,請參見服務地址。
請求流程
RAM用戶訪問密鑰請求流程
使用RAM用戶訪問密鑰向Tablestore發(fā)起請求的流程如下:
使用RAM用戶訪問密鑰初始化一個OTSClient實例。
調(diào)用OTSClient提供的方法向Tablestore發(fā)起請求。
OTSClient實例使用RAM用戶訪問密鑰產(chǎn)生簽名,并將簽名添加到該請求中。
具體操作,請參見使用RAM用戶密鑰發(fā)起請求。
STS臨時訪問憑證請求流程
RAM用戶可以使用阿里云SDK請求STS臨時訪問憑證,然后使用STS臨時訪問憑證訪問Tablestore資源。STS臨時訪問憑證將在設置的有效時間到期后失效。
使用STS臨時訪問憑證向Tablestore發(fā)起請求的流程如下:
使用RAM用戶訪問密鑰初始化一個STSClient實例。
調(diào)用STS提供的AssumeRole方法獲取被授予特定權限的RAM角色的STS臨時訪問憑證。
使用STS臨時訪問憑證初始化一個OTSClient實例。
使用OTSClient提供的方法向Tablestore發(fā)起請求。
OTSClient實例使用STS臨時訪問憑證產(chǎn)生簽名,并將簽名添加到該請求中。
具體操作,請參見使用STS臨時訪問憑證發(fā)起請求。
阿里云SDK
阿里云提供以下語言的SDK: