具有密钥保管库的Azure存储帐户以管理其密钥

时间:2019-08-18 18:40:45

标签: azure azure-storage-blobs azure-powershell

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

我已按照Microsoft网站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存储密钥正确设置了密钥库。

enter image description here

1 个答案:

答案 0 :(得分:1)

  

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

我认为您已成功设置它,可以使用以下命令对其进行检查。

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

enter image description here

  

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

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

enter image description here

更新

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

存储帐户的活动日志:

enter image description here

注意

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

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