问题描述
我正在使用 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