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

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

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

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

Note

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

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

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

共有アクセス署名のアクセス ポリシーは、開始日時、有効期限、および署名のアクセス許可で構成されます。 これらすべてのパラメーターを署名 URL で指定し、保存されているアクセス ポリシー内では何も指定しないか、すべてを保存されているアクセス ポリシーで指定し、URI では何も指定しないか、またはこの 2 つの組み合わせを使用できます。 ただし、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>  

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

注意

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

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

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

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

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

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

関連項目