AWS KMS如何100%确定没有被别人盗用?
AWS KMS How to 100% sure that it is not stolen from others?
我打算使用 AWS KMS 来加密我的数据库。然而,老板向我提出挑战,如果亚马逊员工有权窃取我的 KMS 并解密我的数据库怎么办。
数据库中的信息非常重要,不能冒任何被他人解密的风险。
是否有其他解决方案可以解决此问题?确保没有人可以窃取密钥?
我们是否应该使用一些本地 HSM 来存储密钥?
正如 FAQ 指出的那样,AWS KMS 的设计使得
no one, including AWS employees, can retrieve your plaintext KMS keys from the service.
如果您进一步阅读,它还提供了 link 各种文章,详细介绍了 KMS 的规范和设计。正如您从这些文章中看到的那样,设计考虑的全部范围以及它如何符合 FIPS 认证超出了本答案的范围。
但是,作为示例,请参阅 cryptographic details tech paper 了解其工作原理的一些想法。提到了 2 个存在键的区域:
- 在 KMS 密钥存储库中
- 在 HSM 模块中
KMS 密钥存储库
存储库用作密钥的持久存储。当然,密钥是加密存储的。文章进一步解释了密钥存储库利用 IAM 角色。
Only under AWS IAM roles and accounts administered by each customer can customer KMS keys be created, deleted, or used to encrypt, decrypt, sign, or verify data.
这与管理对任何其他 AWS 服务的身份验证和授权的方式相同。因此,这是防止 AWS 员工访问密钥的一种方法。 IAM 的工作原理及其安全性再次超出了本答案的范围。
HSM 模块
与 KMS 密钥存储库不同,HSM 模块可以访问纯文本密钥。但是,纯文本密钥仅在使用期间加载 in-memory。它们不会持久存储在 HSM 模块中。
These keys are made available only on the HSMs and only in memory for the necessary time needed to process your cryptographic request.
因此,有权访问这些模块的员工在理论上将能够访问这些密钥。为了减轻这种风险,如果您转到 design goals section,该文章进一步解释了模块使用 quorum-based 访问控制。
Multiple Amazon employees with role-specific access to quorum-based access controls are required to perform administrative actions on the HSMs.
也就是说,任何员工都不会拥有对这些模块的管理权限。总是需要多名员工。同样,AWS 如何将哪些角色分配给哪些员工处于哪个管理级别超出了本答案的范围。
正如问题所要求的,这些只是关于如何针对 AWS 员工保护服务的一些考虑因素。一个组织要决定是否使用 AWS,通常应该基于一套全面的安全策略和审计 AWS 是否符合这些要求。
编辑
既然你也提到了如何说服利益相关者,这通常是一个业务问题而不是技术问题。
我建议他们参考 AWS compliance 以获取 AWS 通过严格的第 3 方审核的证据。然后会指出系统的安全性仅与最弱的 link 一样强。也就是说,使用 AWS 并不意味着我们自动拥有 AWS 安全性。我们必须确保我们的软件、我们的人员和我们的流程是安全的,不会受到攻击。因此,除非我们确定我们拥有比 AWS 更好的安全配置文件(以及他们所有的合规性和审计),否则我们的重点和担忧应该更多地放在保护我们的资源上。
我打算使用 AWS KMS 来加密我的数据库。然而,老板向我提出挑战,如果亚马逊员工有权窃取我的 KMS 并解密我的数据库怎么办。 数据库中的信息非常重要,不能冒任何被他人解密的风险。
是否有其他解决方案可以解决此问题?确保没有人可以窃取密钥?
我们是否应该使用一些本地 HSM 来存储密钥?
正如 FAQ 指出的那样,AWS KMS 的设计使得
no one, including AWS employees, can retrieve your plaintext KMS keys from the service.
如果您进一步阅读,它还提供了 link 各种文章,详细介绍了 KMS 的规范和设计。正如您从这些文章中看到的那样,设计考虑的全部范围以及它如何符合 FIPS 认证超出了本答案的范围。
但是,作为示例,请参阅 cryptographic details tech paper 了解其工作原理的一些想法。提到了 2 个存在键的区域:
- 在 KMS 密钥存储库中
- 在 HSM 模块中
KMS 密钥存储库
存储库用作密钥的持久存储。当然,密钥是加密存储的。文章进一步解释了密钥存储库利用 IAM 角色。
Only under AWS IAM roles and accounts administered by each customer can customer KMS keys be created, deleted, or used to encrypt, decrypt, sign, or verify data.
这与管理对任何其他 AWS 服务的身份验证和授权的方式相同。因此,这是防止 AWS 员工访问密钥的一种方法。 IAM 的工作原理及其安全性再次超出了本答案的范围。
HSM 模块
与 KMS 密钥存储库不同,HSM 模块可以访问纯文本密钥。但是,纯文本密钥仅在使用期间加载 in-memory。它们不会持久存储在 HSM 模块中。
These keys are made available only on the HSMs and only in memory for the necessary time needed to process your cryptographic request.
因此,有权访问这些模块的员工在理论上将能够访问这些密钥。为了减轻这种风险,如果您转到 design goals section,该文章进一步解释了模块使用 quorum-based 访问控制。
Multiple Amazon employees with role-specific access to quorum-based access controls are required to perform administrative actions on the HSMs.
也就是说,任何员工都不会拥有对这些模块的管理权限。总是需要多名员工。同样,AWS 如何将哪些角色分配给哪些员工处于哪个管理级别超出了本答案的范围。
正如问题所要求的,这些只是关于如何针对 AWS 员工保护服务的一些考虑因素。一个组织要决定是否使用 AWS,通常应该基于一套全面的安全策略和审计 AWS 是否符合这些要求。
编辑
既然你也提到了如何说服利益相关者,这通常是一个业务问题而不是技术问题。
我建议他们参考 AWS compliance 以获取 AWS 通过严格的第 3 方审核的证据。然后会指出系统的安全性仅与最弱的 link 一样强。也就是说,使用 AWS 并不意味着我们自动拥有 AWS 安全性。我们必须确保我们的软件、我们的人员和我们的流程是安全的,不会受到攻击。因此,除非我们确定我们拥有比 AWS 更好的安全配置文件(以及他们所有的合规性和审计),否则我们的重点和担忧应该更多地放在保护我们的资源上。