将 AWS KMS 公钥从字节转换为 .pem 文件

问题描述

我正在使用 Python3 和 Boto3 以编程方式使用 AWS KMS(密钥管理服务)。我在 KMS 本身中创建了一个非对称密钥对(公共和私有)。现在有没有办法将公共和私人文件本地保存到在 KMS 上创建的磁盘上。

这是我的代码:

import boto3
import base64


def get_keys_from_kms(key_id):
    client = boto3.client('kms')
    response = client.get_public_key(KeyId=key_id)
    pub_key_dec = base64.b64encode(response['PublicKey']).decode()

现在我的重点是如何将 pub_key_dec 的内容保存到文件并将其转换为 pem 格式。同样,我也可以下载私钥。希望我的问题很清楚。

解决方法

访问 AWS KMS 中私有密钥的密钥材料的唯一方法是生成密钥并将其上传到 AWS 到客户托管的 CMK。但是,您只能对对称加密密钥执行此操作,而不能对非对称密钥执行此操作。你问的不可用。但是,您可能想要做的是限制对 kms 的访问:通过 KMS 密钥策略和/或 IAM 策略对用户/原则进行解密操作。

https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...