一、操作场景
企业在开发和运维过程中,通常需要将数据库密码、API 密钥等敏感信息以明文形式存放在代码或配置文件中,存在泄露风险。凭据管理系统(SSM)提供集中式的凭据存储、版本管理和轮换能力,帮助你消除代码中的硬编码密钥,降低凭据泄露风险。
这篇面向初次使用 SSM 的开发者或运维人员,适用于以下场景:
·需要安全存储数据库账号密码、API 密钥等敏感配置项。
·希望通过统一入口管理多个应用的凭据,并支持版本化追溯。
·需要定期轮换凭据,并自动同步更新到应用端。
二、前提条件
·已 注册腾讯云账号,并完成 实名认证。
·已为当前账号或子账号授予 SSM 相关访问权限。
·如需通过 SDK 访问凭据,请提前获取账号的 SecretId 和 SecretKey。
三、步骤1:创建凭据
1. 登录 凭据管理系统控制台。
2. 在左侧导航栏,选择凭据管理系统 > 自定义凭据。
3. 在页面右上角,单击新建,进入新建凭据页面。
4. 参考创建自定义凭据文档,新建凭据。
四、步骤2:获取凭据内容
凭据创建成功后,你可以通过控制台或 SDK 两种方式获取凭据内容。
五、通过控制台查看凭据内容
1. 在自定义凭据列表中,单击目标凭据的名称,进入凭据详情页。
2. 在凭据内容选项卡,选择需要查看的版本号,单击查看,显示凭据值。
3. 输入二次验证信息后,即可查看该版本的明文凭据内容。
六、通过 SDK 读取凭据内容
以 Python SDK 为例,以下示例代码演示如何获取凭据内容:
示例代码:
import osimport jsonimport typesfrom tencentcloud.common import credentialfrom tencentcloud.common.profile.client_profile import ClientProfilefrom tencentcloud.common.profile.http_profile import HttpProfilefrom tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKExceptionfrom tencentcloud.ssm.v20190923 import ssm_client, modelstry: # 密钥信息从环境变量读取,需要提前在环境变量中设置 TENCENTCLOUD_SECRET_ID 和 TENCENTCLOUD_SECRET_KEY # 使用环境变量方式可以避免密钥硬编码在代码中,提高安全性 # 生产环境建议使用更安全的密钥管理方案,如密钥管理系统(KMS)、容器密钥注入等 # 请参见:https://cloud.tencent.com/document/product/1278/85305 # 密钥可前往页面控制台 https://console.cloud.tencent.com/cam/capi 进行获取 cred = credential.Credential(os.getenv("TENCENTCLOUD_SECRET_ID"), os.getenv("TENCENTCLOUD_SECRET_KEY")) # 使用临时密钥示例 # cred = credential.Credential("SecretId", "SecretKey", "Token") # 实例化一个http选项,可选的,没有特殊需求可以跳过 httpProfile = HttpProfile() httpProfile.endpoint = "ssm.tencentcloudapi.com" # 实例化一个client选项,可选的,没有特殊需求可以跳过 clientProfile = ClientProfile() clientProfile.httpProfile = httpProfile # 实例化要请求产品的client对象,clientProfile是可选的 client = ssm_client.SsmClient(cred, "ap-beijing", clientProfile) # 实例化一个请求对象,每个接口都会对应一个request对象 req = models.GetSecretValueRequest() params = { "SecretName": "MyAppDatabaseSecret", # 替换为你的凭据名称 "VersionId": "SSM_Current" # 指定具体版本号 } req.from_json_string(json.dumps(params)) # 返回的resp是一个GetSecretValueResponse的实例,与请求对象对应 resp = client.GetSecretValue(req) # 输出json格式的字符串回包 print(resp.to_json_string())except TencentCloudSDKException as err: print(err)
七、步骤3:管理凭据版本
SSM 支持对凭据进行版本化管理,每次更新凭据内容将生成新版本,历史版本仍可查询。
八、新增凭据版本
1. 在凭据详情页,参考凭据版本管理文档,新增凭据版本。
2. 新版本创建成功后,凭据详情中将出现新的版本记录,旧版本保留不变,可继续查询。
注意:说明:
注意:一个凭据下最多可保留10个版本,超出后需手动删除旧版本。
九、步骤4:轮换凭据(数据库凭据)
对于数据库凭据,SSM 支持配置自动轮换策略,定期更新凭据内容,并自动同步到关联的数据库实例,无需人工干预。
1. 登录 凭据管理系统控制台。
2. 在左侧导航栏,选择凭据管理系统 > 数据库凭据。
3. 在数据库凭据页,单击目标数据库凭据名称。
4. 在数据库凭据详情页,参考数据库凭据轮转文档,设置轮转策略。
5. 自动轮换配置保存成功后,SSM 将按照设定周期在后台自动更新凭据内容。
十、相关操作
·删除自定义凭据:如需下线某个凭据,请先将其置为停用状态,再执行删除操作,删除后无法恢复。
·标签管理:为凭据添加标签,实现多维度的资产分类与成本归属管理。