[英]Accessing Azure KeyVault in Local Environment
我有一個 Azure 資源組和一個用戶管理的身份,可以訪問我的 Azure KeyVault,但我似乎不明白這應該如何在本地工作。 我想在本地運行我的應用程序時訪問我的開發環境密鑰庫,這就是我能夠使這項工作CurrentSolution的方式。 我最終做的是創建一個服務主體並僅在本地環境中使用憑據來訪問密鑰庫。 如果環境是 dev、stage 或 production,那么它將使用 DefaultAzureCredential(用戶管理的標識)。
它確實有效,但似乎不是正確的做法。 有什么建議或指示我可以做到這一點是更好的方法嗎? 謝謝你。
string keyVaultEndpoint = "KeyVaultUri";
if (environment.EnvironmentName.ToLowerInvariant() == "localhost")
{
var client = new SecretClient(new(keyVaultEndpoint),
new ClientSecretCredential("tenantId",
"clientId",
"clientSecret"));
build.AddAzureKeyVault(client, new KeyVaultSecretManager());
}
else
{
//var secretClient = new SecretClient(new(keyVaultEndpoint), new DefaultAzureCredential(new DefaultAzureCredentialOptions { ManagedIdentityClientId = "clientId" }));
var secretClient = new SecretClient(new(keyVaultEndpoint), new DefaultAzureCredential());
build.AddAzureKeyVault(secretClient, new KeyVaultSecretManager());
}
Configuration = build.Build();
如果您只使用機密和密鑰,您也可以使用Lowkey Vault 。 它對您共享的 if-else 沒有幫助(實際上它會使情況變得更糟),但您可以避免在運行測試或在本地啟動應用程序時共享憑據或依賴雲資源。
這可能不是一個更好的方法,但是如果您要與您的團隊共享服務主體的憑據,那么您可能會授予團隊訪問權限 - 最好的方法是創建一個安全組,並以您的開發團隊作為成員身份,並且為安全組授予密鑰保管庫所需的最低權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.