We are using Azure Functions, which require access to at least 1 Azure Storage location. The Azure Storage Location must support tables, So Azure AD Auth is out. The Connection String for the Storage account, with credential information, must be available to the Function on the environment. Good security practices dictate that we rotate the key with some frequency. We are currently storing keys in Key Vault, and want to continue doing so, rather than storing keys in the Azure Portal.
Are we correct that Azure AD authentication is not valid here since the tokens it produces are not able to be used with tables, which Functions requires?
It would seem that the ideal approach would be to add a new setting in Microsoft.Azure.Storage.CloudStorageAccount
,
internal const string AccountKeyVaultLocationSettingString = "AccountKeyVaultLocation";
And then add logic to ParseImpl so that a KeyVault URL representing the secret could be passed into this method, and it would query the key from there.
Another option would be to over-ride Microsoft.Azure.WebJobs.Script.Scaling.StorageConnectionString
(and similar connection string settings) so that it will query KeyVault.
Could this be added to the Storage Library? What would be an ETA? Would you welcome contribution on this?