gpt4 book ai didi

python - 无法通过 Azure SDK for python 设置 TDE

转载 作者:行者123 更新时间:2023-12-03 03:23:15 28 4
gpt4 key购买 nike

我正在尝试借助存储在 key 保管库中的客户管理 key 在我的 Azure SQL 服务器上设置透明数据加密。我通过 Azure SDK for python 完成所有这些工作。我正在提供相同的代码。

def enable_transparent_data_encryption(server_name: str):
key_client = KeyClient(vault_url=KEY_VAULT_URL, credential=credentials)
key_name = create_sql_cmk(server_name)
key = key_client.get_key(name=key_name)
key_version = key.properties.version
server_key_name = f'{KEY_VAULT_URL.split("//")[-1].split(".")[0]}_{key_name}_{key_version}'
tde = ServerKey(
auto_rotation_enabled=True,
server_key_type=ServerKeyType.AZURE_KEY_VAULT,
uri=f'{KEY_VAULT_URL}keys/{key_name}/{key_version}'
)

sql_client.server_keys.begin_create_or_update(RESOURCE_GROUP_NAME, server_name, server_key_name, tde).wait()
print(f'Enabled - Transparent Data Encryption using CMK on `{server_name}` SQL server.')

我已尝试我的代码,但它无法在我的 SQL 服务器上启用透明数据加密。

最佳答案

我尝试了以下代码,并成功在 Azure SQL 中从 Key Vault 启用了使用 CMK 的透明数据加密。

代码:-

from azure.identity import AzureCliCredential
from azure.keyvault.keys import KeyClient
from azure.mgmt.sql import SqlManagementClient
from azure.mgmt.sql.models import ServerKeyType, ServerKey

credential = AzureCliCredential()

key_vault_url = "https://kamalival.vault.azure.net"
key_client = KeyClient(vault_url=key_vault_url, credential=credential)

key_name = "kamalikeyvault"
key_version = "ba4979e3ef934a3e919e392942c0b42a"
key = key_client.get_key(name=key_name, version=key_version)

sql_client = SqlManagementClient(credential=credential, subscription_id="b83c1ed3-c5b6-44fb-b5ba-2b83a074c23f")

server_name = "kamaserver"
server_key_name = "kamalival_kamalikeyvault_ba4979e3ef934a3e919e392942c0b42a"
tde = ServerKey(
auto_rotation_enabled=True,
server_key_type=ServerKeyType.AZURE_KEY_VAULT,
uri=key.id
)
sql_client.server_keys.begin_create_or_update(
"Vyshu", server_name, server_key_name, tde).wait()
print(f"Enabled Transparent Data Encryption using CMK on '{server_name}' SQL server.")

确保您的 server_key_name 采用以下格式 -KeyVaultName_KeyVaultKeyName_KeyVaultKeyVersion 您可以从门户中的 key ID 获取 key 保管库名称、 key 名称和 key 版本的信息,如下所示:-

enter image description here

我已使用 AzureCliCredential 对我的 Azure 帐户进行身份验证。通过运行以下命令登录我的 VS Code 终端:-

命令 Reference1 , Reference2

az login
az account set --subscription "azure-subscription-name"

确保您在登录 Azure 门户时登录的用户帐户已分配足够的角色来访问 Key Vault key 和 SQL Server。

输出:-

enter image description here

门户 TDE 已启用:-

enter image description here

关于python - 无法通过 Azure SDK for python 设置 TDE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76315430/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com