KMS 加密 - 本地开发

Posted

技术标签:

【中文标题】KMS 加密 - 本地开发【英文标题】:KMS Encryption - Local Development 【发布时间】:2019-06-09 23:24:03 【问题描述】:

我创建了用于加密/解密的 AWS KMS 密钥。已将访问权限提供给可以加密/解密的特定对象。我通常将此角色附加到我的 lambda 以执行加密/解密。但是我在本地运行代码,它失败了,因为 KMS 密钥似乎不是授权操作的关联角色。有没有办法可以使用为本地开发生成的 KMS 密钥?

【问题讨论】:

KMS 是特定于区域的。访问 KMS 密钥时是否指定区域?此外,两个服务(KMS 和服务 (S3?) 必须位于同一区域。KMS 密钥不会跨区域共享。 是的,我提供地区。但是 KMS 密钥被授予对 AWS 账户中特定角色的访问权限。但是,当我运行本地计算机时,我看不到附加该角色以使用 KMS 的方法。如果我将其部署为 AWS lambda 并将所需的角色附加到 lambda,则相同的代码可以正常工作。 您要用于加密/解密的密钥的 KMS 密钥策略是什么?将此添加到您的问题中,以便您可以正确格式化策略。 在 KMS 控制台中,您是否可以访问密钥?它位于Key policy -> Key users 下。 【参考方案1】:

我们建议您的开发堆栈与生产堆栈使用不同的 KMS CMK。

至于您为什么会被拒绝访问,John 是正确的;那是因为您在本地使用的用户/角色没有使用密钥的权限。

https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html

【讨论】:

以上是关于KMS 加密 - 本地开发的主要内容,如果未能解决你的问题,请参考以下文章

谷歌云 KMS:加密有效但解密失败

DynamoDB 如何使用 AWS KMS

使用 GCP_KMS 和 BYOK 解决方案管理密钥轮换

解决微信小程序开发中wxss中不能用本地图片

KMS激活工具 Microsoft Toolkit v2.6.4 正式版

到 KMS_MANAGED 加密 SQS 队列(在 CDK 中)的 S3 事件通知不起作用