日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

KMS實例SDK for Python

更新時間: 2023-10-09 18:27:51

KMS實例SDK for Python幫助您通過簡單的編程訪問KMS實例API,實現加密解密、簽名驗簽和獲取憑據值的業務訴求。本文介紹如何安裝SDK以及如何調用接口進行加密解密、簽名驗簽和獲取憑據值。

背景信息

KMS提供了多種類型的開發工具(SDK),請您在使用前先了解各SDK的使用場景。更多信息,請參見SDK使用指引

如果您使用Python3,可以訪問Python3開源代碼倉庫,如果您使用Python2,可以訪問Python2開源代碼倉庫,同時也歡迎您提出寶貴意見,或者提供代碼示例。

前提條件

  • 已購買和啟用KMS實例。具體操作,請參見購買和啟用KMS實例

  • 已完成密鑰和憑據的創建。具體操作,請參見軟件密鑰硬件密鑰創建憑據

    說明

    如果您的業務不涉及憑據,則無需創建憑據。

  • 已創建應用接入點并保存了Client Key、獲取KMS實例CA證書。具體操作,請參見通過應用接入點訪問KMS實例

  • 請確保應用程序運行環境可訪問KMS實例VPC地址。

    業務場景

    說明

    應用程序運行環境和KMS實例在同一個地域,且屬于同一個VPC

    默認應用程序運行環境和KMS實例間網絡互通,您無需配置。

    應用程序運行環境和KMS實例在同一個地域,但屬于不同VPC

    您需要配置多個VPC訪問同一個KMS實例,具體操作,請參見同地域多VPC訪問KMS實例

    應用程序運行環境和KMS實例在不同地域

    您需要配置應用跨地域訪問KMS實例。具體操作,請參見應用跨地域訪問KMS實例

安裝SDK

  • 如果您使用Python3,請通過如下命令安裝alibabacloud-dkms-gcs模塊。

    pip install alibabacloud-dkms-gcs
  • 如果您使用Python2,請通過如下命令安裝alibabacloud-dkms-gcs-python2模塊。

    pip install alibabacloud-dkms-gcs-python2

初始化SDK

使用Python SDK發起KMS實例API請求,您需要初始化一個Client實例。

  1. 初始化Client實例。

    # -*- coding: utf-8 -*-
    from openapi.models import Config
    from sdk.client import Client
    
    config = Config()
    # 連接協議請設置為"https"。KMS實例服務僅允許通過HTTPS協議訪問。
    config.protocol = "https"
    # 設置endpoint為<your KMS Instance Id>.cryptoservice.kms.aliyuncs.com。
    config.endpoint = "<your KMS Instance Id>.cryptoservice.kms.aliyuncs.com"
    # Client Key。
    config.client_key_content = "<your-client-key-content>"
    # Client Key解密口令。
    config.password = "<your-password>"
    client = Client(config)
  2. 通過配置運行時參數(RuntimeOptions)設置KMS實例的CA證書。

    重要

    為保障生產環境通信安全,建議您保持開啟驗證SSL/TLS證書有效性。如您確有需要關閉驗證SSL/TLS證書,例如線下測試場景,可通過將運行時參數(RuntimeOptions)的ignore_ssl字段設置為True實現。

    設置RuntimeOptionsverify字段為KMS實例CA證書路徑。代碼示例如下:

    # -*- coding: utf-8 -*-
    from openapi_util.models import RuntimeOptions
    
    runtime_options = RuntimeOptions()
    # ca證書路徑
    runtime_options.verify = "<your-ca-certificate-file-path>"                        

使用已初始化的Client調用KMS實例API

初始化Client后,您可以通過Client調用KMS實例API,本文介紹如下幾個使用場景和代碼示例。關于KMS實例API的詳細信息,請參見API概覽

  • 調用Encrypt接口使用對稱密鑰加密數據

    詳細代碼示例,請參見Python3原始代碼Python2原始代碼

    # -*- coding: utf-8 -*-
    
    from sdk.models import EncryptRequest
    
    request = EncryptRequest()
    # 待加密數據。
    request.plaintext = "<your-plaintext>".encode("utf-8")
    # 密鑰的ID或別名(Alias)。
    request.key_id = "<your-key-id>"
    encrypt_response = client.encrypt_with_options(request, runtime_options)
    # 加密數據。
    ciphertext_blob = encrypt_response.ciphertext_blob
    # cipher初始向量,用于解密數據。
    iv = encrypt_response.iv
    # 請求ID。
    request_id = encrypt_response.request_id
  • 調用Decrypt接口使用對稱密鑰解密密文

    詳細代碼示例,請參見Python3原始代碼Python2原始代碼

    # -*- coding: utf-8 -*-
    
    from sdk.models import DecryptRequest
    
    request = DecryptRequest()
    # 待解密數據。
    request.ciphertext_blob = "<your-ciphertext-blob>"
    # 密鑰的ID或別名(Alias)。
    request.key_id = "<your-key-id>"
    # Cipher初始向量,必須與加密時一致。
    request.iv = "<your-iv>"
    decrypt_response = client.decrypt_with_options(request, runtime_options)
    # 原始明文數據。
    plaintext = decrypt_response.plaintext;
    # 請求ID。
    request_id = decrypt_response.request_id;
  • 調用Sign接口使用非對稱密鑰進行數字簽名

    詳細代碼示例,請參見 Python3原始代碼Python2原始代碼

    # -*- coding: utf-8 -*-
    
    from sdk.models import SignRequest
    
    request = SignRequest()
    # 密鑰的ID或別名(Alias)。
    request.key_id = "<your-key-id>"
    # 待簽名數據。
    request.message = "<your-raw-message>"
    # 簽名算法。
    request.algorithm = "<your-algorithm>"
    sign_response = client.sign_with_options(request, runtime_options)
    # 簽名值。
    signature = sign_response.signature
    # 請求ID。
    request_id = sign_response.request_id
  • 調用Verify接口使用非對稱密鑰驗證數字簽名

    詳細代碼示例,請參見Python3原始代碼Python2原始代碼

    # -*- coding: utf-8 -*-
    
    from sdk.models import SignRequest
    
    request = VerifyRequest()
    # 密鑰的ID或別名(Alias)。
    request.key_id = "<your-key-id>"
    # 待驗證簽名的數據。
    request.message = "<your-raw-message>"
    # 簽名算法。
    request.algorithm = "<your-algorithm>"
    # 簽名值。
    request.signature = "<your-signature>"
    verify_response = client.verify_with_options(request, runtime_options)
    # 驗簽結果。
    valid = verify_response.valid
    # 請求ID。
    request_id = verify_response.request_id
  • 調用GetSecretValue接口獲取憑據值

    詳細代碼示例,請參見Python3原始代碼Python2原始代碼

    重要
    • 0.0.3及以上版本的KMS實例SDK for Python才支持獲取憑據值。

    • 0.0.5及以上版本的KMS實例SDK for Python2才支持獲取憑據值。

    # -*- coding: utf-8 -*-
    
    from sdk.models import GetSecretValueRequest
    
    request = GetSecretValueRequest()
    # 憑據名稱。
    request.secret_name = "<your-secret-name>"
    response = client.get_secret_value_with_options(request, runtime_options)
    # 憑據值。
    secret_data = response.secret_data
    # 請求ID。
    request_id = response.request_id
上一篇: KMS實例SDK for Go 下一篇: KMS實例SDK for C#
阿里云首頁 密鑰管理服務 相關技術圈