ストレージ コンテナー用の SAS トークン
Azure portal を使って、ユーザー委任と Shared Access Signature (SAS) トークンを作成する方法を説明します。 ユーザー委任 SAS トークンは、Microsoft Entra 資格情報で保護されます。 SAS トークンを使用すると、Azure ストレージ アカウント内のリソースへ安全に委任アクセスができるようになります。
ヒント
ロールベースのアクセス制御 (マネージド ID) でストレージ データへのアクセスを許可するには、SAS トークンを HTTP 要求に含める必要のない別の方法があります。
- マネージド ID を使用すると、独自のアプリケーションを含む、Microsoft Entra 認証をサポートする任意のリソースへのアクセス権を付与できます。
- マネージド ID を使用すると、Shared Access Signature Token (SAS) をソース URL とターゲット URL に含めるという要件が置き換えられます。
- Azure でマネージド ID を使用するために追加コストはかかりません。
SAS トークンのしくみをおおまかに次に示します:
アプリケーションが、REST API 要求の一部として SAS トークンを Azure Storage に送信します。
ストレージ サービスによって SAS が有効であることが確認されると、要求が承認されます。
SAS が無効と見なされた場合、要求が拒否され、エラー コード 403 (Forbidden) が返されます。
Azure Blob Storage には、次の 3 種類のリソースがあります:
- ストレージ アカウントは、データ用の一意の名前空間を Azure 内に提供します。
- データ ストレージ コンテナー はストレージ アカウントに配置され、BLOB のセット (ファイル、テキスト、またはイメージ) を整理します。
- BLOB はコンテナーに配置され、ファイル、テキスト、画像などのテキストとバイナリ データを格納します。
重要
SAS トークンは、ストレージ リソースへのアクセスを許可するため、アカウント キーと同様に保護する必要があります。
SAS トークンを使用する操作は、HTTPS 接続のみで実行する必要があり、SAS URI は、HTTPS などのセキュリティ保護された接続のみで配布されなければなりません。
前提条件
作業を開始するには、次のリソースが必要です。
アクティブな Azure アカウント。 アカウントがない場合は、無料アカウントを作成できます。
Azure AI Language リソース。
標準パフォーマンスの Azure Blob Storage アカウント。 また、ストレージ アカウント内にファイルを格納して整理するためのコンテナーを作成する必要があります。 ストレージコンテナーでAzureストレージアカウントを作成する方法がわからない場合は、以下のクイックスタートに従ってください:
- ストレージ アカウントの作成。 ストレージ アカウントを作成するときに、 [インスタンスの詳細]>[パフォーマンス] フィールドで [Standard] を選択してください。
- コンテナーを作成する。 コンテナーの作成時に、パブリック アクセス レベル を Container (コンテナとファイルの匿名読み取りアクセス) に設定し、[New Container] ウィンドウに表示します。
Azure portal で BLOB の SAS トークンを作成する
Azure portal に移動し、次のようにコンテナーまたは特定のファイルに進み、引き続きこれらの手順に従います。
ワークフロー: 自分のストレージ アカウント → コンテナー → 自分のコンテナー → 自分のファイル
コンテナーまたはファイルを右クリックし、ドロップダウン メニューから [SAS の生成] を選択します。
[署名方法] → [ユーザーの委任キー] を選択します。
該当するチェック ボックスをオンまたはオフにして、アクセス許可を定義します:
ソース ファイルでは、読み取りと一覧表示のアクセス権を指定する必要があります。
ターゲット ファイルでは、書き込みと一覧表示のアクセス権を指定する必要があります。
署名されたキーの開始と有効期限の時刻を指定します。
- 共有アクセス署名 (SAS) を作成するとき、既定の有効期間は 48 時間です。 48 時間後に、新しいトークンを作成する必要があります。
- Language サービス操作用のストレージ アカウントの使用期間は、長めに設定することを検討してください。
- 有効期限の値は、使用している署名方法がアカウント キーか、ユーザー委任キーかによって決まります。
- アカウント キー: 時間の上限はありません。ただし、ベスト プラクティスとして、間隔を制限し、侵害を最小限に抑えるように、有効期限ポリシーを構成することをお勧めします。 共有アクセス署名の有効期限ポリシーを構成する。
- ユーザー委任キー: 有効期限の値は、SAS トークンの作成から最大 7 日間です。 ユーザー委任キーの有効期限が切れると SAS は無効になるため、有効期限が 7 日を超える SAS でも、7 日間だけ有効になります。 詳しくは、「Microsoft Entra 資格情報を使用して SAS をセキュリティで保護する」を "参照" してください。
[使用できる IP アドレス] フィールドは省略可能であり、要求を受け入れる IP アドレスまたは IP アドレスの範囲を指定します。 要求の IP アドレスが SAS トークンで指定された IP アドレスまたはアドレスの範囲と一致しない場合は、認可されません。 IP アドレスまたは IP アドレスの範囲は、プライベート IP ではなくパブリック IP とする必要があります。 詳細については、「IP アドレスまたは IP 範囲を指定する」を "参照してください"。
[許可されるプロトコル] フィールドは省略可能であり、SAS を使用して行われた要求で許可されるプロトコルを指定します。 既定値は HTTPS です。
確認してから、 [SAS トークンおよび URL を生成] を選択します。
BLOB SAS トークンのクエリ文字列と BLOB SAS URL が、ウィンドウの下部に表示されます。
BLOB SAS トークンと URL の値をコピーしてセキュリティで保護された場所に貼り付けます。 これらは 1 回だけ表示され、ウィンドウを閉じると取得できなくなります。
SAS URLをコンストラクトするには、ストレージサービスのURLにSASトークン(URI)を付加します。
SAS URL を使用してアクセス権を許可する
SAS URL には、クエリ パラメーターの特別なセットが含まれています。 それらのパラメーターは、リソースへのクライアントのアクセス方法を示します。
REST API 要求に SAS URL を含めるには、次の 2 つの方法があります:
SOURCEURL と targetURL の値として SAS URL を 使用します。
SAS クエリ文字列を既存の sourceURL 値と targetURL 値に追加します。
サンプルの REST API 要求を次に示します。
{
"analysisInput": {
"documents": [
{
"id": "doc_0",
"language": "en",
"source": {
"location": "myaccount.blob.core.windows.net/sample-input/input.pdf?{SAS-Token}"
},
"target": {
"location": "https://myaccount.blob.core.windows.net/sample-output?{SAS-Token}"
}
}
]
}
}
これで完了です。 SAS トークンを作成して、クライアントがデータにアクセスする方法を認可する方法を説明しました。