ストレージ コンテナーの SAS トークンを作成する

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

Screenshot of a storage url with SAS token appended.

ヒント

マネージド ID には、SAS トークンを HTTP 要求に含めることなく、ストレージ データへのアクセス権を付与する別の方法があります。 「ドキュメント翻訳のマネージド ID」を参照してください。

  • マネージド ID を使用すると、独自のアプリケーションを含む、Microsoft Entra 認証をサポートする任意のリソースへのアクセス権を付与できます。
  • マネージド ID を使用すると、Shared Access Signature Token (SAS) をソース URL とターゲット URL に含めるという要件が置き換えられます。
  • Azure でマネージド ID を使用するために追加コストはかかりません。

SAS トークンのしくみをおおまかに次に示します:

  • アプリケーションが、REST API 要求の一部として SAS トークンを Azure Storage に送信します。

  • ストレージ サービスによって、SAS が有効であることが検証されます。 そうである場合、要求は承認されます。

  • SAS トークンが無効と見なされた場合、要求は拒否されます。 その場合は、エラー コード 403 (禁止) が返されます。

Azure Blob Storage には、次の 3 種類のリソースがあります:

  • ストレージ アカウントは、データ用の一意の名前空間を Azure 内に提供します。
  • データ ストレージ コンテナー はストレージ アカウントに配置され、BLOB のセット (ファイル、テキスト、またはイメージ) を整理します。
  • BLOB はコンテナーに配置され、ファイル、テキスト、画像などのテキストとバイナリ データを格納します。

重要

  • SAS トークンは、ストレージ リソースへのアクセスを許可するため、アカウント キーと同様に保護する必要があります。

  • SAS トークンを使用する操作は、HTTPS 接続のみで実行する必要があり、SAS URI は、HTTPS などのセキュリティ保護された接続のみで配布されなければなりません。

前提条件

作業を開始するには、次のリソースが必要です。

  • アクティブな Azure アカウント。 アカウントがない場合は、無料アカウントを作成することができます。

  • Translator リソース。

  • 標準パフォーマンスAzure Blob Storage アカウント。 また、ストレージ アカウント内にファイルを格納して整理するためのコンテナーを作成する必要があります。 ストレージコンテナーでAzureストレージアカウントを作成する方法がわからない場合は、以下のクイックスタートに従ってください:

    • ストレージ アカウントの作成。 ストレージ アカウントを作成するときに、 [インスタンスの詳細]>[パフォーマンス] フィールドで [Standard] を選択してください。
    • コンテナーを作成する。 コンテナーの作成時に、パブリック アクセス レベルContainer (コンテナとファイルの匿名読み取りアクセス) に設定し、[New Container] ウィンドウに表示します。

Azure portal で BLOB の SAS トークンを作成する

Azure portal に移動し、次のようにコンテナーまたは特定のファイルに進み、引き続きこれらの手順に従います。

コンテナーの SAS トークンを作成する 特定のファイルの SAS トークンを作成する
[ストレージ アカウント][コンテナー][ユーザーコンテナー] [ストレージ アカウント][コンテナー][ユーザーコンテナー][ユーザー file]
  1. コンテナーまたはファイルを右クリックし、ドロップダウン メニューから [SAS の生成] を選択します。

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

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

    • ソースのコンテナーまたはファイルでは、読み取り一覧表示のアクセス権が指定されている必要があります。

    • ターゲットのコンテナーまたはファイルでは、書き込み一覧表示のアクセス権が指定されている必要があります。

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

    • 共有アクセス署名 (SAS) を作成するとき、既定の有効期間は 48 時間です。 48 時間後に、新しいトークンを作成する必要があります。
    • Translator サービス操作に対してストレージ アカウントを使用する期間をより長く設定するよう検討してください。
    • 有効期限の値は、アカウント キーまたはユーザー委任キー署名方法を使用しているかによって決まります。
  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)を付加します。

Azure Storage Explorer を使用して SAS トークンを作成する

Azure Storage Explorer は、Azure クラウド ストレージ リソースをデスクトップから簡単に管理できるようにする無料のスタンドアロン アプリです。

  • Windows、macOS、または Linux の開発環境に Azure Storage Explorer アプリがインストールされている必要があります。

  • Azure Storage Explorer アプリをインストールしたら、ドキュメント翻訳に使用しているストレージ アカウントに接続します。 ストレージ コンテナーまたは特定の BLOB ファイルのトークンを作成するには、これらの手順に従います。

  1. ローカル コンピューターで Azure Storage Explorer アプリを開き、接続されているストレージ アカウントに移動します。

  2. [ストレージ アカウント] ノードを展開し、 [BLOB コンテナー] を選択します。

  3. [BLOB コンテナー] ノードを展開し、ストレージ コンテナーのノードを右クリックして、オプションのメニューを表示します。

  4. オプションのメニューから [Shared Access Signature の取得] を選択します。

  5. [Shared Access Signature] ウィンドウで、次の選択を行います。

    • [アクセス ポリシー] を選択します (既定値は [なし] です)。
    • 署名されたキーの開始有効期限の日時を指定します。 いったん生成された SAS は取り消しができないため、有効期間を短くすることをお勧めします。
    • 開始と有効期限の日時のタイムゾーンを選択します (既定値は [ローカル] です)。
    • 該当するチェック ボックスをオンまたはオフにして、コンテナーのアクセス許可を定義します。
    • 確認し、 [作成] を選択します。
  6. コンテナーのコンテナー名、URIクエリ文字列が新しいウィンドウに表示されます。

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

  8. SAS URLをコンストラクトするには、ストレージサービスのURLにSASトークン(URI)を付加します。

SAS URL を使用してアクセス権を許可する

SAS URL には、クエリ パラメーターの特別なセットが含まれています。 それらのパラメーターは、リソースへのクライアントのアクセス方法を示します。

REST API 要求に SAS URL を含めるには、次の 2 つの方法があります:

  • SOURCEURL と targetURL の値として SAS URL を 使用します。

  • SAS クエリ文字列を既存の sourceURL 値と targetURL 値に追加します。

サンプルの REST API 要求を次に示します。

{
    "inputs": [
        {
            "storageType": "File",
            "source": {
                "sourceUrl": "https://my.blob.core.windows.net/source-en/source-english.docx?sv=2019-12-12&st=2021-01-26T18%3A30%3A20Z&se=2021-02-05T18%3A30%3A00Z&sr=c&sp=rl&sig=d7PZKyQsIeE6xb%2B1M4Yb56I%2FEEKoNIF65D%2Fs0IFsYcE%3D"
            },
            "targets": [
                {
                    "targetUrl": "https://my.blob.core.windows.net/target/try/Target-Spanish.docx?sv=2019-12-12&st=2021-01-26T18%3A31%3A11Z&se=2021-02-05T18%3A31%3A00Z&sr=c&sp=wl&sig=AgddSzXLXwHKpGHr7wALt2DGQJHCzNFF%2F3L94JHAWZM%3D",
                    "language": "es"
                },
                {
                    "targetUrl": "https://my.blob.core.windows.net/target/try/Target-German.docx?sv=2019-12-12&st=2021-01-26T18%3A31%3A11Z&se=2021-02-05T18%3A31%3A00Z&sr=c&sp=wl&sig=AgddSzXLXwHKpGHr7wALt2DGQJHCzNFF%2F3L94JHAWZM%3D",
                    "language": "de"
                }
            ]
        }
    ]
}

これで完了です。 SAS トークンを作成して、クライアントがデータにアクセスする方法を認可する方法を説明しました。

次のステップ