Key Management #
在深入探讨密钥管理之前,我们首先需要定义加密密钥。密钥是用于加密或签名数据的一串字符。类似物理钥匙,密钥通过“加密”来锁定数据,只有拥有正确密钥的人才能“解锁”数据(即解密)。
随着应用和操作逐步适应云原生世界,安全工具也在不断发展,以满足新的安全需求。本类别中的工具和项目涵盖了从如何安全存储密码和其他机密信息(如API密钥、加密密钥等)到如何在微服务环境中安全消除密码和机密的方方面面。
解决的问题 #
云原生环境高度动态,要求按需分发机密数据。这意味着这一过程必须完全通过编程实现(无需人工干预),并且需要自动化。
此外,应用需要验证某个请求是否来自有效的来源(身份验证 AuthN),以及该请求是否拥有执行操作的权限(授权 AuthZ)。这一过程通常被称为身份验证(AuthN)和授权(AuthZ)。
提供的帮助 #
每个工具或项目采取不同的方式,但它们都提供了安全分发机密和密钥的方案,或者是与身份验证、授权相关的服务或规范。
技术基础 #
本类别中的工具可分为两类:
- 密钥生成、存储、管理和轮换;
- 单点登录和身份管理。
例如,Vault是一个通用的密钥管理工具,允许你管理多种类型的密钥。而Keycloak 则是一个身份代理工具,可用于管理不同服务的访问密钥。
Keywords #
- AuthN and AuthZ
- Identity
- Access
- Secrets
Projects #
- SPIFFE (graduated)
- SPIRE (graduated)
- Athenz (sandbox)
- Teller (sandbox)
- Vault
- OAuth2 Proxy