全部產品
Search
文件中心

Object Storage Service:403錯誤

更新時間:Jun 19, 2024

本文介紹OSS返回403錯誤的原因和解決方案。

AccessDenied

The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint

  • 問題原因:訪問Bucket時使用的Endpoint不正確。

  • 解決方案:確保使用正確的Endpoint訪問Bucket。例如Bucket所在地區為oss-cn-hangzhou,則外網Endpoint為oss-cn-hangzhou.aliyuncs.com。關於Endpoint的更多資訊,請參見OSS訪問網域名稱使用規則

This request is forbidden by kms

  • 問題原因:沒有KMS使用許可權。

  • 解決方案:請確保對指定的CMK ID具有使用許可權。詳情請參見伺服器端加密

AccessDenied

  • 問題原因:沒有相應的存取權限。

  • 解決方案:

    • 確認使用了正確的AccessKey ID和AccessKey Secret。詳情請參見建立AccessKey

    • 確認RAM使用者是否擁有Bucket或Object相關操作許可權。

You have no right to access this object

Anonymous user has no right to access this bucket

Anonymous user has no right to access this object

You are denied by bucket referer policy

  • 問題原因:防盜鏈校正

  • 解決方案:通過設定Referer白名單以及是否允許空Referer,限制僅白名單中的網域名稱可以訪問Bucket內的資源。詳情請參見設定防盜鏈

Invalid according to Policy: Policy expired

  • 問題原因:PostObject中的Policy表單域無效。

  • 解決方案:Post請求的Policy表單域用於驗證請求的合法性。Policy為一段經過UTF-8和Base64編碼的JSON文本,聲明了Post請求必須滿足的條件。Post Policy格式如下:

    { "expiration": "2014-12-01T12:00:00.000Z",
      "conditions": [
        {"bucket": "johnsmith" },
        ["starts-with", "$key", "user/eric/"]
      ]
    }

    關於Policy中支援的Conditions詳情,請參見附錄:Post Policy

Invalid according to Policy: Policy Condition failed: " + RelatedUnit; //XXX

  • 問題原因:Policy表單域中指定的Conditions無效。

  • 解決方案:確保在Policy表單域中指定有效Conditions。關於Policy表單域中支援的Conditions以及Conditions匹配方式詳情,請參見附錄:Post Policy

Invalid according to Policy: Policy Condition failed: ["eq", "$Content-Type", "image/png"]

  • 問題原因:上傳的檔案類型與指定的Content-Type類型不符。

  • 解決方案:Policy中的Content-Type用於限制表單上傳時的檔案類型。如果Content-Type限制為image/png,則僅支援上傳image/png類型的檔案。如果您需要上傳其他類型的檔案,請添加對應的Content-Type類型。關於常見的Content-Type類型列表,請參見如何設定Content-Type(MIME)?

Target object does not reside in the same data center as source object

  • 問題原因:不支援跨地區拷貝檔案。

  • 解決方案:僅支援拷貝同一地區下相同或不同儲存空間(Bucket)之間的檔案(Object)。詳情請參見CopyObject

Query string authentication requires the Signature, Expires and OSSAccessKeyId parameters

  • 問題原因:URL簽名缺少必要參數。

  • 解決方案:URL簽名必須至少包含SignatureExpiresOSSAccessKeyId參數。URL簽名樣本為http://oss-example.oss-cn-hangzhou.aliyuncs.com/oss-api.pdf?OSSAccessKeyId=nz2pc56s936**9l&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv****。關於URL簽名的詳情,請參見在URL中包含簽名

Invalid date (should be seconds since epoch)

  • 問題原因:請求的時間戳記無效。

  • 解決方案:Expires參數的值是一個Unix time(自UTC時間1970年1月1號開始的秒數),用於標識該URL的逾時時間。

Request has expired

You do not have read permission on this object

  • 問題原因:沒有該Object的讀取許可權。

  • 解決方案:請聯絡Object擁有者授予您對Object的讀取許可權。

You do not have write permission on this object

  • 問題原因:沒有該Object的寫入許可權。

  • 解決方案:請聯絡Object擁有者授予您對Object的寫入許可權。

You do not have read acl permission on this object

  • 問題原因:沒有該Object的ACL讀取許可權。

  • 解決方案:請聯絡Object擁有者授予您GetObjectACL的許可權。

You do not have write acl permission on this object

  • 問題原因:沒有該Object的ACL寫入許可權。

  • 解決方案:請聯絡Object擁有者授予您PutObjectACL的許可權。

You have no right to access this object because of bucket acl

  • 問題原因:沒有該Object的存取權限。

  • 解決方案:請授予訪問者OSS相關存取權限,例如PutObjectGetObjectAppendObject等。詳情請參見RAM Policy常見樣本

Anonymous access is forbidden for this operation

Access denied by bucket policy

Access denied by VPC endpoint policy

  • 問題原因:用戶端所在VPC添加了Policy授權策略,導致未授權的Bucket無法在VPC環境內訪問。

  • 解決方案:請檢查您的用戶端所在VPC配置的Policy授權策略。

Hierarchical namespace is disabled

  • 問題原因:Bucket未開啟階層命名空間。

  • 解決方案:您需要在建立Bucket時開啟階層命名空間,然後對目錄或檔案進行重新命名操作。關於階層命名空間支援的地區以及使用情境等更多資訊,請參見開啟階層命名空間

Access denied by authorizer's policy

  • 問題原因:出現該報錯通常是無許可權執行相關操作。

  • 解決方案:臨時訪問憑證最終擷取的許可權是步驟四設定的角色許可權和步驟五中Policy設定許可權的交集。請通過以下樣本檢查您在這兩個步驟中設定的許可權交集。

    • 樣本1

      如下圖所示,A代表RAM角色的許可權,B代表通過policy參數設定的許可權,C代表臨時訪問憑證最終的許可權。

      1.jpg

    • 樣本2

      如下圖所示,A代表RAM角色許可權,B代表通過policy參數設定的許可權,且policy參數設定的許可權是RAM角色許可權的子集。因此,B代表臨時訪問憑證的最終許可權。

      2.jpg

AccessForbidden

CORSResponse: This CORS request is not allowed. This is usually because the evalution of Origin, request method / Access-Control-Request-Method or Access-Control-Requet-Headers are not whitelisted by the resource's CORS spec

PermanentRedirect

The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint

  • 問題原因:通過SDK訪問OSS中的Bucket時,未指定Endpoint或者指定的Endpoint有誤。例如建立的Bucket位於青島地區,使用了預設配置的oss-cn-hangzhou.aliyuncs.com的Endpoint地址發起請求,則出現該報錯。

  • 解決方案:確認請求的Endpoint地址與Bucket實際的Endpoint地址一致。例如需要訪問青島和杭州兩個節點的Bucket,建議建立多個ossclient,並在ossclient中添加oss-cn-hangzhou.aliyuncs.comoss-cn-qingdao.aliyuncs.com兩個Endpoint。

SecondLevelDomainForbidden

The bucket you are attempting to access must be addressed using OSS third level domain

  • 問題原因:Bucket的請求網域名稱不為第三層網域名。

  • 解決方案:針對OSS的網路請求,請確保除了GetService (ListBuckets)API以外,其他所有請求的網域名稱均由帶有指定Bucket資訊的第三層網域名組成。其中,訪問網域名稱結構為BucketName.Endpoint,BucketName為您的儲存空間名稱,Endpoint為儲存空間對應的地區網域名稱。例如https://examplebucket.oss-cn-hangzhou.aliyuncs.com

Please use virtual hosted style to access

  • 問題原因:Host錯誤。

  • 解決方案:通過外網訪問OSS服務時,以URL的形式表示訪問的OSS資源。OSS的URL結構為<Schema>://<Bucket>.<外網Endpoint>/<Object> 。其中Schema包含HTTP或者HTTPS,Bucket表示儲存空間名稱,外網Endpoint為Bucket所在資料中心供外網訪問的Endpoint,Object填寫上傳到OSS上的檔案的訪問路徑。

    例如您的Region為華東1(杭州),Bucket名稱為examplebucket,Object訪問路徑為destfolder/example.txt,則外網訪問地址為https://examplebucket.oss-cn-hangzhou.aliyuncs.com/destfolder/example.txt

NonStandardHostForbidden

Your host is invalid. Please use Open Storage Service standard host

KmsUbsmsInvalidBid

Your account partner does not have KMS Service

  • 問題原因:要求者未開通KMS服務。

  • 解決方案:使用SSE-KMS對OSS資料進行加密前,請先開通KMS服務。詳情請參見開通Key Management Service

KmsInDebt

Current user is indebted

  • 問題原因:當您的阿里雲賬戶進入欠費狀態時,您會收到相應的通知。同時,您對Key Management Service(Key Management Service)的訪問會被拒絕。

  • 解決方案:如需正常使用KMS服務時,請確保您的阿里雲賬戶不欠費。

KmsInDebtOverdue

Current user is indebted Overdue

  • 問題原因:KMS服務欠費已逾期。

  • 解決方案:如需正常使用KMS服務,請及時續約。

WORMConfigurationLocked

The WORM Configuration is locked

  • 問題原因:合規保留原則鎖定後試圖刪除策略。

  • 解決方案:若保留原則已提交鎖定,則不允許刪除此策略,且無法縮短策略保護周期,僅可以延長保護周期。詳情請參見保留原則

BucketNotBelongTo

The bucket you access does not belong to you

  • 問題原因:目前使用者不是目標Bucket的擁有者。

  • 解決方案:僅Bucket擁有者有許可權執行此操作。

InvalidAccessKeyId

The OSS Access Key Id you provided is disabled

  • 錯誤原因:AccessKey ID處于禁用狀態。

  • 解決方案:重新啟用AccessKey。

The OSS Access Key Id you provided does not exist in our records

  • 錯誤原因:臨時訪問憑證已到期,到期後自動失效。

  • 解決方案:請使用臨時存取金鑰(AccessKeyId和AccessKeySecret)向App伺服器申請新的臨時訪問憑證。具體操作,請參見擷取臨時訪問憑證

The OSS Access Key Id contains non-acceptable characters, which accepts only alphanumeric characters[0-9a-zA-Z] and several special characters[._=]

  • 錯誤原因:輸入了無效的AccessKey ID。

  • 解決方案:請重新輸入RAM使用者或者阿里雲帳號的AccessKey ID。更多資訊,請參見建立AccessKey

SignatureDoesNotMatch

The request signature we calculated does not match the signature you provided

  • 問題原因:使用API介面或者SDK訪問OSS時,用戶端需要攜帶簽名資訊以供OSS服務端進行身份認證。如果伺服器返回如上所示的響應,說明您在請求中提供的簽名與服務端計算的不一致,導致請求被拒絕。

  • 解決方案:請參考以下步驟進行排查。

    1. 確認簽名所用的AccessKey ID與AccessKey Secret是否填寫正確。

      您可以使用AccessKey ID與AccessKey Secret登入ossbrowser來驗證正確性。具體步驟,請參見安裝並登入ossbrowser

    2. 檢查簽名演算法是否正確。

      OSS提供兩種攜帶簽名的請求方式,分別為在Header中包含簽名在URL中包含簽名。關於這兩種簽名方式的演算法說明如下:

      • 在Header中包含簽名

        StringToSign = VERB + "\n"
                      + Content-MD5 + "\n" 
                      + Content-Type + "\n" 
                      + Date + "\n" 
                      + CanonicalizedOSSHeaders
                      + CanonicalizedResource
        Signature = base64(hmac-sha1(AccessKeySecret, StringToSign)
      • 在URL中包含簽名

        StringToSign = VERB + "\n" 
                      + CONTENT-MD5 + "\n" 
                      + CONTENT-TYPE + "\n" 
                      + EXPIRES + "\n" 
                      + CanonicalizedOSSHeaders
                      + CanonicalizedResource
        Signature = urlencode(base64(hmac-sha1(AccessKeySecret, StringToSign)))

      如果業務情境允許,推薦您使用SDK訪問OSS,免去手動計算簽名的過程。具體步驟,請參見使用阿里雲SDK發起請求概述

    3. 比對響應體中的StringToSign欄位與您發起請求的內容是否存在差異。

      StringToSign欄位表示待簽字串,即簽名演算法中需要使用AccessKey Secret進行加密的內容。

      請求樣本如下:

      PUT /bucket/abc?acl
      Date: Wed, 24 May 2023 02:12:30 GMT
      Authorization: OSS qn6q**************:77Dv****************
      x-oss-abc: mymeta

      以上請求計算得到的待簽字串應為:

      PUT\n\n\nWed, 24 May 2023 02:12:30 GMT\nx-oss-abc:mymeta\n/bucket/abc?acl

TransferAccelerationDisabled

Transfer acceleration is disabled

  • 問題原因:未開啟傳輸加速服務。

  • 解決方案:如果您需要遠距離資料轉送加速、加速上傳和下載GB或TB級大檔案以及非靜態、非熱點資料下載加速等情境,請開啟傳輸加速服務。詳情請參見傳輸加速

InvalidSecurityToken

The security token you provided is invalid

AccessKeyIdAndSecurityTokenNotMatch

The OSS access key id and security token you provided does not match

SecurityTokenExpired

The security token you provided has expired

  • 問題原因:臨時訪問憑證已到期。

  • 解決方案:重新請求STS服務擷取臨時訪問憑證。

AbnormalBucketOwnerStatus

The status of the bucket owner is abnormal

  • 問題原因:暫未向目標Bucket的所屬使用者提供服務。

  • 解決方案:請檢查使用者的阿里雲帳號是否已登出或因安全等原因被管控,是否因欠費原因被電訊廠商暫停服務。

SecurityTokenNotSupported

This interface does not support security token

  • 問題原因:當前介面暫不允許通過臨時訪問憑證許可權進行調用。

  • 解決方案:STS Token僅適用於臨時授權給特定使用者訪問OSS資源。如果您需要將Bucket開放給他人訪問,請參見存取控制概述選擇適用的授權機制。

Security token is not supported in this region

  • 問題原因:暫不支援在當前地區使用STS Token。

  • 解決方案:關於哪些地區支援使用STS Token的詳情,請參見接入地址

RequestTimeTooSkewed

The difference between the request time and the current time is too large

  • 問題原因:請求發起的時間超過OSS伺服器目前時間15分鐘。

  • 解決方案:請檢查發送請求裝置的系統時間,並根據時區調整到正確時間。

    發送請求的機器或裝置的系統時間,調整標準如下:

    • OSS的系統時間採用GMT時間,您的裝置的系統時間需要調整到GMT時間,或與其相對應的時區時間。GMT是零時區的區時,即世界標準時間。

      • Windows系統查看時區的方法:單擊控制台 > 時鐘、語言和地區 > 設定日期和時間

        例如,時區欄的+08:00表示您的裝置系統時區是東八區。

      • Linux或Unix系統查看時區的方法:執行date -R查看時間和時區。

        下圖中的+0800表示您的裝置系統時區是東八區。+0800

    • 支援在多個地區使用OSS。每個地區都使用GMT時間,您發送請求的裝置系統時間也是GMT時間。

ImageDamage

The image file may be damaged

  • 問題原因:圖片檔案有部分資訊丟失或損壞,導致無法正常識別或處理。

  • 排查方法:請確保源檔案沒有損壞,如有損壞請重新上傳本地檔案。

UserDisable

UserDisable

  • 問題原因:

    • 帳號欠費或者由於安全原因,帳號被禁用。

    • 未開通OSS服務。

  • 解決方案:

    • 請檢查帳號是否已欠費,或聯絡支援人員進行安全受限核查。

    • 開通OSS服務。

BucketDisable

BucketDisable

  • 問題原因:Bucket因安全原因被禁用。

  • 解決方案:請檢查帳號是否已欠費,或聯絡支援人員進行安全受限核查。

CnameDenied

The cname belongs to another user

  • 問題原因:該網域名稱已綁定至其他Bucket。

  • 解決方案:請更換網域名稱或通過驗證網域名稱所有權強制綁定網域名稱,驗證網域名稱所有權會解除網域名稱與其他Bucket的綁定關係。請參見綁定自訂網域名進行排查。

InvalidObjectState

The operation is not valid for the object's state

  • 問題原因:下載歸檔類型Object時,以下兩種情況會導致報錯無效的Object狀態。

    • 未提交RestoreObject請求或者上一次提交RestoreObject已逾時。

    • 已提交RestoreObject請求,但資料的RestoreObject操作還沒有完成。

  • 解決方案:請參見RestoreObject進行排查。