I am developing a simple audit script. The goal of this program is to audit the CIS foundations benchmark 3.6 Ensure default network access rule for storage accounts is set to Deny. The code is written like so
#!/bin/zsh
function() {
local defaultAction=$(az storage account list --query '[*].networkRuleSet' | jq '.[].defaultAction')
local storageAccountName=$(az storage account list | jq '.[].name')
local resourceGroupName=$(az storage account list | jq '.[].resourceGroup')
if [ $defaultAction != "Deny" ]; then
echo "Ensure defaultAction is set to Allow."
echo "az storage account update --default-action Deny --name $storageAccountName --resource-group $resourceGroupName"
az storage account update --default-action Deny --name $storageAccountName --resource-group $resourceGroupName
echo "Ensure defaultAction has been set to Deny."
else
echo "defaultAction is set to $defaultAction"
fi
}
Expected:
"Ensure defaultAction is set to Allow."
"Ensure defaultAction has been set to Deny."
Actual:
Ensure defaultAction is set to Allow.
The arguments comeback as blank, but they print as expected. I believe the problem is here:
az storage account update --default-action Deny --name $storageAccountName --resource-group $resourceGroupName