Azure从密钥库中检索密钥



我遵循Microsoft文档使用python sdk从密钥库检索秘密。

微软提供的代码和解释导致以下代码:

import os
import cmd
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential

keyvault_name = f'https://<Keyvaultname>.vault.azure.net/'
KeyVaultName = "<Keyvaultname>"
credential = DefaultAzureCredential()
client = SecretClient(vault_url=keyvault_name, credential=credential)

print(" done.")
print(f"Retrieving your secret from {KeyVaultName}.")
retrieved_secret = client.get_secret("test")
print(f"Your secret is '{retrieved_secret.value}'.")

根据我的理解,DefaultCredentials是在az login中配置的,这很好,我的代码运行得很好,但我一直在终端中得到这个消息。

done.
Retrieving your secret from <KeyvaultName>.
EnvironmentCredential.get_token failed: EnvironmentCredential authentication unavailable. Environment variables are not fully configured.
ImdsCredential.get_token failed: ManagedIdentityCredential authentication unavailable, no managed identity endpoint found.
ManagedIdentityCredential.get_token failed: ManagedIdentityCredential authentication unavailable, no managed identity endpoint found.
SharedTokenCacheCredential.get_token failed: SharedTokenCacheCredential authentication unavailable. Multiple accounts
were found in the cache. Use username and tenant id to disambiguate.

我认为这个warnings是由于我在我的azure门户中有多个订阅的事实。

我想知道,我如何才能摆脱这些,并设置凭据,只有一个订阅?

非常感谢您对我的帮助和解释。

一般来说,我不会担心这个警告。当您使用DefaultAzureCredential时,SDK按该顺序(Reference)尝试以下凭据选项:

  • EnvironmentCredential
  • ManagedIdentityCredential
  • SharedTokenCacheCredential
  • VisualStudioCredential
  • VisualStudioCodeCredential
  • AzureCliCredential
  • AzurePowerShellCredential
  • InteractiveBrowserCredential

如果凭据选项失败,SDK将从一个凭据选项移动到另一个。警告消息只是SDK告诉您它尝试了哪些所有凭据选项的一种方式。

然而,如果你仍然想摆脱这个消息,有几个选项可供您使用:

  • 排除您不希望SDK在使用DefaultAzureCredential时尝试的凭据选项。您可以通过构造函数中的exclude_xxx_credential选项指定这些。例如,如果要排除EnvironmentCredential,可以在DefaultAzureCredential构造函数中指定exclude_environment_credential=True。SDK将跳过那些凭据方法。关于所有的构造器选项,请参阅link
  • 使用特定的凭证选项。例如,如果你总是想使用Azure CLI凭据,那么你可以使用AzureCliCredential而不是使用DefaultAzureCredential。

最新更新