在Google Cloud上访问Secret Manager的问题



我正试图找到一种方法来访问秘密管理器版本(服务accountkey文件)到托管在本地的应用程序。这个链接有一个关于如何通过c#通过秘密管理器客户端API访问它的示例,但这里的问题是它需要有一个ADC,这在那些服务器上是不可能的。我找不到任何地方,但是否SecretManager客户端API支持API密钥?如果没有,我还有什么选择?也有工作负载身份联合服务,但没有。net客户端API可用

//Uses ADC
SecretManagerServiceClient client = SecretManagerServiceClient.Create();

也有一个SecretManagerServiceClientBuilder,但没有关于如何使用它的文档

要使用ADC,您不需要在服务器上安装gcloud SDK(回复您的评论)。环境变量GOOGLE_APPLICATION_CREDENTIALS需要设置为value,其值为业务帐号密钥文件的绝对路径。这就是全部,库将自动检测此env var并使用该文件作为凭据。

如果你不放这个文件,如果你的应用程序不在Google Cloud上运行,库会查找"知名位置"。这个位置是用google auth application-default login命令创建的用户凭证文件的标准位置。


如果您仔细阅读了,具有env变量的ADC使用服务帐户凭据,并且已知位置使用用户证书。您在个人计算机/工作站中使用用户凭据。在生产环境和应用程序中,你使用"应用标识","服务标识",因此是一个服务帐户。

服务帐户密钥文件是为:为运行在GCP之外的应用程序提供服务身份,并对其进行认证以与GCP交互而制作的。然而,该文件包含一个秘密,您需要谨慎地保护它,并在您的进程中尽快旋转该文件。

最新更新