有奖捉虫:云通信与企业服务文档专题,速来> HOT

为了方便开发者更好地使用 KMS 的 SDK,腾讯云提供以下使用说明文档:

示例:Python SDK 使用简介

环境依赖

请确保已经安装了 Python 环境。

KMS Python SDK 下载与配置

云 API 密钥使用说明

使用 Python SDK 时,首先需要用户的云 API 密钥,云 API 密钥是对用户身份的合法性验证。获取云 API 密钥的方法如下:登录腾讯云控制台,选择【云产品】-【云 API 密钥】选项

用户可在此新建新的云 API 密钥或使用现有密钥。单击密钥 ID 进入详情页获取使用的密钥 secretId 和对应的 secretKey。

endpoint 说明

endpoint 是使用 KMS 服务的访问地址,同时 endpoint 中也包含了使用的协议,endpoint的格式如下:

  • 内网:https://kms-region.api.tencentyun.com
  • 外网:https://kms-region.api.qcloud.com

region 说明

region 需要使用具体地域进行替换,有如下三个地区:gz(广州),sh(上海),bj(北京)。划分不同地域有助于不同地域的用户就近选择,提供更好的服务。公共参数中的 region 值要与域名的 region 值保持一致,如果出现不一致的情况,以域名的 region 值为准,将请求发往域名 region 所指定的地域。

内外网区别

如果业务进程也部署在腾讯云的 CVM 子机上,强烈建议使用同地域的内网 endpoint:
1) 同地域内网的时延更低。
2) 目前 KMS 对于公网下行流量是要收取流量费用的,用内网可以节省这部分的费用。

Python SDK下载

下载最新版KMS SDK

使用 KMS Python SDK

下面的代码也是 Python SDK 中的 sample,从创建主密钥、生成数据密钥,加解密,启用禁用密钥等操作来示例密钥管理的操作。

#首先从控制台获取对应的secretId和secretKey。和对应的endpoint
try:
    secretId = "your secret id"
    secretKey = "your secret key"
    endpoint = "your endpoint "

    kms_account = KMSAccount(endpoint, secretId, secretKey)

    # create a custom master key
    Description = "test"
    Alias = "test"
    KeyUsage = "ENCRYPT/DECRYPT"
    kms_meta = kms_account.create_key(Description, Alias, KeyUsage)
    print kms_meta

    # create a data key
    KeySpec = "AES_128"
    Plaintext , CiphertextBlob = kms_account.generate_data_key(kms_meta.KeyId, KeySpec)
    print "the data key : %s \n  the encrypted data key :%s\n" % (Plaintext, CiphertextBlob)

    # encrypt the data string
    Plaintest = "test message data"
    CiphertextBlob = kms_account.encrypt(kms_meta.KeyId, Plaintest)
    print "the encrypted data is :%s \n" % CiphertextBlob

    # decrypt the encrypted data string
    Plaintest = kms_account.decrypt(CiphertextBlob)
    print "the decrypted data is :%s\n" % Plaintest

    # get key attributes
    key_meta = kms_account.get_key_attributes(key_meta.KeyId)
    print key_meta

    # set key attributes
    Alias = "ForTest"
    kms_account.set_key_attributes(key_meta.KeyId, Alias)

    # disabke a custom key
    kms_account.disable_key(key_meta.KeyId)
    # enable a custom key
    kms_account.enable_key(key_meta.KeyId)

    # list key
    totalCount, keys = kms_account.list_key()
    print keys

except KMSExceptionBase, e:
    print "Exception:%s\n" % e