共用方式為


使用 Microsoft Entra 認證執行 PowerShell 命令以存取佇列資料

Azure 儲存體提供 PowerShell 的延伸模組,可讓您使用 Microsoft Entra 認證登入並執行指令碼命令。 當您使用 Microsoft Entra 認證登入 PowerShell 時,會傳回 OAuth 2.0 存取權杖。 PowerShell 會自動使用該權杖,授權對佇列儲存體的後續資料作業。 針對支援的作業,您不需要再使用命令傳遞帳戶金鑰或 SAS 權杖。

您可以透過 Azure 角色型存取控制 (Azure RBAC),將佇列資料的權限指派給 Microsoft Entra 安全性主體。 如需 Azure 儲存體中 Azure 角色的詳細資訊,請參閱使用 Azure RBAC 管理 Azure 儲存體資料的存取權限

支援的作業

佇列資料的作業支援 Azure 儲存體延伸模組。 您可呼叫的作業取決於您用來登入 PowerShell 的 Microsoft Entra 安全性主體所獲得授與的權限。 佇列權限會透過 Azure RBAC 指派。 例如,如果您已被指派佇列資料讀者角色,則您可以執行從佇列讀取資料的指令碼命令。 如果您已被指派佇列資料參與者角色,則您可以執行讀取、寫入或刪除佇列或所含資料的指令碼命令。

如需有關佇列上每個 Azure 儲存體作業所需權限的詳細資訊,請參閱使用 OAuth 權杖呼叫儲存體作業

重要

使用 Azure Resource Manager ReadOnly 鎖定來鎖住儲存體帳戶時,不允許該儲存體帳戶執行列出金鑰作業。 List Keys 是一個 POST 作業,而在帳戶設定了 ReadOnly 鎖定時,所有 POST 作業都無法執行。 因此,使用 ReadOnly 鎖定來鎖住帳戶時,尚未擁有帳戶金鑰的使用者必須使用 Microsoft Entra 認證來存取佇列資料。 在 PowerShell 中,包含 -UseConnectedAccount 參數以使用您的 Microsoft Entra 認證建立 AzureStorageContext 物件。

使用 Microsoft Entra 認證呼叫 PowerShell 命令

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 請參閱安裝 Azure PowerShell 以開始使用。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

若要使用 Azure PowerShell 登入,然後使用 Microsoft Entra 認證對 Azure 儲存體執行後續作業,請建立儲存體內容來參考儲存體帳戶,並包含 -UseConnectedAccount 參數。

下列範例示範如何使用 Microsoft Entra 認證,從 Azure PowerShell 建立新儲存體帳戶中的佇列。 請記得以您自己的值取代角括號中的預留位置值:

  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 取得指定新儲存體帳戶的儲存體帳戶內容。 使用儲存體帳戶時,您可以參考內容而非重複傳入認證。 包含 -UseConnectedAccount 參數以使用您的 Microsoft Entra 認證呼叫任何後續的資料作業:

    $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
    

下一步