Key Vault — это безопасное цифровое хранилище, предоставляемое Azure, которое позволяет хранить конфиденциальную информацию, такую как пароли, сертификаты и секреты, и управлять ею. В некоторых сценариях вам может потребоваться скопировать содержимое одного Key Vault в другое для резервного копирования, миграции или аварийного восстановления. В этой статье блога мы рассмотрим несколько способов добиться этого с помощью PowerShell. Каждый метод будет сопровождаться примером кода, который поможет вам понять и реализовать решение.
Метод 1: модуль Azure PowerShell
Шаг 1. Установите модуль Azure PowerShell
Для работы с ресурсами Azure с помощью PowerShell необходимо установить модуль Azure PowerShell. Его можно установить, выполнив следующую команду в консоли PowerShell:
Install-Module -Name Az -AllowClobber -Scope CurrentUser
Шаг 2. Проверка подлинности в Azure
Перед копированием содержимого Key Vault вам необходимо пройти проверку подлинности в Azure, используя свои учетные данные. Выполните следующую команду и следуйте инструкциям для завершения процесса аутентификации:
Connect-AzAccount
Шаг 3. Копирование содержимого Key Vault
После аутентификации вы можете использовать командлеты Get-AzKeyVaultSecretи Set-AzKeyVaultSecretдля получения и копирования содержимого исходного Key Vault в целевое хранилище ключей. Вот пример фрагмента кода:
$sourceVault = Get-AzKeyVault -VaultName "SourceKeyVault"
$destinationVault = Get-AzKeyVault -VaultName "DestinationKeyVault"
$secrets = Get-AzKeyVaultSecret -VaultName $sourceVault.VaultName
foreach ($secret in $secrets) {
$secretValue = Get-AzKeyVaultSecret -VaultName $sourceVault.VaultName -Name $secret.Name
$secretContentType = $secretValue.ContentType
$secretValueBytes = [System.Convert]::FromBase64String($secretValue.SecretValueText)
Set-AzKeyVaultSecret -VaultName $destinationVault.VaultName -Name $secret.Name -SecretValue $secretValueBytes -ContentType $secretContentType
}
Метод 2: Azure CLI
Шаг 1. Установите Azure CLI
Если вы предпочитаете использовать Azure CLI вместо PowerShell, вы можете установить его, следуя инструкциям, приведенным в документации Azure CLI.
Шаг 2. Проверка подлинности в Azure
Как и в случае с методом PowerShell, вам необходимо пройти проверку подлинности в Azure с помощью Azure CLI. Выполните следующую команду и следуйте инструкциям для завершения процесса аутентификации:
az login
Шаг 3. Копирование содержимого Key Vault
После аутентификации вы можете использовать команды az keyvault secret showи az keyvault secret setдля получения и копирования содержимого исходного Key Vault в целевое хранилище ключей. Вот пример фрагмента кода:
source_vault_name="SourceKeyVault"
destination_vault_name="DestinationKeyVault"
secrets=$(az keyvault secret list --vault-name $source_vault_name --query "[].id" -o tsv)
for secret in $secrets
do
secret_value=$(az keyvault secret show --id $secret)
az keyvault secret set --vault-name $destination_vault_name --name $(basename $secret) --value $(echo $secret_value | jq -r '.value') --content-type $(echo $secret_value | jq -r '.contentType')
done
В этой статье мы рассмотрели два метода копирования содержимого одного хранилища ключей в другое с помощью PowerShell. В первом методе использовался модуль Azure PowerShell, а во втором — Azure CLI. Оба метода предоставляют вам гибкость и возможности автоматизации для выполнения ваших требований по миграции и резервному копированию данных. Выберите метод, который соответствует вашим предпочтениям, и легко интегрируйте его в свои рабочие процессы автоматизации.
Следуя шагам и примерам кода, приведенным в этой статье, вы можете эффективно скопировать содержимое Key Vault в другое Key Vault в Azure, гарантируя безопасность и целостность вашей конфиденциальной информации.