如何在不使用 json 文件的情况下使用 SecretManagerServiceClient 的服务帐户凭据
How to use the Service Account credentials for SecretManagerServiceClient without using a json file
我正在使用以下代码访问服务帐户凭据,不确定,因为秘密管理器在其 Create() 中不接受凭据,所以我尝试了 https://cloud.google.com/docs/authentication/production#passing_code 中的第二种方法。
我做错了什么?
var text = File.ReadAllText(@"cred.json");
JObject credential = JObject.Parse(text);
SecretManagerServiceClientBuilder secretManagerServiceClientBuilder = new SecretManagerServiceClientBuilder()
{
JsonCredentials = o1,
};
SecretManagerServiceClient client = secretManagerServiceClientBuilder.Build();
// Create the client.
client = SecretManagerServiceClient.Create();
找到解决方案 -
可以通过两种方式通过代码访问服务帐户 -
检查 API 是否像存储桶一样接受创建方法中的凭据,然后使用第一种方法。
var credential = GoogleCredential.FromFile(jsonPath);
var storage = StorageClient.Create(credential);
如果 create() 不接受参数,则使用该构建器 API 就像秘密管理器的 SecretManagerServiceClientBuilder,KMS 的 KeyManagementServiceClientBuilder。只需将创建部分替换为构建器部分即可。
var text = File.ReadAllText(@"cred.json");
SecretManagerServiceClientBuilder secretManagerServiceClientBuilder = new SecretManagerServiceClientBuilder()
{
JsonCredentials = text,
};
SecretManagerServiceClient client = secretManagerServiceClientBuilder.Build();
SecretVersionName secretVersionName = new SecretVersionName(projectId, secretId, secretVersionId);
// Call the API.
AccessSecretVersionResponse result = client.AccessSecretVersion(secretVersionName);
// Convert the payload to a string. Payloads are bytes by default.
String payload = result.Payload.Data.ToStringUtf8();
我正在使用以下代码访问服务帐户凭据,不确定,因为秘密管理器在其 Create() 中不接受凭据,所以我尝试了 https://cloud.google.com/docs/authentication/production#passing_code 中的第二种方法。 我做错了什么?
var text = File.ReadAllText(@"cred.json");
JObject credential = JObject.Parse(text);
SecretManagerServiceClientBuilder secretManagerServiceClientBuilder = new SecretManagerServiceClientBuilder()
{
JsonCredentials = o1,
};
SecretManagerServiceClient client = secretManagerServiceClientBuilder.Build();
// Create the client.
client = SecretManagerServiceClient.Create();
找到解决方案 -
可以通过两种方式通过代码访问服务帐户 -
检查 API 是否像存储桶一样接受创建方法中的凭据,然后使用第一种方法。
var credential = GoogleCredential.FromFile(jsonPath); var storage = StorageClient.Create(credential);
如果 create() 不接受参数,则使用该构建器 API 就像秘密管理器的 SecretManagerServiceClientBuilder,KMS 的 KeyManagementServiceClientBuilder。只需将创建部分替换为构建器部分即可。
var text = File.ReadAllText(@"cred.json"); SecretManagerServiceClientBuilder secretManagerServiceClientBuilder = new SecretManagerServiceClientBuilder() { JsonCredentials = text, }; SecretManagerServiceClient client = secretManagerServiceClientBuilder.Build(); SecretVersionName secretVersionName = new SecretVersionName(projectId, secretId, secretVersionId); // Call the API. AccessSecretVersionResponse result = client.AccessSecretVersion(secretVersionName); // Convert the payload to a string. Payloads are bytes by default. String payload = result.Payload.Data.ToStringUtf8();