如何安全地存储 Amazon KMS 的亚马逊访问令牌

How to securely store the amazon access token for Amazon KMS

我正在探索亚马逊 KMS 托管服务,它似乎可以安全地存储主密钥和数据密钥。 我能够使用 AWS KMS API / CLI 将数据密钥解密为来自加密数据密钥的纯文本。

但我有一个顾虑,要访问用于解密数据密钥的 amazon KMS,我需要传递访问令牌和加密数据密钥。

所以我可以在哪里安全地存储亚马逊访问令牌和加密数据密钥?

如有任何想法,我们将不胜感激。

谢谢,
哈利

I need to pass the access token and encrypted data key.

确实,在调用任何 AWS 服务之前,您需要对客户端进行身份验证和授权。

也许您可以详细说明 亚马逊访问令牌 的含义。实际上,您需要存储访问密钥和访问秘密以及可选的(临时)会话令牌以正确授权服务。我假设在 "amazon access token" 下你指的是客户端凭据。

Where can I securely store the amazon access token and encrypted data key?

对于数据密钥 - 加密的数据密钥可能 stored/sent 与数据一起(如果您为每次加密生成一个新密钥)或作为配置(如果您打算重用密钥),那就是已经安全加密。

如果您的客户端(使用 KMS 的代码)在 AWS 基础设施上 运行,您可以使用 service roles 来允许从服务访问KMS 服务而不显式存储身份凭证。如果客户端也在 AWS 上运行,这是默认(也是最佳)方式。

如果您从 AWS 外部访问 KMS 服务,您的应用程序需要具有客户端凭证。正如已经评论过的,理论上您也可以使用 Secret Manager,但是无论如何您都需要凭据才能访问该服务。