0

如何使用访问策略为 ADLS gen 2 容器中的文件夹生成 SAS 令牌。

与下图完全相同,但适用于 ADLS gen 2 容器或文件夹。先感谢您。

在此处输入图像描述

4

1 回答 1

0

要在 ADLS 容器上使用访问策略生成 SAS 令牌,需要先创建访问策略。您可以通过 Azure 门户(请查看此链接)或存储资源管理器创建访问策略。

根据您附加的屏幕截图,您正在使用 Microsoft 存储资源管理器,因此这里是创建访问策略的步骤

1)转到您的容器->右键单击容器

2)选择管理访问策略

在此处输入图像描述

3)点击添加。在那里,您可以提供访问策略 ID 和需要授予容器的权限,例如读取、写入(单击复选框)。然后单击保存

在此处输入图像描述

4)一旦创建访问策略。您可以根据该访问策略创建 SAS。右键单击容器选择获取共享访问签名。从下拉列表中选择访问策略,然后单击创建

在此处输入图像描述

使用 terraform 生成 SAS

 terraform {
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~> 2.65"   }
      }
      required_version = ">= 0.14.9"
    }
    provider "azurerm" {
      features {}
    }
resource "azurerm_resource_group" "rg" {
  name     = "terraformtest"
  location = "West Europe"
}

resource "azurerm_storage_account" "storage" {
  name                     = "storage name"
  resource_group_name      = azurerm_resource_group.rg.name
  location                 = azurerm_resource_group.rg.location
  account_tier             = "Standard"
  account_replication_type = "GRS"
  allow_blob_public_access = true
}

resource "azurerm_storage_container" "container" {
  name                  = "terraformcont"
  storage_account_name  = azurerm_storage_account.storage.name
  container_access_type = "private"
}

data "azurerm_storage_account_blob_container_sas" "example" {
  connection_string = azurerm_storage_account.storage.primary_connection_string
  container_name    = azurerm_storage_container.container.name
  https_only        = true
  start  = "Date"
  expiry = "Date"permissions {
    read   = true
    add    = true
    create = false
    write  = false
    delete = true
    list   = true
  }
}
output "sas_url_query_string" {
  value = data.azurerm_storage_account_blob_container_sas.example.sas
  sensitive = true
}

运行上述命令后,您将在terraform.tfstate中获得输出

在此处输入图像描述

有关更多信息,请查看此链接

于 2021-07-05T14:03:28.350 回答