定義預存的存取原則

預存存取原則可對伺服器端 (SAS) ,提供對服務層級共用存取簽章的額外控制層級。 建立儲存的存取原則可用來將共用存取簽章分組,以及對受限於原則的簽章提供額外的限制。 您可以使用儲存的存取原則變更簽章的開始時間、到期時間或權限,或是在發出簽章後將它撤銷。

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

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

注意

請注意,在容器方面,儲存的存取原則可與對容器本身或其包含的 Blob 授與權限的共用存取簽章相關聯。 同樣地,在檔案共用上儲存的存取原則可以與共享存取簽章相關聯,以授與共享本身或其包含之檔案的許可權。

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

建立或修改儲存的存取原則

共用存取簽章的存取原則是由簽章的開始時間、到期時間和權限所組成。 您可以在簽章 URI 上指定上述所有參數,並在預存存取原則中指定 none。在預存存取原則上,且 URI 為 none;或這兩者的組合。 不過,您無法在 SAS 權杖與預存存取原則上指定指定的參數。

若要建立或修改儲存的存取原則,請呼叫資源 (的設定 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)。

修改或撤銷儲存的存取原則

若要修改儲存的存取原則的參數,您可以呼叫個別資源類型的存取控制清單作業,以取代現有的原則、指定新的開始時間、到期時間或權限集。 例如,若現有的原則授與對某項資源的讀取及寫入權限,您便可修改該原則以使日後所有要求都只授與讀取權限。 在此情況下,新原則的簽署識別碼 (指定於 ID 欄位) 將與您所取代之原則的簽署識別碼相同。

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

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

另請參閱