Proteger segredos no Azure PowerShell

Quando você gerencia Azure recursos com Azure PowerShell, a saída de comandos pode expor informações confidenciais que você deve proteger. Por exemplo, Azure PowerShell pode exibir senhas, tokens ou chaves na saída ao criá-las. Alguns comandos também podem armazenar a saída em arquivos de log. Esse cenário geralmente ocorre ao trabalhar com GitHub Actions ou Azure DevOps.

Entender o risco

É essencial proteger segredos e informações confidenciais. Quando mal tratados, eles podem se tornar acessíveis a usuários não autorizados. Erros do usuário, como scripts configurados incorretamente ou inserir segredos em texto sem formatação como valores para parâmetros, podem expor detalhes confidenciais em logs, histórico de comandos ou sistemas de controle de versão.

Mensagem de aviso

Azure PowerShell exibe uma mensagem de aviso por padrão começando com a versão 12.0.0 para ajudá-lo a proteger informações confidenciais quando identifica um segredo potencial na saída de um comando.

Desabilitar a mensagem de aviso

No exemplo a seguir, o Update-AzConfig cmdlet é usado para desabilitar a mensagem de aviso.

Update-AzConfig -DisplaySecretsWarning $false

Você também pode usar a $Env:AZURE_CLIENTS_SHOW_SECRETS_WARNING variável de ambiente para desabilitar a mensagem de aviso.

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

Transição de Strings para SecureStrings

Para melhorar a segurança e reduzir o risco de vazamentos de credenciais, o tipo de saída padrão do Get-AzAccessToken cmdlet foi alterado de um texto em formato simples String para um SecureString, começando com a versão 5.0.0 do Az.Accounts e o Az versão 14.0.0.

Os tokens de acesso são credenciais confidenciais que concedem acesso a recursos de Azure. Retorná-los como texto simples aumenta o risco de exposição acidental em logs, transcrições ou sessões interativas. Ao alternar para SecureString, o cmdlet ajuda a impedir que tokens sejam exibidos ou armazenados de forma insegura.

Se o cenário exigir o token em texto simples, o que é fortemente desencorajado, você poderá converter o SecureString manualmente. Para obter diretrizes, veja Como posso converter um SecureString em texto sem formatação no PowerShell?.