ストレージ コンテナー用の SAS トークン

Azure portal を使って、ユーザー委任と Shared Access Signature (SAS) トークンを作成する方法を説明します。 ユーザー委任 SAS トークンは、Microsoft Entra 資格情報で保護されます。 SAS トークンを使用すると、Azure ストレージ アカウント内のリソースへ安全に委任アクセスができるようになります。

ストレージ URI と SAS トークンのスクリーンショット。

ヒント

ロールベースのアクセス制御 (マネージド 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 に移動し、次のようにコンテナーまたは特定のファイルに進み、引き続きこれらの手順に従います。

ワークフロー: 自分のストレージ アカウントコンテナー自分のコンテナー自分のファイル

  1. コンテナーまたはファイルを右クリックし、ドロップダウン メニューから [SAS の生成] を選択します。

  2. [署名方法][ユーザーの委任キー] を選択します。

  3. 該当するチェック ボックスをオンまたはオフにして、アクセス許可を定義します:

    • ソース ファイルでは、読み取り一覧表示のアクセス権を指定する必要があります。

    • ターゲット ファイルでは、書き込み一覧表示のアクセス権を指定する必要があります。

  4. 署名されたキーの開始有効期限の時刻を指定します。

    • 共有アクセス署名 (SAS) を作成するとき、既定の有効期間は 48 時間です。 48 時間後に、新しいトークンを作成する必要があります。
    • Language サービス操作用のストレージ アカウントの使用期間は、長めに設定することを検討してください。
    • 有効期限の値は、使用している署名方法アカウント キーか、ユーザー委任キーかによって決まります。
  5. [使用できる IP アドレス] フィールドは省略可能であり、要求を受け入れる IP アドレスまたは IP アドレスの範囲を指定します。 要求の IP アドレスが SAS トークンで指定された IP アドレスまたはアドレスの範囲と一致しない場合は、認可されません。 IP アドレスまたは IP アドレスの範囲は、プライベート IP ではなくパブリック IP とする必要があります。 詳細については、「IP アドレスまたは IP 範囲を指定する」を "参照してください"。

  6. [許可されるプロトコル] フィールドは省略可能であり、SAS を使用して行われた要求で許可されるプロトコルを指定します。 既定値は HTTPS です。

  7. 確認してから、 [SAS トークンおよび URL を生成] を選択します。

  8. BLOB SAS トークンのクエリ文字列と BLOB SAS URL が、ウィンドウの下部に表示されます。

  9. BLOB SAS トークンと URL の値をコピーしてセキュリティで保護された場所に貼り付けます。 これらは 1 回だけ表示され、ウィンドウを閉じると取得できなくなります。

  10. 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 トークンを作成して、クライアントがデータにアクセスする方法を認可する方法を説明しました。

次のステップ