保护 Workload Identity 的最佳实践
为了安全地操作 Workload Identity,我们建议遵循以下最佳实践:
1. 应用最小权限原则
– 将 IAM 角色限制在必要的最低限度,并且不要授予不必要的权限。
– 例如,如果您只需要对 Cloud Storage 的读取权限,则仅授予“roles/storage.objectViewer”。
2. 持续审核 IAM 策略
- 定期验证使用 Workload Identity 的服务账户是否只能访问适当的资源。
– 使用“gcloud projects get-iam-policy”命令检查权限。
3. 配置监控和警报
- 启用云审计日志以通过 Workload Identity 记录访问历史记录。
- 与云监控结合,当检测到异常访问时接收通知。
4.IAM角色分离和策略管理
——对开发和生产环境使用不同的IAM角色,以防止不必要的访问。
– 为每个服务帐户设置适当的角色,并避免在不同环境中混合它们。
5. 加强每个 pod 的安全性
- 限制 Workload Identity 适用的 pod,并在命名空间级别进行控制。
- 结合网络策略,正确管理Pod之间的通信。
Workload Identity 是一种强大的身份验证方法,但如果使用不当,可能会导致以下风险:
1. 权限过大
– 配置错误的 IAM 策略可能允许访问 线数据 不必要的资源。
– 示例:虽然只应允许访问 BigQuery,但也授予对 Cloud Storage 的写入权限。
2. Kubernetes 服务账户 (KSA) 与 Google IAM 服务账户 (GSA) 不匹配
——如果 KSA 和 GSA 未正确关联,则存在非预期账户可能能够访问资源的风险。
3.凭证泄漏
——如果应用了工作负载身份的 Pod 未得到适当控制,IAM 角色可能会被滥用。
- 示例:应用了工作负载身份的 KSA 可能会被错误地分配给公共 Pod,从而允许从外部进行未经授权的访问。
4. 审计日志不足
——如果云审计日志配置不正确,则很难跟踪访问历史记录。
5. 未实施零信任安全
——即使您使用工作负载身份,缺乏网络级控制也会增加未经授权访问的风险。
如何正确配置 IAM 角色和 Workload Identity
正确配置 IAM 角色对于安全使用 Workload Identity 非常重要。按照以下步骤设置最佳 IAM 设置。
1. 定义 IAM 策略
– 赋予 GSA 最小特权 IAM 角色。
– 示例:仅允许对 Cloud Storage 进行读取访问