閱讀184 返回首頁    go 阿裏雲 go 技術社區[雲棲]


OSS訪問驗證流程

OSS訪問的安全性

對OSS的HTTP請求可以根據是否攜帶身份驗證信息分為兩種請求。一種是帶身份驗證的請求,一種是不帶身份驗證的匿名請求。帶身份驗證的請求表示的是如下兩種情況:

  • 請求頭部中帶Authorization,格式為OSS + AccessKeyId + 簽名字符串。
  • 請求的URL中帶OSS AccessKeyId和Signature字段。

OSS訪問驗證流程

匿名請求訪問流程

  1. 用戶的請求被發送到OSS的HTTP服務器上。
  2. OSS根據URL解析出Bucket和Object。
  3. OSS檢查Object是否設置了ACL。
    • 如果沒有設置ACL,那麼繼續 4
    • 如果設置了ACL,則判斷Object的ACL是否允許匿名用戶訪問。
      • 允許則跳到 5
      • 不允許則拒絕請求,請求結束。
  4. OSS判斷Bucket的ACL是否允許匿名用戶訪問。
    • 允許則繼續 5
    • 不允許則返回,請求結束。
  5. 權限驗證通過,返回Object的內容給用戶。

ano_access_flow.png

帶身份驗證請求訪問流程

  1. 用戶的請求被發送到OSS的HTTP服務器上。
  2. OSS根據URL解析出Bucket和Object。
  3. OSS根據請求的OSS的AccessKeyId獲取請求者的相關身份信息,進行身份鑒權。
    • 如果未獲取成功,則返回,請求結束。
    • 如果獲取成功,但請求者不被允許訪問此資源,則返回,請求結束。
    • 如果獲取成功,但OSS端根據請求的HTTP參數,計算的簽名和請求發送的簽名字符串不匹配,則返回,請求結束。
    • 如果身份鑒權成功,那麼繼續 4.
  4. OSS檢查Object是否設置了ACL。
    • 如果Object沒有設置ACL,那麼繼續 5
    • 如果Object設置了ACL,OSS判斷Object的ACL是否允許匿名用戶訪問。
      • 允許則跳到 6
      • 不允許則拒絕請求,請求結束。
  5. OSS判斷Bucket的ACL是否允許匿名用戶訪問。
    • 允許則繼續 6
    • 不允許則返回,請求結束。
  6. 權限驗證通過,返回Object的內容給用戶。

access_flow.png

帶身份驗證訪問OSS的三種方法

  • 使用控製台訪問OSS:控製台中對用戶隱藏了身份驗證的細節,使用控製台訪問OSS的用戶無需關注細節。
  • 使用SDK訪問OSS:OSS提供了多種開發語言的SDK,SDK中實現了簽名算法,隻需要將AK信息作為參數輸入即可。
  • 根據API訪問OSS:如果您想用自己喜歡的語言來封裝調用RESTful API接口,您需要實現簽名算法來計算簽名。具體的簽名算法可以參考API手冊中的 在Header中包含簽名 和 在URL中包含簽名

關於AccessKey相關的解釋及更詳細的身份驗證的操作請參見 訪問控製

最後更新:2017-09-06 16:32:37

  上一篇:go  傳小米路由器定價1099
  下一篇:go  使用Spring Boot日誌框架在已有的微服務代碼中添加日誌功能