Azure ストレージ アカウントに接続する

完了

アプリケーションに必要なクライアント ライブラリを追加し、Azure ストレージ アカウントに接続する準備が整いました。

ストレージ アカウントでデータを操作するには、ご利用のアプリには次の 2 つのデータが必要になります。

  • アクセス キー
  • REST API エンドポイント

セキュリティ アクセス キー

各ストレージ アカウントには、ストレージ アカウントをセキュリティで保護するために使用される一意のアクセス キーが 2 つあります。 お使いのアプリで複数のストレージ アカウントに接続する必要がある場合、お使いのアプリには各ストレージ アカウントのアクセス キーが必要になります。

An illustration showing an application connected to two different storage accounts in the cloud. Each storage account is accessible with a unique key.

REST API エンドポイント

ストレージ アカウントに対する認証用のアクセス キーに加え、アプリでは、REST 要求を発行するためのストレージ サービス エンドポイントを認識する必要があります。

REST エンドポイントは、ストレージ アカウントの名前、データ型、および既知のドメインを組み合わせたものです。 例:

データ型 エンドポイント例
BLOB https://[name].blob.core.windows.net/
キュー https://[name].queue.core.windows.net/
テーブル https://[name].table.core.windows.net/
ファイル https://[name].file.core.windows.net/

Azure にカスタム ドメインを関連付けている場合は、エンドポイント用のカスタム ドメイン URL を作成することもできます。

接続文字列

アプリケーション内でアクセス キーとエンドポイント URL を処理するには、ストレージ アカウント接続文字列を使用するのが最もシンプルな方法です。 接続文字列では、必要とされるすべての接続情報が単一のテキスト文字列内に提供されます。

Azure Storage の接続文字列は次の例のようなものとなりますが、アクセス キーとアカウント名には、お使いの特定のストレージ アカウントのものを使用します。

DefaultEndpointsProtocol=https;AccountName={your-storage};
   AccountKey={your-access-key};
   EndpointSuffix=core.windows.net

セキュリティ

アクセス キーは、自分のストレージ アカウントにアクセスを許可するために重要なので、自分のストレージ アカウントにアクセスさせたくないシステムまたはユーザーには、知らせないようにする必要があります。 アクセス キーは、ご利用のコンピューターにアクセスするためのユーザー名とパスワードと同じです。

通常、ストレージ アカウントの接続情報は、環境変数、データベース、または構成ファイル内に格納されます。

重要

この情報を構成ファイルに格納すると、そのファイルをソース管理に含めてパブリック リポジトリに格納する場合に危険である可能性があります。 これはよくある間違いであり、パブリック リポジトリの自分のソース コードを誰にでも見られ、自分のストレージ アカウントの接続情報を知られてしまう可能性があることを意味します。

各ストレージ アカウントには、アクセス キーが 2 つあります。 これは、ストレージ アカウントを安全に保つためのセキュリティ上のベスト プラクティスの一部として、キーを定期的にローテーション (再生成) できるようにするためです。 これは、Azure portal や、Azure CLI または PowerShell コマンド ライン ツールから行うことができます。

キーをローテーションすると元のキーの値はすぐに無効になり、キーを不正に取得したユーザーのアクセスが取り消されます。 2 つのキーがサポートされているため、キーを使用するアプリケーションでダウンタイムを発生させることなく、キーのローテーションを行うことができます。 アプリで別のアクセス キーを使用するように切り替えて、その間にもう 1 つのキーを再生成します。 このストレージ アカウントを使用するアプリが複数ある場合、この手法をサポートするために、それらのアプリではすべて同じキーを使用する必要があります。 基本的な考え方を以下に示します。

  1. ストレージ アカウントのセカンダリ アクセス キーを参照するように、アプリケーション コードの接続文字列を更新します。
  2. Azure portal またはコマンド ライン ツールを使って、ストレージ アカウントのプライマリ アクセス キーを再生成します。
  3. 新しいプライマリ アクセス キーを参照するように、コードの接続文字列を更新します。
  4. 同様に、セカンダリ アクセス キーを再生成します。

ヒント

パスワードを変更するのと同じように、アクセス キーを定期的にローテーションして確実にプライベートな状態を保つことを強くお勧めします。 サーバー アプリケーションでキーを使う場合は、Azure Key Vault を利用してアクセス キーを自動的に格納できます。 Key Vault には、ストレージ アカウントに直接同期し、キーを定期的に自動でローテーションするためのサポートが含まれています。 Key Vault を使用すると、セキュリティ層が追加されるため、ご利用のアプリでアクセス キーを直接操作する必要はありません。

共有アクセス署名 (SAS)

アクセス キーは、ストレージ アカウントへのアクセスを認証する最も簡単な方法です。 しかし、コンピューターの root パスワードと同様に、ストレージ アカウント内のすべてのものに対するフル アクセスが提供されます。

ストレージ アカウントでは、共有アクセス署名と呼ばれる個別の認証メカニズムが提供され、制限付きアクセスを許可する必要があるシナリオにおいて制限付きのアクセス許可と有効期限がサポートされます。 ご自分のストレージ アカウントに他のユーザーがデータを読み書きできるようにする場合は、この方法を使用する必要があります。 モジュールの最後にこの高度なトピックに関するドキュメントへのリンクがあります。