Azure PowerShellを使用してAzureリソースを管理すると、コマンドの出力によって、保護する必要がある機密情報が公開される可能性があります。 たとえば、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 バージョン 5.0.0 と String バージョン 14.0.0 以降では、SecureString コマンドレットの既定の出力の種類がプレーン テキスト から に変更されました。
アクセス トークンは、Azure リソースへのアクセスを許可する機密性の高い資格情報です。 プレーン テキストとして返すと、ログ、トランスクリプト、または対話型セッションで偶発的に公開されるリスクが高まります。
コマンドレットは、 SecureStringに切り替えることで、トークンが安全に表示または格納されないようにするのに役立ちます。
シナリオでプレーン テキストのトークンが必要な場合は、推奨されていませんが、SecureString を手動で変換できます。 ガイダンスについては、「 PowerShell で SecureString をプレーン テキストに変換する方法」を参照してください。
Azure PowerShell