【问题标题】:Azure Storage Account with Key Vault to manage its keys使用 Key Vault 管理其密钥的 Azure 存储帐户
【发布时间】:2019-12-24 02:55:17
【问题描述】:

我希望我的 Blob 存储帐户密钥由 Key Vault 管理。我正在尝试在“key1”和“key2”之间自动重新生成过程,间隔为 1 天。

我已按照微软网站https://docs.microsoft.com/en-us/powershell/module/az.keyvault/add-azkeyvaultmanagedstorageaccount?view=azps-2.5.0 上的说明进行操作

我已经运行了下面的脚本,没有错误:

$servicePrincipal = Get-AzADServicePrincipal -ServicePrincipalName cfa8b339-82a2-471a-a3c9-0fc0be7a4093
New-AzRoleAssignment -ObjectId $servicePrincipal.Id -RoleDefinitionName 'Storage Account Key Operator Service Role' -Scope $storage.Id
$userPrincipalId = $(Get-AzADUser -SearchString 'Bob Johnson').Id
Set-AzKeyVaultAccessPolicy -VaultName 'AzureBlobVault' -ObjectId $userPrincipalId -PermissionsToStorage get, list, delete, set, update, regeneratekey, getsas, listsas, deletesas, setsas, recover, backup, restore, purge
$regenerationPeriod = [System.Timespan]::FromDays(1)
Add-AzKeyVaultManagedStorageAccount -VaultName 'AzureBlobVault' -StorageAccountName 'john' -AccountResourceId '/subscriptions/XXXXXXX-XXXX-XXXXXXXXXXXXXXXX/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/John' -ActiveKeyName 'key1' -RegenerationPeriod $regenerationPeriod'


The Result:

Id                  : https://azurekeyvaultblob.vault.azure.net:443/storage/john
Vault Name          : AzureBlobVault
AccountName         : john
Account Resource Id : /subscriptions/XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/john
Active Key Name     : key1
Auto Regenerate Key : True
Regeneration Period : 1.00:00:00
Enabled             : True

我在运行脚本时没有任何错误。但它似乎不起作用,因为 Key Vault 没有自动重新生成 Key Vault 中的任何密钥。过去一周我一直在测试这个。

我不确定我是否使用 Blob 存储密钥正确设置了 Key Vault。

【问题讨论】:

  • 它只是重新生成存储访问密钥,为什么您认为它会重新生成keyvault中的key标签?

标签: azure azure-blob-storage azure-powershell azure-keyvault


【解决方案1】:

我不确定我是否使用 Blob 存储密钥正确设置了 Key Vault。

我认为你设置成功了,你可以用下面的命令检查一下。

Get-AzKeyVaultManagedStorageAccount -VaultName <keyvault name> -name <storage account name>

但它似乎不起作用,因为 Key Vault 没有自动重新生成 Key Vault 中的任何密钥。

该设置不会自动重新生成keyvault中key的标签,它只是自动重新生成存储访问密钥,你需要在你的存储帐户中查看结果->Access keys

更新

我用$regenerationPeriod = [System.Timespan]::FromDays(1) 测试它,它可以工作。

存储帐户的活动日志:

另外注意

设置-ActiveKeyName 'key1' 时,它不会自动重新生成key1

当活动键集为“key1”时。此密钥将用于生成 sas 令牌。 Key Vault 将在此命令执行后的重新生成周期后重新生成“key2”密钥,并将其设置为活动密钥。此自动重新生成过程将在“key1”和“key2”之间继续,间隔 RegenerationPeriod 天。

【讨论】:

  • 如果密钥自动重新生成,我将 Key1 作为密钥保管库中的连接字符串作为机密,我如何在密钥保管库机密中反映该更改?
  • @Djbril 我的解决方法是在配置自动生成后,创建一个azure runbook,在其中编写一个powershell脚本,检索key1并使用Set-AzKeyVaultSecret更新密钥,然后添加一个@ 987654325@,频率与自动生成密钥相同。
  • 同意我会在另一篇文章中提问。谢谢。
猜你喜欢
  • 2021-01-26
  • 2019-07-28
  • 2020-08-22
  • 2021-03-16
  • 2017-03-01
  • 2020-08-27
  • 2017-09-12
  • 2020-10-21
  • 1970-01-01
相关资源
最近更新 更多