定義預存的存取原則

預存存取原則提供對伺服器端 (SASs) 服務層級共用存取簽章的額外控制層級。 建立儲存的存取原則可用來將共用存取簽章分組,以及對受限於原則的簽章提供額外的限制。

您可以使用預存存取原則來變更簽章的開始時間、到期時間或許可權。 您也可以使用預存存取原則在發行簽章之後撤銷簽章。

下列儲存體資源支援儲存的存取原則:

  • Blob 容器
  • 檔案共用
  • 佇列
  • 資料表

注意

容器上的預存存取原則可以與共享存取簽章相關聯,該簽章會將許可權授與容器本身或它所包含的 Blob。 同樣地,檔案共用上的預存存取原則可以與共享存取簽章相關聯,該簽章會將許可權授與共享本身或其包含的檔案。

使用者委派 SAS 或帳戶 SAS 不支援預存存取原則。

建立或修改預存存取原則

共用存取簽章的存取原則是由簽章的開始時間、到期時間和權限所組成。 您可以指定下列其中一個選項,或加以合併:

  • 簽章 URI 上的所有這些參數,以及預存存取原則上的無參數
  • 這些參數都位於預存存取原則上,而 URI 上則無

不過,您無法在 SAS 權杖和預存存取原則上指定參數。

若要建立或修改儲存的存取原則,請使用會指定存取原則條款的要求本文呼叫資源的 Set ACL 作業 (請參閱設定容器 ACL設定佇列 ACL設定資料表 ACL設定共用 ACL)。 要求的本文包含您選擇的唯一簽署識別碼,長度上限為 64 個字元。 要求的本文也包含存取原則的選擇性參數,如下所示:

<?xml version="1.0" encoding="utf-8"?>  
<SignedIdentifiers>  
  <SignedIdentifier>
    <Id>unique-64-char-value</Id>  
    <AccessPolicy>  
      <Start>start-time</Start>  
      <Expiry>expiry-time</Expiry>  
      <Permission>abbreviated-permission-list</Permission>  
    </AccessPolicy>  
  </SignedIdentifier>  
</SignedIdentifiers>  

您可以一次在容器、資料表、佇列或共用上設定最多五個存取原則。 每個 SignedIdentifier 欄位連同其唯一 Id 欄位各自對應到某個存取原則。 嘗試一次設定五個以上的存取原則,會導致服務傳回狀態碼 400 (不正確的要求) 。

注意

當您在容器、資料表、佇列或共用上建立或更新預存存取原則時,變更最多可能需要 30 秒才會生效。 在此間隔期間,針對與預存存取原則相關聯的共用存取簽章要求,可能會因為狀態碼 403 (禁止) 而失敗,直到存取原則變成作用中為止。

您無法在預存存取原則中指定資料表實體的範圍限制, (startpkstartrkendpkendrk) 。

修改或撤銷預存存取原則

若要修改預存存取原則的參數,您可以針對資源類型呼叫存取控制清單 (ACL) 作業,以取代現有的原則。 在該作業中,指定新的開始時間、到期時間或許可權集。

例如,若現有的原則授與對某項資源的讀取及寫入權限,您便可修改該原則以使日後所有要求都只授與讀取權限。 在此情況下,新原則的已簽署識別碼如 欄位所 ID 指定,會與您所取代之原則的已簽署識別碼相同。

若要撤銷預存存取原則,您可以將其刪除、變更已簽署的識別碼來重新命名,或將到期時間變更為過去的值。 變更簽署識別碼會中斷任何現有的簽章與該儲存的存取原則之間的關聯。 將到期時間變更為過去的值會導致所有相關聯的簽章過期。 刪除或修改預存存取原則會立即影響與其相關聯的所有共用存取簽章。

若要移除單一存取原則,請呼叫資源的 Set ACL 作業。 傳入您想要在容器上維護的已簽署識別碼集。 若要移除資源的所有存取原則,請使用空的要求主體呼叫 Set ACL 作業。

另請參閱