Microsoft Entra 資格情報を使用して PowerShell コマンドを実行し、キュー データにアクセスする

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

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

サポート対象の操作

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

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

重要

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

Microsoft Entra サインイン情報を使用して PowerShell コマンドを呼び出す

注意

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を開始するには、Azure PowerShell のインストールに関する記事を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

Azure PowerShell を使用してサインインし Azure Storage に対する後続操作を Microsoft Entra サインイン情報を使用して実行するには、ストレージ アカウントを参照するストレージ コンテキストを作成し、-UseConnectedAccount パラメーターを含めます。

次の例では、Azure PowerShell から自分の Microsoft Entra サインイン情報を使用して新しいストレージ アカウントにキューを作成する方法を示します。 山かっこ内のプレースホルダーをお客様独自の値に置き換えてください。

  1. Connect-AzAccount コマンドを使用して Azure アカウントにサインインします。

    Connect-AzAccount
    

    PowerShell を使用した Azure へのサインインの詳細については、「Azure PowerShell を使用してサインインする」を参照してください。

  2. New-AzResourceGroup を呼び出して、Azure リソース グループを作成します。

    $resourceGroup = "sample-resource-group-ps"
    $location = "eastus"
    New-AzResourceGroup -Name $resourceGroup -Location $location
    
  3. New-AzStorageAccount を呼び出して、ストレージ アカウントを作成します。

    $storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup `
      -Name "<storage-account>" `
      -SkuName Standard_LRS `
      -Location $location `
    
  4. New-AzStorageContext を呼び出して、新しいストレージ アカウントを指定するストレージ アカウント コンテキストを取得します。 ストレージ アカウントを操作するときは、サインイン情報を繰り返し渡す代わりに、このコンテキストを参照することができます。 後続のデータ操作を自分の Microsoft Entra サインイン情報を使用して呼び出すには、-UseConnectedAccount パラメーターを含めます。

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

    重要

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

  6. New-AzStorageQueue を呼び出してキューを作成します。 この呼び出しでは前の手順で作成したコンテキストが使用されるため、キューは自分の Microsoft Entra サインイン情報を使用して作成されます。

    $queueName = "sample-queue"
    New-AzStorageQueue -Name $queueName -Context $ctx
    

次のステップ