我需要提供75个不同存储帐户中所有资源类型的读取和列表访问权限,遗憾的是我不能为此创建IAM用户。
我可以创建SAS,但是,这需要为每个存储帐户创建75个不同的SAS。
我试着想出一个for循环来帮我完成这件事,但是,看起来我仍然需要做很多手工工作才能让它工作。
#!/bin/bash
resourceType="sco"
permissions="rl"
expiry=$(date -u -d "next month" +%Y-%m-%dT%H:%MZ)
storageAccounts=$(az storage account list --query "[].name" --output tsv)
for account in $storageAccounts; do
sas=$(az storage account generate-sas \
--account-name $account \
--resource-types $resourceType \
--services bfqt \
--permissions $permissions \
--expiry $expiry \
--output tsv)
echo "SAS token for $account:"
echo "https://$account.blob.core.windows.net/?$sas"
done
我在想,我还有什么更聪明的办法吗?
1条答案
按热度按时间nnvyjq4y1#
我做的方式和你一样,并通过使用以下过程,我想这是唯一的方法来做到这一点,我已经在我的环境中重现,并得到了预期的结果如下,我遵循Microsoft-Document1和Microsoft-Document2:
首先使用以下命令获取所有存储帐户:
然后使用以下命令为上述存储帐户创建sas令牌:
输出:
这是因为您首先需要存储帐户的名称,然后只有您可以生成SAS令牌。