Python Automation 如何使用 Azure KeyVault Secret

在开发和部署应用程序时,密钥和密码是非常重要的资源。为了更好地保护这些敏感信息,微软提供了 Azure KeyVault 服务。Azure KeyVault 可以用来存储和管理各种密钥、证书和密码,它提供了安全的访问控制和审计功能。

本文将介绍如何使用 Python 自动化程序来访问和使用 Azure KeyVault 的密钥。我们将使用 Azure SDK for Python 来实现这个过程。

步骤一:创建 Azure KeyVault

首先,我们需要在 Azure 门户上创建一个 KeyVault。以下是一些步骤:

  1. 登录到 Azure 门户并转到 Azure KeyVault 服务。
  2. 点击 "添加" 按钮创建一个新的 KeyVault。
  3. 按照步骤指导填写 KeyVault 的详细信息,例如名称、定价层和访问策略等。
  4. 点击 "创建" 完成 KeyVault 的创建过程。

创建 KeyVault 后,我们需要获取一些详细信息,例如 KeyVault 的名称和访问密钥等。

步骤二:安装和配置 Azure SDK for Python

在开始之前,我们需要安装 azure-keyvault-secrets 模块。可以通过以下命令来安装:

pip install azure-keyvault-secrets

在安装完成后,我们需要配置 Azure SDK for Python 来连接到 Azure KeyVault。可以使用以下代码来配置:

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

# 获取 Azure Active Directory 的租户 ID
tenant_id = "YOUR_TENANT_ID"

# 获取 Azure 订阅 ID
subscription_id = "YOUR_SUBSCRIPTION_ID"

# 获取已创建的 Azure KeyVault 的名称
vault_name = "YOUR_KEYVAULT_NAME"

# 获取 Azure 订阅的资源组名称
resource_group_name = "YOUR_RESOURCE_GROUP_NAME"

# 获取 Azure Active Directory 的应用程序 ID 和秘密
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"

# 创建默认 Azure 凭据
credential = DefaultAzureCredential(authority=f"
                                    client_id=client_id,
                                    client_secret=client_secret,
                                    tenant_id=tenant_id)

# 创建 Azure KeyVault Secrets 客户端
secret_client = SecretClient(vault_url=f"https://{vault_name}.vault.azure.net",
                             credential=credential)

在上述代码中,我们创建了一个默认的 Azure 凭据,并使用该凭据创建了 Azure KeyVault Secrets 客户端。

步骤三:访问和使用密钥

在获得了 Azure KeyVault Secrets 客户端后,我们可以使用它来访问和使用密钥。以下是一些示例代码:

获取所有密钥的列表

secrets = secret_client.list_properties_of_secrets()

for secret in secrets:
    print(secret.name)

上述代码将打印出 KeyVault 中所有密钥的名称。

获取特定密钥的值

secret_name = "YOUR_SECRET_NAME"
secret_value = secret_client.get_secret(secret_name).value

print(secret_value)

上述代码将打印出指定密钥的值。

创建和更新密钥

secret_name = "YOUR_SECRET_NAME"
secret_value = "YOUR_SECRET_VALUE"

secret_client.set_secret(secret_name, secret_value)

上述代码将创建或更新一个名为 YOUR_SECRET_NAME 的密钥,并设置其值为 YOUR_SECRET_VALUE

删除密钥

secret_name = "YOUR_SECRET_NAME"

secret_client.begin_delete_secret(secret_name).wait()

上述代码将删除指定名称的密钥。

总结

本文中,我们介绍了如何使用 Python 自动化程序来访问和使用 Azure KeyVault 的密钥。我们使用 Azure SDK for Python 来连接到 Azure KeyVault,并演示了一些常见的操作,如获取密钥列表、获取特定密钥的值、创建和更新密钥以及删除密钥。

Azure KeyVault 提供了一种安全且可靠的方式来存储和管理敏感信息,它与 Python 的集成使得我们可以轻松地在自动化程序中使用这些密钥。希望本文对你有所帮助!