次の方法で共有


Azure CLI でキュー データへのアクセスの承認方法を選択する

Azure Storage には、キューのデータに対する操作を承認する方法を指定できるようにするための Azure CLI の拡張機能が用意されています。 データ操作は、次の方法で承認できます。

  • Microsoft Entra セキュリティ プリンシパルを使用します。 Microsoft では、優れたセキュリティおよび使いやすさのために Microsoft Entra 資格情報を使用することをお勧めします。
  • アカウントアクセスキーまたはアクセス共有シグネチャ (SAS) トークンを使用します。

データ操作の承認方法を指定する

キュー データの読み取りと書き込みのための Azure CLI コマンドには、オプションの --auth-mode パラメーターがあります。 データ操作を承認する方法を示すには、このパラメーターを指定します。

  • Microsoft Entra セキュリティ プリンシパルを使用してサインインするために、--auth-mode パラメーターを login に設定します (推奨)。
  • --auth-mode パラメーターをレガシ key 値に設定して、承認に使用するアカウント アクセス キーを取得しようとします。 また、 --auth-mode パラメーターを省略すると、Azure CLI はアクセス キーの取得を試みます。

--auth-mode パラメーターを使用するには、Azure CLI v2.0.46 以降がインストールされていることを確認してください。 az --version を実行し、インストールされたバージョンを確認します。

Note

ストレージ アカウントが Azure Resource Manager の ReadOnly ロックでロックされている場合、そのストレージ アカウントに対してキーの一覧表示操作は許可されません。 キーの一覧表示は POST 操作であり、アカウントに対して ReadOnly ロックが構成されている場合、すべての POST 操作が禁止されます。 このため、アカウントが ReadOnly ロックでロックされている場合、アカウント キーをまだ所有していないユーザーは、キュー データにアクセスするには Microsoft Entra 資格情報を使用する必要があります。

重要

--auth-mode パラメーターを省略した場合、または key に設定した場合、Azure CLI はアカウント アクセス キーを使用して承認を試みます。 この場合、コマンドまたは AZURE_STORAGE_KEY 環境変数のいずれかでアクセス キーを指定することをお勧めします。 環境変数の詳細については、「 承認パラメーターの環境変数を設定する」セクションを参照してください。

アクセス キーを指定しない場合、Azure CLI は Azure Storage リソース プロバイダーを呼び出して各操作のために取得を試みます。 リソース プロバイダーの呼び出しを必要とする多くのデータ操作を実行すると、スロットリングが発生する可能性があります。 リソース プロバイダーの制限の詳細については、「 Azure Storage リソース プロバイダーのスケーラビリティとパフォーマンスのターゲット」を参照してください。

Microsoft Entra 資格情報を使用して認可する

Microsoft Entra 資格情報を使用して Azure CLI にサインインすると、OAuth 2.0 アクセス トークンが返されます。 そのトークンが Azure CLI によって自動的に使用され、Queue Storage に対するその後のデータ操作が認可されます。 サポートされている操作については、コマンドでアカウント キーや SAS トークンを渡す必要がなくなりました。

キュー データへのアクセス許可を、Azure ロールベースのアクセス制御 (Azure RBAC) を介して、Microsoft Entra セキュリティ プリンシパルに割り当てることができます。 Azure Storage の Azure ロールの詳細については、Azure RBAC を使用した Azure Storage データへのアクセス権の管理に関する記事を参照してください。

データ操作呼び出しのアクセス許可

Azure Storage 拡張機能は、キュー データの操作でサポートされています。 呼び出すことができる操作は、Azure CLI にサインインする Microsoft Entra セキュリティ プリンシパルに許可されているアクセス許可によって異なります。 キューへのアクセス許可は、Azure RBAC を介して割り当てられます。 たとえば、ストレージ キュー データ閲覧者ロールが割り当てられている場合、キューからデータを読み取るスクリプト コマンドを実行できます。 ストレージ キュー データ共同作成者ロールが割り当てられている場合、キューまたはキューに含まれているデータの読み取り、書き込み、削除を行うスクリプト コマンドを実行できます。

キューでの各 Azure Storage 操作に必要なアクセス許可の詳細については、「OAuth トークンを使用したストレージ操作の呼び出し」を参照してください。

例: Microsoft Entra 資格情報を使用して、キューを作成する操作を認可する

次の例では、自分の Microsoft Entra 資格情報を使用して、Azure CLI からキューを作成する方法を示します。 そのキューを作成するには、Azure CLI にサインインする必要があります。また、リソース グループとストレージ アカウントが必要になります。

  1. キューを作成する前に、ストレージ キュー データ共同作成者ロールを自分に割り当てます。 自分がアカウント オーナーである場合でも、ストレージ アカウントに対してデータ操作を実行するための明示的なアクセス許可が必要となります。 Azure ロールの割り当ての詳細については、「キュー データにアクセスするための Azure ロールを割り当てる」を参照してください。

    重要

    Azure ロールの割り当ての反映には数分かかることがあります。

  2. az storage queue create コマンドを、--auth-mode パラメーターに login を設定して呼び出し、自分の Microsoft Entra 資格情報を使用してキューを作成します。 山かっこ内のプレースホルダーをお客様独自の値に置き換えてください。

    az storage queue create \
        --account-name <storage-account> \
        --name sample-queue \
        --auth-mode login
    

アカウント アクセス キーを使用して承認する

アカウント キーを所有している場合、任意の Azure Storage データ操作の呼び出しができます。 一般に、アカウント キーの使用は安全性が低くなります。 アカウント キーが侵害された場合、アカウント内のすべてのデータが侵害される可能性があります。

次の例は、アカウント アクセス キーを使用してキューを作成する方法を示しています。 アカウント キーを指定し、--auth-mode パラメーターに key の値を指定します。

az storage queue create \
    --account-name <storage-account> \
    --name sample-queue \
    --account-key <key>
    --auth-mode key

SAS トークンを使用して承認する

SAS トークンを所有している場合は、SAS で許可されているデータ操作の呼び出しができます。 次の例は、SAS トークンを使用してキューを作成する方法を示しています。

az storage queue create \
    --account-name <storage-account> \
    --name sample-queue \
    --sas-token <token>

認証パラメーターの環境変数を設定する

この環境変数に適切な値を指定すれば、Azure Storage データ操作の呼び出しのたびにパラメーターに値を設定する必要はなくなります。 次の表に、使用可能な環境変数を示します。

環境変数 説明
AZURE_STORAGE_ACCOUNT ストレージ アカウント名。 この変数は、ストレージ アカウント キーまたは SAS トークンと組み合わせて使用する必要があります。 どちらも存在しない場合、Azure CLI は、認証された Microsoft Entra アカウントを使用して、ストレージ アカウントのアクセス キーを取得しようとします。 一度に多数のコマンドが実行された場合、Azure Storage リソース プロバイダーの制限に達している可能性があります。 リソース プロバイダーの制限の詳細については、「 Azure Storage リソース プロバイダーのスケーラビリティとパフォーマンスのターゲット」を参照してください。
AZURE_STORAGE_KEY ストレージ アカウント キー。 この変数は、ストレージ アカウント名と組み合わせて使用する必要があります。
AZURE_STORAGE_CONNECTION_STRING ストレージ アカウント キーまたは SAS トークンを含む接続文字列。 この変数は、ストレージ アカウント名と組み合わせて使用する必要があります。
AZURE_STORAGE_SAS_TOKEN アクセス共有シグネチャ (SAS) トークン。 この変数は、ストレージ アカウント名と組み合わせて使用する必要があります。
AZURE_STORAGE_AUTH_MODE コマンドの実行に使用する承認モード。 使用できる値は login (推奨) または keyです。 login を指定した場合、Azure CLI は Microsoft Entra 資格情報を使用してデータ操作を認可します。 レガシ key モードを指定した場合、Azure CLI はアカウント アクセス キーを照会し、そのキーを使用してコマンドを承認しようとします。

次のステップ