本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS Secrets Manager 中的数据保护
AWS 责任共担模式
出于数据保护目的,我们建议您保护 AWS 账户 凭证并使用 AWS Identity and Access Management (IAM) 设置单独的用户账户。这仅向每个用户授予履行其工作职责所需的权限。我们还建议您通过以下方式保护数据:
-
对每个账户使用 multi-factor authentication(MFA)。
-
使用 SSL/TLS 与 AWS 资源进行通信。Secrets 在所有区域支持 TLS 1.2 和 1.3。Secrets Manager 还支持对传输层安全(TLS)网络加密协议使用混合后量子密钥交换选项(PQTLS)。
-
使用访问密钥 ID 和与 IAM 主体关联的秘密访问密钥来对以编程方式向 Secrets Manager 发出的请求进行签名。或者,您可以使用 AWS Security Token Service(AWS STS)生成临时安全凭证来对请求进行签名。
-
使用 AWS CloudTrail 设置 API 和用户活动日记账记录。请参阅 使用 AWS CloudTrail 记录 AWS Secrets Manager 事件。
-
如果在通过命令行界面或 API 访问 AWS 时需要经过 FIPS 140-2 验证的加密模块,请使用 FIPS 端点。请参阅 AWS Secrets Manager 端点。
-
如果使用 AWS CLI 访问 Secrets Manager,降低使用 AWS CLI 存储 AWS Secrets Manager 密钥的风险。
静态加密
Secrets Manager 使用通过 AWS Key Management Service (AWS KMS) 来保护静态数据的机密性。AWS KMS 提供由许多 AWS 服务使用的密钥存储和加密服务。Secrets Manager 中的每个密钥都使用唯一的数据密钥加密。每个数据密钥都由一个 KMS 密钥保护。您可以选择对账户使用 Secrets Manager AWS 托管式密钥 的默认加密,也可以在 AWS KMS 中创建自己的客户托管密钥。使用客户托管密钥可让您对 KMS 密钥活动进行更精细的授权控制。有关更多信息,请参阅 AWS Secrets Manager 中的密钥加密和解密。
传输中加密
Secrets Manager 为传输中的加密数据提供安全的私有终端节点。通过安全的私有终端节点,AWS 可以保护向 Secrets Manager 发出的 API 请求的完整性。AWS 要求调用方使用 X.509 证书和/或 Secrets Manager 秘密访问密钥对 API 调用进行签名。签名版本 4 签名流程 (Sigv4) 中阐述了此要求。
如果您将 AWS Command Line Interface (AWS CLI) 或任何 AWS SDK 要调用 AWS 中,您可以配置要使用的访问密钥。然后,这些工具会自动使用访问密钥为您签署请求。请参阅 降低使用 AWS CLI 存储 AWS Secrets Manager 密钥的风险。
互联网络流量隐私
AWS 提供了多个用于在通过已知的私有网络路由来路由流量时维护隐私的选项。
- 服务与本地客户端和应用之间的流量
-
在您的私有网络和 AWS Secrets Manager 之间有两个连接选项:
-
一个 AWS Site-to-Site VPN连接。有关更多信息,请参阅什么是 AWS Site-to-Site VPN?
-
AWS Direct Connect 连接。有关更多信息,请参阅什么是 AWS Direct Connect?
-
- 同一区域中 AWS 资源之间的流量
-
如果要保护 Secrets Manager 和 AWS 中的 API 客户端之间的流量,请设置一个 AWS PrivateLink
以私下访问 Secrets Manager API 端点。
加密密钥管理
当 Secrets Manager 需要加密受保护密钥数据的新版本,Secrets Manager 会将请求发送到 AWS KMS 在 KMS 密钥生成新的数据密钥。Secrets Manager 使用此数据密钥进行信封加密。Secrets Manager 将加密的数据密钥与加密的密钥储存在一起。密钥需要解密时,Secrets Manager 会询问 AWS KMS 来解密数据密钥。然后,Secrets Manager 使用解密的数据密钥来解密加密的密钥。Secrets Manager 从不以未加密的形式存储数据密钥,并尽快从内存中删除密钥。有关更多信息,请参阅 AWS Secrets Manager 中的密钥加密和解密。