amazon-web-services - 如何安全地存储 Amazon KMS 的亚马逊访问令牌
问题描述
我正在探索亚马逊 KMS 托管服务,存储主密钥和数据密钥似乎很安全。我能够使用 AWS KMS API / CLI 从加密的数据密钥中将数据密钥解密为纯文本。
但我有一个担心,要访问亚马逊 KMS 以解密数据密钥,我需要传递访问令牌和加密的数据密钥。
那么我可以在哪里安全地存储亚马逊访问令牌和加密数据密钥?
任何想法表示赞赏。
谢谢,
哈利
解决方案
我需要传递访问令牌和加密的数据密钥。
实际上,您需要在调用任何 AWS 服务之前对客户端进行身份验证和授权。
也许您可以详细说明amazon access token的含义。实际上,您需要存储访问密钥和访问密钥以及可选的(临时)会话令牌以正确授权服务。我假设在“亚马逊访问令牌”下,您的意思是客户端凭据。
我可以在哪里安全地存储亚马逊访问令牌和加密数据密钥?
对于数据密钥 - 加密的数据密钥可以与数据一起存储/发送(如果您为每次加密生成一个新密钥)或作为配置(如果您计划重用密钥),这已经安全加密。
如果您的客户端(使用 KMS 的代码)在 AWS 基础设施上运行,您可以使用服务角色来允许从服务访问 KMS 服务,而无需显式存储身份凭证。如果客户端也在 AWS 上运行,这是默认(也是最佳)方式。
如果您从 AWS 外部访问 KMS 服务,您的应用程序需要具有客户端凭证。如前所述,理论上您也可以使用 Secret Manager,但无论如何您都需要凭据才能访问该服务。
推荐阅读
- php - 是否可以在不写入文件的情况下创建包含二进制数据的文件?
- binary - 如何计算文件中的十六进制偏移位置
- javascript - 未捕获的 ReferenceError:未定义 regeneratorRuntime
- swift - iOS 14 后列表背景颜色更改并添加了填充,我该如何处理?
- node.js - 如何在 Web 浏览器中使用 GStreamer 的 webrtcbin?
- java - 如何通过 Eclipse 和 SpringBoot 为 mapstruct 映射器编写 JUnit 5 测试
- c++ - 如何实现冒泡排序?
- java - JDK 15 Sealed Classes - 如何跨包使用?
- python - Joblib 函数的并行计算
- javascript - 如何获取事件监听器的功能?