SDK文档

最近更新时间:2017-11-30 20:41:07

KMS SDK 使用说明文档

为了方便开发者更好地使用 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