Microsoft Entra 자격 증명을 통해 PowerShell 명령을 실행하여 Blob 데이터에 액세스하기

Azure Storage는 로그인하고 Microsoft Entra 자격 증명을 사용하여 스크립팅 명령을 실행할 수 있는 PowerShell용 확장을 제공합니다. Microsoft Entra 자격 증명을 사용하여 PowerShell에 로그인하면 OAuth 2.0 액세스 토큰이 반환됩니다. 이 토큰은 PowerShell에서 Blob 스토리지에 대한 후속 데이터 작업에 권한을 부여하는 데 자동으로 사용됩니다. 지원되는 작업의 경우, 더 이상 명령과 함께 계정 키 또는 SAS 토큰을 전달할 필요가 없습니다.

Azure RBAC(Azure 역할 기반 액세스 제어)를 통해 Microsoft Entra 보안 주체에 Blob 데이터에 대한 권한을 할당할 수 있습니다. Azure Storage에서 Azure 역할을 할당하는 방법에 관한 자세한 내용은 Blob 데이터 액세스를 위해 Azure 역할 할당을 참조하세요.

지원되는 작업

Blob 데이터에 작업에 대한 Azure Storage 확장을 지원합니다. 호출할 수 있는 작업은 PowerShell에 로그인하는 데 사용하는 Microsoft Entra 보안 주체에 부여된 권한에 따라 다릅니다. Azure Storage 컨테이너에 대한 권한은 Azure RBAC를 통해 할당됩니다. 예를 들어, Blob Data Reader 역할에 할당되면 컨테이너에서 데이터를 읽는 스크립팅 명령을 실행할 수 있습니다. Blob Data Contributor 역할에 할당되면 컨테이너 혹은 컨테이터에 포함된 데이터를 읽거나, 쓰거나, 삭제하는 스크립팅 명령을 실행할 수 있습니다.

컨테이너의 각 Azure Storage 작업에 필요한 사용 권한에 대한 자세한 내용은 OAuth 토큰을 이용한 스토리지 작업 호출을 참조하세요.

Important

Azure Resource Manager 읽기 전용 잠금을 사용하여 스토리지 계정이 잠긴 경우, 해당 스토리지 계정에서 키 나열 작업이 허용되지 않습니다. 키 나열은 POST 작업으로, 계정에 대해 읽기 전용 잠금이 설정된 경우 모든 POST 작업이 차단됩니다. 이러한 이유로 계정이 ReadOnly 잠금으로 잠긴 경우 아직 계정 키를 보유하지 않은 사용자는 Blob 데이터에 액세스하려면 Microsoft Entra 자격 증명을 사용해야 합니다. PowerShell에서 -UseConnectedAccount 매개 변수를 포함하여 Microsoft Entra 자격 증명으로 AzureStorageContext 개체를 만듭니다.

Microsoft Entra 자격 증명을 사용하여 PowerShell 명령 호출

Azure PowerShell를 사용하여 로그인한 뒤 Microsoft Entra ID 자격 증명을 사용하여 Azure Storage에 대해 후속 작업을 실행하려면, 스토리지 계정을 참조하는 스토리지 컨텍스트를 만들고 -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 `
      -AllowBlobPublicAccess $false
    
  4. New-AzStorageContext를 호출하여 새 스토리지 계정을 지정하는 스토리지 계정 컨텍스트를 가져옵니다. 스토리지 계정에서 작업할 때는 반복적으로 자격 증명을 전달하는 대신 컨텍스트를 참조합니다. Microsoft Entra 자격 증명을 사용하여 후속 데이터 작업을 호출하려면 -UseConnectedAccount 매개 변수를 포함합니다.

    $ctx = New-AzStorageContext -StorageAccountName "<storage-account>" -UseConnectedAccount
    
  5. 컨테이너를 만들기 전에 Storage Blob 데이터 참가자 역할을 자신에게 할당합니다. 계정 소유자라도 스토리지 계정에 대한 데이터 작업을 수행하려면 명시적 권한이 필요합니다. Azure 역할을 할당하는 방법에 관한 자세한 내용은 Blob 데이터에 액세스하기 위한 Azure 역할 할당을 참조하세요.

    Important

    Azure 역할 할당을 전파하는 데 몇 분 정도 걸릴 수 있습니다.

  6. New-AzStorageContainer를 호출하여 컨테이너를 만듭니다. 이 호출은 이전 단계에서 만들어진 컨텍스트를 사용하기 때문에 Microsoft Entra 자격 증명을 사용하여 컨테이너가 만들어집니다.

    $containerName = "sample-container"
    New-AzStorageContainer -Name $containerName -Context $ctx
    

다음 단계