我有一个启用了SFTP的Azure存储帐户。我有多个容器,每个容器有一个用户,每个用户只能访问该容器。我还希望有一个用户可以访问所有容器。我知道可以在Azure门户中执行此操作。但是,我需要能够从PowerShell执行此操作。我看到两个可能的选项:要么通过权限范围,简单地在添加新容器时向用户提供对所有内容(包括新容器)的权限,要么通过在添加新容器时添加现有权限。
我尝试使用Az模块中的New-AzStorageLocalUserPermissionScope函数。但是,使用此函数,我只能(AFAIK)指定一个容器来给予权限。如果使用Set-AzStorageLocalUser函数更新具有新权限范围的用户,则会覆盖现有权限。
2条答案
按热度按时间xfb7svmp1#
正如您所说的,使用
Set-AzStorageLocalUser
函数为用户更新新的权限范围时,每次都会覆盖现有的权限范围。因此,在解决了这个问题之后,我找到了一种方法,即使用
New-AzStorageAccountSASToken
cmdlet为存储帐户生成SAS令牌。然后令牌有助于授予对存储帐户中所有容器的访问权限。以下是我尝试生成SAS令牌,然后使用该SAS令牌向其他存储帐户授予访问权限的脚本。
输出:
或者:-
我尝试使用
NewAzStorageLocalUserPermissionScope
和Set-AzStorageLocalUser
命令,其工作情况如下:执行步骤:
1.已使用上下文检索容器的存储帐户。
1.对于相应的用户,我为各种容器创建了权限范围。
1.这些权限范围被追加并保存在单个变量中。
1.然后为本地用户分配存储的作用域。
脚本:
输出:
kqhtkvqz2#
我能够按照Jahnavi的建议通过附加权限范围来创建解决方案。
但是,每次更新用户时,都不可能逐个创建和追加权限范围,因为我只会获得应添加到权限中的容器的信息。我的解决方案是将权限范围保存为JSON文件。每次需要添加权限时,我都会执行以下操作:
1.读取包含当前权限的文件
1.为新容器创建权限范围
1.追加当前权限和新权限
1.为用户分配新的联合权限
1.将新的联合权限写入JSON文件
下面是我使用的代码: