首页 > 解决方案 > 存储在 Google Secret Manager 中的 DotNet 用户机密

问题描述

我需要将 dotnet Web 应用程序部署到 Google Cloud Run,并希望使用用户机密文件来存储凭据。目前,它们位于不安全的 appsettings 中。有没有人使用 Google Secret Manager 做到这一点?

如果有现有的示例或片段,他们将不胜感激。

谢谢。

标签: c#.net-coregoogle-cloud-platformgoogle-cloud-rungoogle-secret-manager

解决方案


Google Cloud Run 和 Google Secret Manager 可以很好地协同工作。关键是授予 Cloud Run 服务帐户访问 Secret Manager 的权限。这消除了在您的应用程序中访问 Secret Manager 的需要。

访问控制

最好存储键值对,一个json blob吗?

这取决于存储的数据量。通常,您创建一个具有名称 (secretId) 的密钥并将数据分配给该密钥(通过 API 或 CLI gcloud)。在您的应用程序中,您按名称 (secretId) 读取密钥。

我想在启动时而不是在构建时提取值。

Seth Vargo(此处重复)提供的链接包含 C# 和许多其他语言的示例。您的应用程序在运行时从 Secret Manager 读取机密。

创建机密和版本

Guillaume Blaquiere 写了一篇文章,展示了如何使用 Secret Manager、Cloud Run 和环境变量。绝对值得一读。

Secret Manager:在不更改代码的情况下提高 Cloud Run 安全性


推荐阅读