安装SDK工具包

密钥管理服务 KMS

  • 功能发布记录
  • 产品描述
    • 介绍
    • 产品优势
    • 应用场景
    • 核心概念
  • 操作指南
    • 控制台操作指南
    • 开通KMS服务
    • 密钥管理操作
      • 计划删除密钥
      • 使用对称密钥
      • 密钥轮转
      • 使用非对称密钥
      • 禁用和启用密钥
    • 凭据管理操作
      • 通用凭据管理操作
      • 创建凭据
      • 禁用启用和计划删除凭据
  • API参考
    • KMS API基本信息
    • 密钥 API 说明
      • ScheduleKeyDeletion
      • GetParametersForImport
      • GenerateDataKey
      • ImportAsymmetricKey
      • ImportKey
      • Verify
      • Sign
      • DescribeKey
      • CreateKey
      • CalculateDigest
      • EnableKey
      • DisableKey
      • Encrypt
      • Decrypt
      • CancelKeyDeletion
      • EnableRotation
      • 错误码
    • 凭据 API 说明
      • PutSecretValue
      • GetSecretInfo
      • CreateSecret
      • GetSecretValue
      • ListSecrets
      • 错误码
  • 产品定价
    • 计费概述
  • SDK
    • Python-SDK
      • 密钥管理
      • 安装SDK工具包
      • 概述
    • Java-SDK
      • 密钥管理
      • 异常处理
      • 版本变更记录
      • 初始化
      • 安装SDK工具包
      • 概述
所有文档
menu
没有找到结果,请重新输入

密钥管理服务 KMS

  • 功能发布记录
  • 产品描述
    • 介绍
    • 产品优势
    • 应用场景
    • 核心概念
  • 操作指南
    • 控制台操作指南
    • 开通KMS服务
    • 密钥管理操作
      • 计划删除密钥
      • 使用对称密钥
      • 密钥轮转
      • 使用非对称密钥
      • 禁用和启用密钥
    • 凭据管理操作
      • 通用凭据管理操作
      • 创建凭据
      • 禁用启用和计划删除凭据
  • API参考
    • KMS API基本信息
    • 密钥 API 说明
      • ScheduleKeyDeletion
      • GetParametersForImport
      • GenerateDataKey
      • ImportAsymmetricKey
      • ImportKey
      • Verify
      • Sign
      • DescribeKey
      • CreateKey
      • CalculateDigest
      • EnableKey
      • DisableKey
      • Encrypt
      • Decrypt
      • CancelKeyDeletion
      • EnableRotation
      • 错误码
    • 凭据 API 说明
      • PutSecretValue
      • GetSecretInfo
      • CreateSecret
      • GetSecretValue
      • ListSecrets
      • 错误码
  • 产品定价
    • 计费概述
  • SDK
    • Python-SDK
      • 密钥管理
      • 安装SDK工具包
      • 概述
    • Java-SDK
      • 密钥管理
      • 异常处理
      • 版本变更记录
      • 初始化
      • 安装SDK工具包
      • 概述
  • 文档中心
  • arrow
  • 密钥管理服务KMS
  • arrow
  • SDK
  • arrow
  • Python-SDK
  • arrow
  • 安装SDK工具包
本页目录
  • 环境准备
  • 下载和安装
  • 新建KmsClient
  • 通过sts方式访问KMS
  • 配置HTTPS协议访问KMS

安装SDK工具包

更新时间:2025-08-21

环境准备

  1. 运行环境
    Python SDK工具包支持在Python 2.7 和Python 3 的环境运行。
  2. 安装pycrypto依赖

    安装SDK之前,需要先执行命令pip install pycrypto安装pycrypto依赖。

下载和安装

方式一:通过pip安装

您可以通过pip安装的方式将百度智能云Python SDK安装到您的环境中。 联网状态下,在命令行中执行如下命令:

Plain Text
1pip install bce-python-sdk

即可将Python SDK安装到本地。

方式二:将源码包下载到本地后进行安装

  1. 在开发者资源中心下载Python SDK压缩工具包。
  2. 命令行移动到压缩包所在路径,执行如下命令(version替换为包名称中的版本号):

    pip install bce-python-sdk-version.zip

    即可将Python SDK安装到本地。

方式三:使用setup.py install文件进行安装

您也可以解压压缩包后执行如下命令(version替换为包名称中的版本号)

Plain Text
1cd bce-python-sdk-version
2
3python setup.py install 

SDK目录结构

Plain Text
1baidubce
2     ├── auth                            //公共权限目录
3	   ├── http                            //Http请求模块
4     ├── services                        //服务公共目录
5     │     └── kms                      //KMS目录
6     │           ├──kms_client.py               //KMS客户端入口类
7     │           ├──keyspec_class.py            //密钥类型类
8     │           ├──origin_class.py             //密钥来源类
9     │           ├──publickeyencoding_class.py  //公钥编码类
10     │           └──protectedby_class.py        //保护等级类
11     ├── bce_base_client.py              //BCE客户端入口类的基类
12     ├── bce_client_configuration.py     //针对BOS特有的HttpClient的配置类
13     ├── bce_response.py                 //BCE客户端的请求类
14     ├── exception.py                    //BCE客户端的异常类
15     ├── protocol.py                     //网络协议定义
16     ├── region.py                       //区域处理模块
17     ├── retry_policy.py                 //BCE服务公共配置类
18     └── utils.py                        //BCE公用工具类

卸载SDK

卸载 SDK 时,执行命令pip uninstall bce-python-sdk即可完成卸载。

#初始化 ##确认Endpoint KMS目前支持“华北-北京”、“华南-广州”和“华东-苏州”三个区域。 北京区域:http://bkm.bj.baidubce.com,广州区域:http://bkm.gz.baidubce.com,苏州区域:http://bkm.su.baidubce.com。

访问区域 对应Endpoint
BJ bkm.bj.baidubce.com
GZ bkm.gz.baidubce.com
SU bkm.su.baidubce.com

##获取密钥 要使用百度智能云KMS,您需要拥有一个有效的 AK(Access Key ID)和SK(Secret Access Key)用来进行签名认证。AK/SK是由系统分配给用户的,均为字符串,用于标识用户,为访问KMS做签名验证。 可以通过如下步骤获得并了解您的AK/SK信息:

注册百度智能云账号 创建AK/SK

新建KmsClient

KmsClient是KMS服务的客户端,为开发者与KMS服务进行交互提供了一系列的方法。 使用AK/SK新建KmsClient。 ###通过AK/SK方式访问KMS 用户可以参考如下代码新建一个KmsClient: 1.在新建KmsClient之前,需要先创建配置文件对KmsClient进行配置,以下将此配置文件命名为kms_sample_conf.py,具体配置信息如下所示:

Python
1#!/usr/bin/env python
2#coding=utf-8
3
4
5#导入Python标准日志模块
6"""
7MVS Test
8"""
9import logging
10
11#从Python SDK导入BOS配置管理模块以及安全认证模块
12from baidubce.bce_client_configuration import BceClientConfiguration
13from baidubce.auth.bce_credentials import BceCredentials
14
15#设置BosClient的Host,Access Key ID和Secret Access Key
16kms_host = b"http://bkm.bj.baidubce.com"
17access_key_id = b"AK"
18secret_access_key = b"SK"
19
20#设置日志文件的句柄和日志级别
21logger = logging.getLogger('baidubce.services.kms.kmsclient')
22fh = logging.FileHandler("sample.log")
23fh.setLevel(logging.DEBUG)
24
25#设置日志文件输出的顺序、结构和内容
26formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
27fh.setFormatter(formatter)
28logger.setLevel(logging.DEBUG)
29logger.addHandler(fh)
30
31#创建BceClientConfiguration
32config = BceClientConfiguration(credentials=BceCredentials(access_key_id, secret_access_key),
33                                endpoint=kms_host)

注意: 针对日志文件,Logging有如下级别:DEBUG,INFO,WARNING,ERROR,CRITICAL。

在上面代码中,access_key_id对应控制台中的“Access Key ID”,secret_access_key对应控制台中的“Access Key Secret”,获取方式请参考《操作指南 管理ACCESSKEY》。

上面的方式用户需要自己指定KMS的服务的域名,可以通过赋值给kms_host变量来指定。

2.在完成上述配置之后,参考如下代码新建一个KmsClient。

Plain Text
1    #导入KmsClient配置文件
2    import kms_sample_conf 
3   		   
4    #导入Kms相关模块
5    from baidubce import exception
6    from baidubce.services.kms import kms_client
7    from baidubce.services.kms import keyspec_class
8    from baidubce.services.kms import origin_class
9    from baidubce.services.kms import protectedby_class
10    from baidubce.services.kms import publickeyencoding_class
11   	
12    #新建KmsClient
13    kmsClient = kms_client.KmsClient(kms_test_config.config)

通过sts方式访问KMS

KMS可以通过STS机制实现第三方的临时授权访问。STS(Security Token Service)是百度智能云提供的临时授权服务,详情可参见百度智能云STS使用介绍。通过STS,您可以为第三方用户颁发一个自定义时效和权限的访问凭证。第三方用户可以使用该访问凭证直接调用百度智能云的API或SDK访问百度智能云资源。 通过sts方式访问BOS,用户先通过sts-client申请一套AK、SK和token,然后将该套参数配置到KmsClient中,用户可以参考如下代码新建一个KmsClient:

  1. 获取临时token,创建配置文件"sts_sample_conf.py"对KmsClient进行配置。
Python
1import logging
2from baidubce.bce_client_configuration import BceClientConfiguration
3from baidubce.auth.bce_credentials import BceCredentials
4sts_host = "STS_HOST"
5access_key_id = "AK"
6secret_access_key = "SK"
7logger = logging.getLogger('baidubce.services.sts.stsclient')
8fh = logging.FileHandler("sample.log")
9fh.setLevel(logging.DEBUG)
10formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
11fh.setFormatter(formatter)
12logger.setLevel(logging.DEBUG)
13logger.addHandler(fh)
14config = BceClientConfiguration(credentials=BceCredentials(access_key_id, secret_access_key), endpoint=sts_host)

注意: 目前使用STS配置client时,无论对应Kms服务的endpoint在哪里,endpoint都需配置为http://sts.bj.baidubce.com。

在上面代码中,access_key_id对应控制台中的“Access Key ID”,secret_access_key对应控制台中的“Access Key Secret”。

  1. 新建StsClient,并使用获得的临时token,配置BceClientConfiguration。创建文件"sts_sample.py"通过StsClient申请一套AK、SK和token。
Python
1import sts_sample_conf
2from baidubce.services.sts.sts_client import StsClient
3from baidubce.bce_client_configuration import BceClientConfiguration
4from baidubce.auth.bce_credentials import BceCredentials
5sts_client = StsClient(sts_sample_conf.config)
6duration_seconds = 3600
7# you can specify limited permissions with ACL
8access_dict = {}
9access_dict["service"] = "bce:kms"
10access_dict["region"] = "bj"   
11access_dict["effect"] = "Allow"
12resource = ["*"]
13access_dict["resource"] = resource
14permission = ["READ"]
15access_dict["permission"] = permission
16access_control_list = {"accessControlList": [access_dict]}
17# 新建StsClient
18response = sts_client.get_session_token(acl=access_control_list, duration_seconds=duration_seconds)
19sts_ak = str(response.access_key_id)
20sts_sk = str(response.secret_access_key)
21token = response.session_token
22kms_host = "KMS_HOST"
23#配置BceClientConfiguration
24config = BceClientConfiguration(credentials=BceCredentials(sts_ak, sts_sk), endpoint = kms_host, security_token=token)
  1. 在完成上述配置之后,参考如下代码新建一个KmsClient。
Python
1import sts_sample  		   
2#导入Kms相关模块
3from baidubce import exception
4from baidubce.services.kms import kms_client
5from baidubce.services.kms import keyspec_class
6from baidubce.services.kms import origin_class
7from baidubce.services.kms import protectedby_class
8from baidubce.services.kms import publickeyencoding_class
9#新建KmsClient
10kmsClient = kms_client.KmsClient(sts_sample.config)

配置HTTPS协议访问KMS

您可以通过如下两种方式在KMS Python SDK中使用HTTPS访问KMS服务:

  • 在endpoint中指定HTTPS:
Plain Text
1config = bce_client_configuration.BceClientConfiguration(
2    credentials = bce_credentials.BceCredentials(
3        access_key_id = 'your-ak',
4  	    secret_access_key = 'your-sk'
5    ),
6    endpoint = 'https://bkm.bj.baidubce.com'
7)
8client = kms_client.KmsClient(config)
  • 通过在protocol中指定https来设置HTTPS协议:
Plain Text
1config = bce_client_configuration.BceClientConfiguration(
2    credentials = bce_credentials.BceCredentials(
3        access_key_id = 'your-ak',
4	    secret_access_key = 'your-sk'
5    ),
6    endpoint = 'bkm.bj.baidubce.com',
7    protocol = baidubce.protocol.HTTPS
8)
9client = kms_client.KmsClient(config)

上一篇
密钥管理
下一篇
概述