アカウント SAS を作成する

バージョン 2015-04-05 より、Azure Storage では、ストレージ アカウントのレベルで新しい種類の Shared Access Signature (SAS) を作成できます。 アカウント SAS を作成すると、次の操作が可能になります。

  • や 操作など、サービス固有の SAS では現在使用できないサービス レベルの操作へのアクセスを Get/Set Service Properties 委任 Get Service Stats します。

  • ストレージ アカウント内の複数のサービスへのアクセスを一度に委任します。 たとえば、アカウント SAS を使用して、BLOB サービスとファイル サービスの両方のリソースへのアクセスを委任できます。

  • オブジェクト固有の SAS では使用できないコンテナー、キュー、テーブル、およびファイル共有の書き込み操作と削除操作へのアクセスを委任します。

  • 要求を受け入れる IP アドレスまたは IP アドレスの範囲を指定します。

  • 要求を受け入れる HTTP プロトコル (HTTPS または HTTP/HTTPS) を指定します。

保存されているアクセス ポリシーは、現在、アカウント SAS ではサポートされていません。

注意事項

共有アクセス署名は、ストレージ リソースにアクセス許可を付与するキーであり、アカウント キーと同じ方法で保護する必要があります。 SAS を悪意のある、または意図しない用途から保護することが重要です。 SAS の配布は慎重に行い、侵害された SAS を失効させるための計画を用意しておいてください。 Shared Access Signature を使用する操作は HTTPS 接続経由でのみ実行する必要があります。また、Shared Access Signature URI は HTTPS などのセキュリティで保護された接続でのみ配布する必要があります。

アカウント SAS の承認

アカウント SAS は、ストレージ アカウント キーを使用してセキュリティ保護されます。 アカウント SAS を作成するには、クライアント アプリケーションがアカウント キーを所有している必要があります。

資格情報をAzure ADしてコンテナーまたは BLOB の SAS をセキュリティで保護するには、ユーザー委任 SAS を作成します。 詳細については、「ユーザー委任 SAS を作成する」を参照してください。

アカウント SAS URI の構築

アカウント SAS URI は、SAS がアクセスを委任するリソースの URI と SAS トークンで構成されます。 SAS トークンは、リソースに対する要求を承認するために必要なすべての情報を含むクエリ文字列です。また、アクセスに使用できるサービス、リソース、およびアクセス許可、および署名が有効な時間間隔を指定するために必要です。

アカウント SAS パラメーターの指定

次の表では、SAS トークンに必要なパラメーターと省略可能なパラメーターについて説明します。

SAS クエリ パラメーター 説明
api-version 任意。 アカウント SAS URI を使用して行われた要求を実行するために使用するストレージ サービスのバージョンを指定します。
SignedVersion (sv) 必須。 このアカウント SAS で行われた要求を承認するために使用する署名付きストレージ サービスのバージョンを指定します。 バージョン 2015-04-05 以降に設定する必要があります。
SignedServices (ss) 必須。 アカウント SAS を使用してアクセスできる署名済みサービスを指定します。 次の値を指定できます。

- BLOB ( b )
- Queue ( q )
- Table ( t )
- File ( f )

値を組み合わせて、複数のサービスにアクセスできます。 たとえば、 ss=bf は BLOB エンドポイントとファイル エンドポイントへのアクセスを指定します。
SignedResourceTypes (srt) 必須。 アカウント SAS でアクセスできる署名付きリソースの種類を指定します。

- サービス ( ): サービス レベルの API へのアクセス (例: サービスプロパティの取得/設定、サービス統計の取得、コンテナー s /キュー/テーブル/共有の一覧表示)
- コンテナー ( ): コンテナー レベルの API へのアクセス (例: コンテナーの作成/削除、キューの作成/削除、テーブルの作成/削除、共有の作成/削除、BLOB/ファイルとディレクトリの一覧表示 c )
- オブジェクト ( ): BLOB、キュー メッセージ、テーブル エンティティ、ファイル (例: PUT BLOB、クエリ エンティティ、メッセージの取得、ファイルの作成など) のオブジェクト レベルの API への o アクセス

値を組み合わせて、複数のリソースの種類にアクセスできます。 たとえば、 は srt=sc 、サービスリソースとコンテナー リソースへのアクセスを指定します。
SignedPermission (sp) 必須。 アカウント SAS の署名済みアクセス許可を指定します。 権限は、指定された署名付きリソースの種類と一致する場合にのみ有効です。それ以外の場合は無視されます。

- 読み取り ( r ): すべての署名付きリソースの種類 (サービス、コンテナー、およびオブジェクト) に対して有効です。 指定したリソースの種類に対する読み取りアクセス許可を許可します。
- 書き込み ( w ): すべての署名付きリソースの種類 (サービス、コンテナー、およびオブジェクト) に対して有効です。 指定したリソースの種類に対する書き込みアクセス許可を許可します。
- Delete ( d ): キュー メッセージを除き、コンテナーとオブジェクトのリソースの種類に対して有効です。
- 永続的な削除 ( y ): BLOB のオブジェクト リソースの種類でのみ有効です。
- List ( l ): サービスとコンテナーのリソースの種類でのみ有効です。
- Add ( ): 次のオブジェクト リソースの種類でのみ有効です:キュー メッセージ、テーブル エンティティ、および a 追加 BLOB。
- 作成 ( c ): 次のオブジェクト リソースの種類でのみ有効です: BLOB とファイル。 ユーザーは新しい BLOB またはファイルを作成できますが、既存の BLOB またはファイルを上書きできない場合があります。
- 更新 ( u ): 次のオブジェクト リソースの種類でのみ有効です: キュー メッセージとテーブル エンティティ。
- Process ( p ): 次のオブジェクト リソースの種類でのみ有効です: キュー メッセージ。
SignedStart (st) 任意。 SAS が有効になる時刻。受け入れ可能な ISO 8601 UTC 形式の 1 つで表されます。 省略した場合、開始時刻は、ストレージ サービスが要求を受信した時刻と見なされます。 許容される UTC 形式の詳細については、「DateTime 値の書式設定 」を参照してください
SignedExpiry (se) 必須。 共有アクセス署名が無効になる時刻。受け入れ可能な ISO 8601 UTC 形式の 1 つで表されます。 許容される UTC 形式の詳細については、「DateTime 値の書式設定 」を参照してください
SignedIP (sip) 任意。 要求を受け入れる IP アドレスまたは IP アドレスの範囲を指定します。 範囲を指定する場合は、範囲が含まれています。

たとえば、sip=168.1.5.65 または sip=168.1.5.60-168.1.5.70 です。
SignedProtocol (spr) 任意。 アカウント SAS で行われた要求に対して許可されるプロトコルを指定します。 指定できる値は、HTTPS と HTTP ( https,http ) または HTTPS のみ ( ) です https 。 既定値は https,http です。

HTTP のみの値は許可されていないことに注意してください。
Signature (sig) 必須。 URI の署名部分は、Shared Access Signature で行われた要求を承認するために使用されます。

文字列から署名は、要求を承認するために検証する必要があるフィールドから構築された一意の文字列です。 署名は、SHA256 アルゴリズムを使用して署名対象文字列とキーを計算した後に、Base 64 エンコードを使用してエンコードした HMAC 値です。

署名文字列の構築

アカウント SAS の署名文字列を構築するには、最初に要求を構成するフィールドから文字列間を構築し、次に文字列を UTF-8 としてエンコードし、HMAC-SHA256 アルゴリズムを使用して署名を計算します。 署名対象文字列に含まれるフィールドは、URL でデコードされている必要があります。

アカウント SAS の文字列から署名を作成するには、次の形式を使用します。

StringToSign = accountname + "\n" +  
    signedpermissions + "\n" +  
    signedservice + "\n" +  
    signedresourcetype + "\n" +  
    signedstart + "\n" +  
    signedexpiry + "\n" +  
    signedIP + "\n" +  
    signedProtocol + "\n" +  
    signedversion + "\n"  
  

操作別のアカウント sas アクセス許可

次のセクションの表は、各サービスのさまざまな API と、各操作でサポートされている署名付きリソースの種類と署名付きアクセス許可を示しています。

Blob service

次の表に、Blob service操作の一覧を示し、これらの操作へのアクセスを委任するために指定する署名付きリソースの種類と署名されたアクセス許可を示します。

操作 署名済みサービス 署名付きリソースの種類 署名済みアクセス許可
List Containers BLOB (b) サービス (s) リスト (l)
Get Blob Service Properties BLOB (b) サービス (s) 読み取り (r)
Set Blob Service Properties BLOB (b) サービス (s) 書き込み (w)
Get Blob Service Stats BLOB (b) サービス (s) 読み取り (r)
コンテナーの作成 BLOB (b) コンテナー (c) Create(c) または Write (w)
コンテナーのプロパティの取得 BLOB (b) コンテナー (c) 読み取り (r)
Get Container Metadata BLOB (b) コンテナー (c) 読み取り (r)
Set Container Metadata BLOB (b) コンテナー (c) 書き込み (w)
Lease Container BLOB (b) コンテナー (c) 書き込み (w) または削除 (d)1
Delete Container BLOB (b) コンテナー (c) 削除 (d)
BLOBs の一覧 BLOB (b) コンテナー (c) リスト (l)
Put BLOB (新しいブロック BLOB の作成) BLOB (b) オブジェクト (o) 作成 (c) または書き込み (w)
PUT BLOB (既存のブロック BLOB を上書きする) BLOB (b) オブジェクト (o) 書き込み (w)
Put BLOB (新しいページ BLOB の作成) BLOB (b) オブジェクト (o) 作成 (c) または書き込み (w)
Put BLOB (既存のページ BLOB を上書きする) BLOB (b) オブジェクト (o) 書き込み (w)
Get Blob BLOB (b) オブジェクト (o) 読み取り (r)
BLOB のプロパティの取得 BLOB (b) オブジェクト (o) 読み取り (r)
Set Blob Properties BLOB (b) オブジェクト (o) 書き込み (w)
BLOB のメタデータの取得 BLOB (b) オブジェクト (o) 読み取り (r)
Set Blob Metadata BLOB (b) オブジェクト (o) 書き込み (w)
BLOB タグの取得 BLOB (b) オブジェクト (o) タグ (t)
BLOB タグの設定 BLOB (b) オブジェクト (o) タグ (t)
タグによる BLOB の検索 BLOB (b) オブジェクト (o) 検索 (f)
Delete Blob BLOB (b) オブジェクト (o) 削除 (d)
スナップショット/バージョンを完全に削除する BLOB (b) オブジェクト (o) 永続的な削除 (y)
Lease Blob BLOB (b) オブジェクト (o) 書き込み (w) または削除 (d)1
Snapshot Blob BLOB (b) オブジェクト (o) 作成 (c) または書き込み (w)
BLOB のコピー (宛先は新しい BLOB) BLOB (b) オブジェクト (o) 作成 (c) または書き込み (w)
BLOB のコピー (宛先は既存の BLOB) BLOB (b) オブジェクト (o) 書き込み (w)
増分コピー BLOB (b) オブジェクト (o) 作成 (c) または書き込み (w)
Abort Copy Blob BLOB (b) オブジェクト (o) 書き込み (w)
Put Block BLOB (b) オブジェクト (o) 書き込み (w)
Put Block List (新しい BLOB の作成) BLOB (b) オブジェクト (o) 書き込み (w)
Put Block List (既存の BLOB の更新) BLOB (b) オブジェクト (o) 書き込み (w)
Get Block List BLOB (b) オブジェクト (o) 読み取り (r)
Put Page BLOB (b) オブジェクト (o) 書き込み (w)
ページ範囲の取得 BLOB (b) オブジェクト (o) 読み取り (r)
Append Block BLOB (b) オブジェクト (o) 追加 (a) または書き込み (w)
クリア ページ BLOB (b) オブジェクト (o) 書き込み (w)

注意

この Delete アクセス許可により、バージョン 2017-07-29 以降の BLOB またはコンテナーのリースを破損できます。

Queue サービス

次の表に、Queue サービス操作の一覧を示し、これらの操作へのアクセスを委任するために指定する署名付きリソースの種類と署名されたアクセス許可を示します。

操作 署名済みサービス 署名付きリソースの種類 署名済みアクセス許可
Get Queue Service Properties Queue (q) サービス (s) 読み取り (r)
Set Queue Service Properties Queue (q) サービス (s) 書き込み (w)
キューを一覧表示する Queue (q) サービス (s) リスト (l)
Get Queue Service Stats Queue (q) サービス (s) 読み取り (r)
キューの作成 Queue (q) コンテナー (c) Create(c) または Write (w)
キューの削除 Queue (q) コンテナー (c) 削除 (d)
Get Queue Metadata Queue (q) コンテナー (c) 読み取り (r)
Set Queue Metadata Queue (q) コンテナー (c) 書き込み (w)
Put Message Queue (q) オブジェクト (o) 追加 (a)
メッセージの取得 Queue (q) オブジェクト (o) プロセス (p)
Peek Messages キュー (q) オブジェクト (o) 読み取り (r)
メッセージの削除 キュー (q) オブジェクト (o) プロセス (p)
Clear Messages キュー (q) オブジェクト (o) 削除 (d)
更新メッセージ キュー (q) オブジェクト (o) 更新 (u)

Table service

次の表に、Table service 操作と、それらの操作へのアクセスを委任するために指定する署名済みリソースの種類と署名されたアクセス許可の一覧を示します。

操作 署名済みサービス 署名されたリソースの種類 署名されたアクセス許可
Get Table Service Properties テーブル (t) サービス 読み取り (r)
Set Table Service Properties テーブル (t) サービス 書き込み (w)
Table Service の統計情報を取得する テーブル (t) サービス 読み取り (r)
テーブルの照会 テーブル (t) コンテナー (c) リスト (l)
テーブルの作成 テーブル (t) コンテナー (c) 作成 (c) または書き込み (w)
テーブルの削除 テーブル (t) コンテナー (c) 削除 (d)
エンティティのクエリ テーブル (t) オブジェクト (o) 読み取り (r)
エンティティの挿入 テーブル (t) オブジェクト (o) (A) を追加する
Insert Or Merge Entity テーブル (t) オブジェクト (o) 追加 (a) および更新 (u)1
Insert Or Replace Entity テーブル (t) オブジェクト (o) 追加 (a) および更新 (u)1
エンティティの更新 テーブル (t) オブジェクト (o) 更新 (u)
エンティティの統合 テーブル (t) オブジェクト (o) 更新 (u)
エンティティの削除 テーブル (t) オブジェクト (o) 削除 (d)

1Table Service での upsert 操作には、Add 権限と Update 権限が必要です。

ファイル サービス

次の表に、ファイルサービス操作の一覧と、それらの操作へのアクセスを委任するために指定する署名済みリソースの種類と署名済みアクセス許可を示します。

操作 署名済みサービス 署名されたリソースの種類 署名されたアクセス許可
共有のリスト ファイル (f) サービス リスト (l)
ファイル サービスのプロパティの取得 ファイル (f) サービス 読み取り (r)
Set File Service Properties ファイル (f) サービス 書き込み (w)
共有の統計の取得 ファイル (f) コンテナー (c) 読み取り (r)
共有を作成する ファイル (f) コンテナー (c) 作成 (c) または書き込み (w)
スナップショット共有 (Snapshot Share) ファイル (f) コンテナー (c) 作成 (c) または書き込み (w)
共有のプロパティの取得 ファイル (f) コンテナー (c) 読み取り (r)
共有のプロパティの設定 ファイル (f) コンテナー (c) 書き込み (w)
共有メタデータの取得 ファイル (f) コンテナー (c) 読み取り (r)
共有メタデータの設定 ファイル (f) コンテナー (c) 書き込み (w)
共有の削除 ファイル (f) コンテナー (c) 削除 (d)
ディレクトリとファイルのリスト ファイル (f) コンテナー (c) リスト (l)
Create Directory ファイル (f) オブジェクト (o) 作成 (c) または書き込み (w)
ディレクトリ プロパティの取得 ファイル (f) オブジェクト (o) 読み取り (r)
ディレクトリ メタデータの取得 ファイル (f) オブジェクト (o) 読み取り (r)
ディレクトリのメタデータの設定 ファイル (f) オブジェクト (o) 書き込み (w)
ディレクトリの削除 ファイル (f) オブジェクト (o) 削除 (d)
ファイルの作成 (新しい作成) ファイル (f) オブジェクト (o) 作成 (c) または書き込み (w)
ファイルの作成 (既存のファイルを上書き) ファイル (f) オブジェクト (o) 書き込み (w)
Get File ファイル (f) オブジェクト (o) 読み取り (r)
ファイル プロパティの取得 ファイル (f) オブジェクト (o) 読み取り (r)
ファイルのメタデータを取得する ファイル (f) オブジェクト (o) 読み取り (r)
Set File Metadata ファイル (f) オブジェクト (o) 書き込み (w)
ファイルの削除 ファイル (f) オブジェクト (o) 削除 (d)
Put Range ファイル (f) オブジェクト (o) 書き込み (w)
List Ranges ファイル (f) オブジェクト (o) 読み取り (r)
Abort Copy File ファイル (f) オブジェクト (o) 書き込み (w)
ファイルのコピー ファイル (f) オブジェクト (o) 書き込み (w)
範囲のクリア ファイル (f) オブジェクト (o) 書き込み (w)

アカウント SAS URI の例

次の例は、BLOB に対する読み取りおよび書き込みアクセス許可を提供するアカウント SAS URI を示しています。 次の表は、URI の各部分を分解します。

https://myaccount.blob.core.windows.net/?restype=service&comp=properties&sv=2019-02-02&ss=bf&srt=s&st=2019-08-01T22%3A18%3A26Z&se=2019-08-10T02%3A23%3A26Z&sr=b&sp=rw&sip=168.1.5.60-168.1.5.70&spr=https&sig=F%6GRVAZ5Cdj2Pw4tgU7IlSTkWgn7bUkkAg8P6HESXwmf%4B
Name SAS の部分 説明
リソース URI https://myaccount.blob.core.windows.net/?restype=service&comp=properties サービスエンドポイント。サービスプロパティを取得するためのパラメーター (GET で呼び出された場合) またはサービスプロパティの設定 (SET で呼び出された場合) のパラメーターが含まれています。 [署名済みサービス] フィールド () の値に基づいて ss 、この SAS を Blob ストレージまたは Azure Files と共に使用できます。
ストレージ サービスのバージョン sv=2019-02-02 ストレージ サービス バージョン 2012-02-12 以降では、このパラメーターは、使用するバージョンを示します。
サービス ss=bf SAS は BLOB およびファイル サービスに適用されます。
リソースの種類 srt=s SAS は、サービスレベルの操作に適用されます。
開始時刻 st=2019-08-01T22%3A18%3A26Z UTC 時間で指定。 SAS をすぐに有効にする場合は、開始時刻を省略します。
有効期限 se=2019-08-10T02%3A23%3A26Z UTC 時間で指定。
アクセス許可 sp=rw この許可は、読み書きの操作へのアクセスを付与します。
IP 範囲 sip=168.1.5.60-168.1.5.70 要求が受け入れられる IP アドレスの範囲です。
Protocol spr=https HTTPS を使用する要求のみが許可されます。
署名 sig=F%6GRVAZ5Cdj2Pw4tgU7IlSTkWgn7bUkkAg8P6HESXwmf%4B BLOB へのアクセスを承認するために使用します。 署名は、SHA256 アルゴリズムを使用して署名対象文字列とキーを計算した後に、Base 64 エンコードを使用してエンコードした HMAC 値です。

許可はサービス レベルに制限されているため、この SAS を使用してアクセスできる操作は、Get Blob Service Properties (読み取り) および Set Blob Service Properties (書き込み) になります。 ただし、別のリソース URI に同じ SAS トークンを使用し、 Get BLOB Service Stats (読み取り) へのアクセスを委任することもできます。

関連項目