AWS - KMS Enum
KMS - Key Management Service
AWS Key Management Service (AWS KMS) 被呈现为一种托管服务,简化了用户创建和管理客户主密钥(CMKs)的过程。这些 CMKs 在用户数据的加密中起着至关重要的作用。AWS KMS 的一个显著特点是 CMKs 主要由硬件安全模块(HSMs)保护,增强了加密密钥的保护。
KMS 使用对称加密。这用于加密静态信息(例如,在 S3 内)。如果需要加密传输中的信息,则需要使用类似 TLS 的东西。
KMS 是一个特定区域的服务。
Amazon 的管理员无法访问您的密钥。他们无法恢复您的密钥,也不会帮助您加密您的密钥。AWS 仅管理操作系统和底层应用程序,管理我们的加密密钥以及这些密钥的使用方式由我们负责。
客户主密钥(CMK):可以加密最多 4KB 大小的数据。它们通常用于创建、加密和解密 DEKs(数据加密密钥)。然后使用 DEKs 加密数据。
客户主密钥(CMK)是 AWS KMS 中主密钥的逻辑表示。除了主密钥的标识符和其他元数据(包括其创建日期、描述和密钥状态)外,CMK 包含用于加密和解密数据的密钥材料。当您创建 CMK 时,默认情况下,AWS KMS 会为该 CMK 生成密钥材料。但是,您可以选择创建没有密钥材料的 CMK,然后将自己的密钥材料导入该 CMK。
有两种类型的主密钥:
AWS 管理的 CMKs:由其他服务用于加密数据。它由在某个区域创建它的服务使用。它们在您第一次在该服务中实现加密时创建。每 3 年轮换一次,无法更改。
客户管理的 CMKs:灵活性、轮换、可配置的访问和密钥策略。启用和禁用密钥。
信封加密在密钥管理服务(KMS)中的上下文:两级层次系统,使用数据密钥加密数据,然后使用主密钥加密数据密钥。
Key Policies
这些定义了谁可以使用和访问 KMS 中的密钥。
默认情况下:
它赋予拥有 KMS 密钥的 AWS 账户对 KMS 密钥的完全访问权限。
与其他 AWS 资源策略不同,AWS KMS 密钥策略不会自动授予账户或其任何用户权限。要授予账户管理员权限,密钥策略必须包含明确的声明,提供此权限,如下所示。
如果不允许账户(
"AWS": "arn:aws:iam::111122223333:root"
) IAM 权限将不起作用。它允许账户使用 IAM 策略来允许访问 KMS 密钥,除了密钥策略之外。
没有此权限,允许访问密钥的 IAM 策略将无效,尽管拒绝访问密钥的 IAM 策略仍然有效。
它通过将访问控制权限授予账户管理员(包括无法删除的账户根用户)来降低密钥变得不可管理的风险。
默认策略示例:
如果账户被允许("arn:aws:iam::111122223333:root"
),账户中的principal仍然需要IAM权限才能使用KMS密钥。然而,如果角色的ARN例如在Key Policy中被特别允许,该角色不需要IAM权限。
Key Administrators
默认的Key administrator:
有权管理KMS但不能加密或解密数据
只有IAM用户和角色可以被添加到Key Administrators列表中(不是组)
如果使用外部CMK,Key Administrators有权限导入密钥材料
CMKs的轮换
密钥使用时间越长,用该密钥加密的数据就越多,如果该密钥被破坏,那么受影响的数据范围就越广。此外,密钥活跃时间越长,被破坏的概率就越大。
KMS每365天轮换一次客户密钥(或者你可以随时手动执行此过程),AWS管理的密钥每3年轮换一次,这个时间不能更改。
保留旧密钥以解密在轮换之前加密的数据
在破坏情况下,轮换密钥不会消除威胁,因为仍然可以解密使用被破坏密钥加密的所有数据。然而,新数据将使用新密钥加密。
如果CMK处于禁用或待删除状态,KMS将不会执行密钥轮换,直到CMK重新启用或取消删除。
手动轮换
需要创建一个新CMK,然后创建一个新的CMK-ID,因此你需要更新任何应用程序以引用新的CMK-ID。
为了使这个过程更容易,你可以使用别名来引用key-id,然后只需更新别名所引用的密钥。
你需要保留旧密钥以解密旧文件。
你可以从本地密钥基础设施导入密钥。
其他相关的KMS信息
KMS按每月从所有服务接收到的加密/解密请求数量收费。
KMS与CloudTrail有完整的审计和合规集成;你可以在这里审计对KMS进行的所有更改。
使用KMS策略你可以做以下事情:
限制谁可以创建数据密钥以及哪些服务有权使用这些密钥
限制系统访问仅加密、仅解密或两者
定义允许系统跨区域访问密钥(尽管不推荐,因为托管KMS的区域故障将影响其他区域系统的可用性)。
你不能同步或移动/复制跨区域的密钥;你只能定义规则以允许跨区域访问。
Enumeration
提权
AWS - KMS Privesc后渗透
AWS - KMS Post Exploitation持久化
AWS - KMS Persistence参考资料
Last updated