保存されているアクセス ポリシーの定義

保存されているアクセス ポリシーを使用すると、サーバー側でのサービス レベルの共有アクセス署名 (SAS) をさらに制御できます。 保存されているアクセス ポリシーを設定することで、共有アクセス署名をグループ化し、ポリシーによって規定された署名を詳細に制限できます。 保存されているアクセス ポリシーを使用して、署名の開始時刻、有効期限、またはアクセス許可を変更したり、発行済みの署名を取り消したりすることができます。

次のストレージ リソースで、保存されているアクセス ポリシーがサポートされます。

  • BLOB コンテナー
  • ファイル共有
  • キュー
  • テーブル

注意

コンテナーに保存されたアクセス ポリシーは、コンテナー自体またはコンテナーに含まれる BLOB に権限を付与する共有アクセス署名に関連付けることができます。 同様に、ファイル共有に関する保存されているアクセス ポリシーでは、共有自体または共有に含まれているファイルへのアクセス許可を付与している共有アクセス署名に関連付けることができます。

保存されているアクセスポリシーは、ユーザー委任の SAS またはアカウント SAS ではサポートされていません。

保存されているアクセスポリシーの作成または変更

共有アクセス署名のアクセス ポリシーは、開始日時、有効期限、および署名のアクセス許可で構成されます。 これらのパラメーターはすべて、署名 URI に対して指定することも、保存されているアクセスポリシー内では何も指定できません。すべてが保存されているアクセスポリシーで、URI にはありません。または、その2つの組み合わせ。 ただし、SAS トークンと保存されているアクセスポリシーの両方で特定のパラメーターを指定することはできません。

保存されているアクセスポリシーを作成または変更するには、リソースに対して ACL の設定操作を呼び出します (「 Set CONTAINER acl」、「set Queueacl」、「set Table acl」、または「set Share 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>  

コンテナー、テーブル、キュー、または共有には、一度に最大5つのアクセスポリシーを設定できます。 各 SignedIdentifier フィールドが一意の Id フィールドを持ち、1 つのアクセス ポリシーに対応しています。 一度に 5 つを超えるアクセス ポリシーを設定しようとすると、サービスはステータス コード 400 (Bad Request) を返します。

注意

格納されているアクセスポリシーをコンテナー、テーブル、キュー、または共有に設定した場合、有効になるまでに最大で30秒かかることがあります。 この期間中、保存されているアクセスポリシーに関連付けられている共有アクセス署名に対する要求は、アクセスポリシーがアクティブになるまで、ステータスコード 403 (禁止) で失敗する可能性があります。

テーブル エンティティ範囲の制約 (startpkstartrkendpk、および endrk) は、保存されているアクセス ポリシーで指定することはできません。

保存されているアクセスポリシーの変更または取り消し

保存されているアクセス ポリシーのパラメーターを変更するには、新しい開始時刻、有効期限、または一連のアクセス許可を指定して、リソースの種類に対するアクセス制御リスト操作を呼び出し、既存のポリシーを置き換えます。 たとえば、既存のポリシーがリソースに対する読み取りおよび書き込みアクセスを許可している場合、以後のすべての要求に対して読み取りアクセスのみを許可するように変更できます。 この場合、ID フィールドに指定された新しいポリシーの署名対象の識別子は、置き換えるポリシーの署名対象の識別子と同じです。

保存されているアクセスポリシーを取り消すには、そのポリシーを削除するか、署名された識別子を変更して名前を変更するか、有効期限を過去の値に変更します。 署名対象の識別子を変更すると、既存の署名と保存されているアクセス ポリシーとの関連付けが解除されます。 有効期限を過去の値に変更すると、関連付けられているすべての署名が期限切れになります。 保存されているアクセスポリシーを削除または変更すると、それに関連付けられているすべての共有アクセス署名に直ちに影響が及びます。

単一のアクセスポリシーを削除するには、リソースの操作を呼び出して、 Set ACL コンテナーで保持する一連の署名済み識別子を渡します。 リソースからすべてのアクセス ポリシーを削除するには、空の要求本文を指定して Set ACL 操作を呼び出します。

関連項目