gpt4 book ai didi

azure - 在 Powershell 中为 Azure Data Lake 目录创建 SAS token

转载 作者:行者123 更新时间:2023-12-03 06:35:29 24 4
gpt4 key购买 nike

我在 Azure 中有一个存储帐户,它托管一个数据湖。我想使用 SAS token 授权特定目录,并且可以通过单击门户来配置它。首先,我创建了一个存储访问策略,我们将其称为“external1”。该策略没有定义权限或到期日期,它只是用于能够在 token 到期之前撤销 SAS token 。

之后,我导航到容器“axexternal”的目录“/external1/central”并生成一个 SAS token ,定义存储的访问策略、权限和到期日期:

SAS token creation

这些步骤按预期进行。我需要自动重新创建这些 SAS token 。我选择使用自动化帐户(通过其身份授权)并使用 Powershell 脚本来执行游戏。具体来说,我首先重新创建存储访问 key ,然后重新创建 SAS token 。由于存储访问 key 的重新创建非常有效,因此我重点关注 SAS token 重新创建的代码。

不幸的是,SAS token 的文档在技术上是可用的,但很差。我不确定必须使用哪个命令行开关才能获得与 Azure 门户中相同的结果。是 New-AzStorageAccountKey、New-AzStorageContainerSASToken、New-AzStorageBlobSASToken 吗?文档中所有可能的参数组合似乎都不适合我的需求。

我需要将这些参数传递给适当的命令:

  • 使用哪个存储访问 key 进行加密
  • 要使用的存储访问策略
  • 到期日期
  • 权限

此外,我无法理解这些命令行开关中 -Context 参数的用途。此上下文是用于连接到存储并执行用于创建 SAS token 的脚本,还是用于将参数传递到命令行开关?我尝试了很多变体来实现目标,但都失败了。有谁能给我一些提示吗?

这是我尝试过的一些代码:

$ctx = New-AzStorageContext `
-StorageAccountName $storageAccount `
-StorageAccountKey $key.Value `
-Protocol "Https"

$uri = New-AzStorageBlobSASToken `
-Context $ctx `
-Container $container `
-Blob "/external1/central" `
-Policy $policy
-StartTime (Get-Date).AddDays(-1) `
-ExpiryTime (Get-Date).AddDays(370) `
-FullUri
<小时/>

更新

我意识到我的帖子可能太不具体了。我想用一个具体问题来补充它。

给定

  • 名为“axexternal”的数据湖容器
  • 目录“/external1/central”
  • 存储的访问策略“external1”,未定义权限或到期日期

通缉

一个 Powershell 脚本,它为容器“axexternal”中的特定目录“/external1/central”创建 SAS

  • 由帐户 key 签名的 SAS
  • SAS 使用存储访问策略“external1”
  • SAS 定义权限
  • SAS 定义到期日期

感谢您的帮助,我真的很感激!

最佳答案

我在我的环境中进行了尝试,并成功创建了带有策略的 Azure SAS token :

最初,我在门户中创建了访问策略,如下所示:

enter image description here

我执行了以下命令,它成功创建了带有 URL 的 SAS token 。

命令:

$accountname="venkat123"
$accountkey="<your storage account key >"
$containername="docker"
$blob="directory1/demo1mbimage.jpg"
$policy="external"

$ctx = New-AzStorageContext -StorageAccountName $accountName -StorageAccountKey $accountKey

New-AzStorageBlobSASToken `
-Context $ctx `
-Container $containername `
-Blob $blob `
-Policy $policy `
-FullUri

控制台: enter image description here

我用浏览器检查了文件 URL,它运行良好。

浏览器:

enter image description here

引用: New-AzStorageBlobSASToken (Az.Storage) | Microsoft Learn

关于azure - 在 Powershell 中为 Azure Data Lake 目录创建 SAS token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74898331/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com