我想使用aws_encryption_sdk python模块来使用加密消息。消息由另一个团队使用上下文加密。
使用aws_encryption_sdk的原因是,每当我们调用boto3 KMS客户端解密函数时,通过减少kms会话的数量来降低成本。但是,我似乎陷入了困惑,因为在为EncryptionSDKClient调用解密函数时,我找不到可以使用它的位置。
我的代码如下所示:
client = aws_encryption_sdk.EncryptionSDKClient()
## try to set the botocore session for Master Key Provider
kms_kwargs= dict(key_ids=data['keyId'])
key_provider = aws_encryption_sdk.StrictAwsKmsMasterKeyProvider(**kms_kwargs)
MAX_ENTRY_AGE_SECONDS = 600.0
MAX_ENTRY_MESSAGES = 10
MAX_CACHE_SIZE = 10
cache = aws_encryption_sdk.LocalCryptoMaterialsCache(MAX_CACHE_SIZE)
caching_cmm = CachingCryptoMaterialsManager(
master_key_provider=key_provider,
cache=cache,
max_age=MAX_ENTRY_AGE_SECONDS,
max_messages_encrypted=MAX_ENTRY_MESSAGES
)
cycled_plaintext, decrypted_header = client.decrypt(source=base64.b64decode(data["encryptedData"]), key_provider=key_provider)请注意,我需要在前提环境中缓存数据密钥。
发布于 2021-07-27 19:39:07
来自AWS开发人员关于KMS加密SDK页面的指南,加密上下文部分
若要解密数据,请传递加密消息。因为AWS加密SDK可以从加密的消息头中提取加密上下文,所以不需要单独提供加密上下文。但是,加密上下文可以帮助您确认您正在解密正确的加密消息。
还有一些验证加密上下文的代码示例,您可能会找到有用的这里。
https://stackoverflow.com/questions/68105790
复制相似问题