无服务器:在 lambda 函数中处理 API 密钥解密
Serverless: Handle API key decryption in a lambda function
我正在实施一个使用第三方库的 API。
第三方库提供了key,需要传入。密钥是动态的,可以根据 consumer/business 场景更改。 lambda 函数应该能够解密密钥。
有人可以建议解密密钥的方法吗?我正在探索 aws-kms 方法。
请注意:我已经记下了实现它的 .env 方法。但是,今天我的 API 被一个消费者使用,因此有一个 API 密钥。明天,数字会增加(会导致多个键),我可能无法 store/update 该功能。
编辑:我需要通过负载传递一些敏感信息。这可以是字母数字值。例如
{"sender": "+123", "secret": "encrypted_value"}
客户端和服务器应该共享一个密钥,客户端可以使用该密钥加密信息,而服务器(lambda 函数)应该解密它。
任何建议都会很棒!谢谢!
使用 KMS 执行您在 "edit" 部分描述的事情的标准方法是:
- 客户端直接调用 KMS 到 generate a data key。客户端将取回加密和明文格式的密钥。
- 客户端用明文密钥加密数据,丢弃后将加密数据和加密密钥发送给服务器。
- 服务器调用 KMS
decrypt
operation,取回明文密钥并使用它来解密数据。服务器丢弃解密的密钥并按需要使用解密的数据。
如果您的意思不同,请告诉我,但这是使用 KMS 的相当标准的方法。当然,您需要根据用例确定使用 IAM 和 KMS 策略来锁定所有 API。
我正在实施一个使用第三方库的 API。
第三方库提供了key,需要传入。密钥是动态的,可以根据 consumer/business 场景更改。 lambda 函数应该能够解密密钥。
有人可以建议解密密钥的方法吗?我正在探索 aws-kms 方法。
请注意:我已经记下了实现它的 .env 方法。但是,今天我的 API 被一个消费者使用,因此有一个 API 密钥。明天,数字会增加(会导致多个键),我可能无法 store/update 该功能。
编辑:我需要通过负载传递一些敏感信息。这可以是字母数字值。例如 {"sender": "+123", "secret": "encrypted_value"} 客户端和服务器应该共享一个密钥,客户端可以使用该密钥加密信息,而服务器(lambda 函数)应该解密它。
任何建议都会很棒!谢谢!
使用 KMS 执行您在 "edit" 部分描述的事情的标准方法是:
- 客户端直接调用 KMS 到 generate a data key。客户端将取回加密和明文格式的密钥。
- 客户端用明文密钥加密数据,丢弃后将加密数据和加密密钥发送给服务器。
- 服务器调用 KMS
decrypt
operation,取回明文密钥并使用它来解密数据。服务器丢弃解密的密钥并按需要使用解密的数据。
如果您的意思不同,请告诉我,但这是使用 KMS 的相当标准的方法。当然,您需要根据用例确定使用 IAM 和 KMS 策略来锁定所有 API。