Поделиться через


Защита секретов в Azure PowerShell

При управлении ресурсами Azure с помощью Azure PowerShell выходные данные команд могут предоставлять конфиденциальную информацию, которую необходимо защитить. Например, Azure PowerShell может отображать пароли, маркеры или ключи в выходных данных при их создании. Некоторые команды также могут хранить выходные данные в файлах журнала. Этот сценарий часто возникает при работе с GitHub Actions или Azure DevOps.

Общие сведения о риске

Важно защитить секреты и конфиденциальную информацию. При неправильном использовании они могут стать доступными для несанкционированных пользователей. Ошибки пользователей, такие как неправильно настроенные скрипты или ввод секретов в виде значений параметров, могут обнажить конфиденциальные сведения в логах, истории команд или системах управления версиями.

Предупреждение

Azure PowerShell отображает предупреждающее сообщение по умолчанию, начиная с версии 12.0.0, чтобы защитить конфиденциальную информацию при определении потенциального секрета в выходных данных команды.

Отключение предупреждения

В следующем примере командлет Update-AzConfig используется для отключения предупреждения.

Update-AzConfig -DisplaySecretsWarning $false

Можно также использовать переменную среды $Env:AZURE_CLIENTS_SHOW_SECRETS_WARNING для отключения предупреждения.

Set-Item -Path Env:\AZURE_CLIENTS_SHOW_SECRETS_WARNING -Value $false

Переход с строк на SecureStrings

В целях безопасности тип выходных данных по умолчанию командлета Get-AzAccessToken планируется изменить с обычного текстового String на SecureString. Чтобы подготовиться к этому обновлению, используйте параметр AsSecureString перед критическим изменением.

Это изменение предназначено для предотвращения непреднамеренного разглашения конфиденциальных токенов в виде обычного текста. Чтобы обеспечить плавный переход, обновите скрипты, чтобы использовать параметр AsSecureString, как показано в следующем примере:

$token = Get-AzAccessToken -AsSecureString