ヒント
このコンテンツは、.NET Docs で入手できる、またはオフラインで読み取ることができる無料のダウンロード可能な PDF として入手できる、コンテナー化された .NET アプリケーションの電子ブックである .NET マイクロサービス アーキテクチャからの抜粋です。
環境変数として格納されるか、シークレット マネージャー ツールによって格納されたシークレットは、引き続きローカルに格納され、暗号化されません。 シークレットを格納するためのより安全なオプションは、キーとシークレットを格納するためのセキュリティで保護された中央の場所を提供する Azure Key Vault です。
Azure.Extensions.AspNetCore.Configuration.Secrets パッケージを使用すると、ASP.NET Core アプリケーションで Azure Key Vault から構成情報を読み取ることができます。 Azure Key Vault のシークレットの使用を開始するには、次の手順に従います。
アプリケーションを Azure AD アプリケーションとして登録します。 (キー コンテナーへのアクセスは Azure AD によって管理されます)。これは、Azure 管理ポータルを使用して実行できます。\
または、パスワードまたはクライアント シークレットではなく証明書を使用してアプリケーションを認証する場合は、 New-AzADApplication PowerShell コマンドレットを使用できます。 Azure Key Vault に登録する証明書には、公開キーのみが必要です。 アプリケーションで秘密キーが使用されます。
新しいサービス プリンシパルを作成して、登録済みのアプリケーションにキー コンテナーへのアクセス権を付与します。 これを行うには、次の PowerShell コマンドを使用します。
$sp = New-AzADServicePrincipal -ApplicationId "<Application ID guid>" Set-AzKeyVaultAccessPolicy -VaultName "<VaultName>" -ServicePrincipalName $sp.ServicePrincipalNames[0] -PermissionsToSecrets all -ResourceGroupName "<KeyVault Resource Group>"
IConfigurationRoot インスタンスの作成時に AzureKeyVaultConfigurationExtensions.AddAzureKeyVault 拡張メソッドを呼び出して、キー コンテナーを構成ソースとしてアプリケーションに含めます。
AddAzureKeyVault
を呼び出すには、前の手順で登録され、キー コンテナーへのアクセス権が付与されたアプリケーション ID が必要であることに注意してください。 または、最初に Azure CLI コマンド ( az login
) を実行してから、クライアントの代わりに DefaultAzureCredential を受け取る AddAzureKeyVault
のオーバーロードを使用します。
Von Bedeutung
以前のプロバイダーの構成値をオーバーライドできるように、Azure Key Vault を最後の構成プロバイダーとして登録することをお勧めします。
その他のリソース
Azure Key Vault を使用したアプリケーション シークレットの保護
https://learn.microsoft.com/azure/architecture/multitenant-identity開発中のアプリ シークレットの安全な保存
https://learn.microsoft.com/aspnet/core/security/app-secretsデータ保護の構成
https://learn.microsoft.com/aspnet/core/security/data-protection/configuration/overviewASP.NET Core でのデータ保護キーの管理と有効期間
https://learn.microsoft.com/aspnet/core/security/data-protection/configuration/default-settings
.NET