You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Azure容器实例无密码安全连接Azure SQL服务器调优Postgres参数

实现Azure容器实例到Azure PostgreSQL数据库的无密码安全连接

1. 为容器实例启用系统分配托管标识

系统分配托管标识是Azure原生的无身份凭证管理方案,由Azure自动维护身份凭证,无需手动存储密钥或密码。

  • 用Azure CLI启用:
    az container update --name <容器实例名称> --resource-group <资源组名称> --assign-identity
    
  • 用Python SDK(azure-mgmt-containerinstance)编程实现:
    from azure.mgmt.containerinstance import ContainerInstanceManagementClient
    from azure.identity import DefaultAzureCredential
    
    client = ContainerInstanceManagementClient(DefaultAzureCredential(), "<订阅ID>")
    container_group = client.container_groups.get("<资源组名称>", "<容器实例名称>")
    container_group.identity = {"type": "SystemAssigned"}
    client.container_groups.begin_create_or_update("<资源组名称>", "<容器实例名称>", container_group).result()
    

2. 为托管标识配置数据库访问权限

先在Azure PostgreSQL服务器启用Azure AD认证,再创建映射托管标识的数据库角色并授予参数调优所需权限:

  1. 设置Azure AD为PostgreSQL服务器的管理员(可通过Azure CLI或SDK完成);
  2. 以AD管理员身份连接数据库,执行SQL创建映射角色:
    CREATE ROLE pg_tuning_role WITH LOGIN PASSWORD '<托管标识客户端ID>' IN ROLE azure_ad_user;
    -- 授予参数调优所需的最小权限,例如修改系统参数的权限
    GRANT ALTER SYSTEM TO pg_tuning_role;
    
    注:<托管标识客户端ID>可通过az identity show命令或Azure Portal获取容器实例的标识信息得到。

3. 在容器内实现无密码连接逻辑

容器中的应用通过Azure SDK获取AD访问令牌,以令牌作为密码连接PostgreSQL,无需硬编码或存储任何密码:

import psycopg2
from azure.identity import DefaultAzureCredential

# 利用容器实例的系统托管标识获取PostgreSQL访问令牌
credential = DefaultAzureCredential()
token = credential.get_token("https://ossrdbms-aad.database.windows.net/.default").token

# 建立无密码连接并执行参数调优
conn = psycopg2.connect(
    host="<PostgreSQL服务器名称>.postgres.database.azure.com",
    database="<目标数据库名称>",
    user="pg_tuning_role",
    password=token,
    sslmode="require"
)

cur = conn.cursor()
# 示例:修改shared_buffers参数
cur.execute("ALTER SYSTEM SET shared_buffers = '512MB';")
conn.commit()

cur.close()
conn.close()

4. 强化安全的额外配置

  • 网络隔离:将容器实例与PostgreSQL服务器部署在同一个VNet,或配置私有链接,避免公网暴露;
  • 最小权限原则:仅授予托管标识完成参数调优必需的权限,避免过度授权;
  • 自动凭证轮换:系统托管标识的凭证由Azure自动轮换,无需手动干预,降低泄露风险。

内容的提问来源于stack exchange,提问作者João Valente

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 09:10:40