Ejemplo n.º 1
0
        // [START secretmanager_access_secret_version]
        /// <summary>
        /// Accesses a secret with provided version.
        /// </summary>
        /// <param name="projectId">ID of the project where the secret resides.</param>
        /// <param name="secretId">ID of the secret.</param>
        /// <param name="secretVersion">Version of the secret.</param>
        /// <example>
        /// With a specific version.
        /// <code>AccessSecretVersion("my-project", "my-secret", "5")</code>
        /// </example>
        /// <example>
        /// With an alias version.
        /// <code>AccessSecretVersion("my-project", "my-secret", "latest")</code>
        /// </example>
        public static void AccessSecretVersion(string projectId, string secretId, string secretVersion)
        {
            SecretManagerServiceClient client = SecretManagerServiceClient.Create();

            // Create the request.
            var request = new AccessSecretVersionRequest
            {
                SecretVersionName = new SecretVersionName(projectId, secretId, secretVersion),
            };

            // Access the secret and print the result.
            //
            // WARNING: Do not print secrets in production environments. This
            // snippet is for demonstration purposes only.
            var    version = client.AccessSecretVersion(request);
            string payload = version.Payload.Data.ToStringUtf8();

            Console.WriteLine($"Payload: {payload}");
        }
        public void StoreSecret([FromForm] string projectId, [FromForm] string secretId)
        {
            IDatabase db = Connection.GetDatabase();

            db.StringSet("name", "redis");
            Console.WriteLine(db.StringGet("name"));
            //call SDK
            SecretManagerServiceClient client = SecretManagerServiceClient.Create();

            // Build the parent project name.
            ProjectName projectName = new ProjectName(projectId);

            // Build the secret to create.
            Secret secret = new Secret
            {
                Replication = new Replication
                {
                    Automatic = new Replication.Types.Automatic(),
                },
            };

            Secret createdSecret = client.CreateSecret(projectName, secretId, secret);

            // Build a payload.
            SecretPayload payload = new SecretPayload
            {
                Data = ByteString.CopyFrom("my super secret data", Encoding.UTF8),
            };

            // Add a secret version.
            SecretVersion createdVersion = client.AddSecretVersion(createdSecret.SecretName, payload);

            // Access the secret version.
            AccessSecretVersionResponse result = client.AccessSecretVersion(createdVersion.SecretVersionName);

            // Print the resultszxcvbnj
            //
            // WARNING: Do not print secrets in production environments. This
            // snippet is for demonstration purposes only.
            string data = result.Payload.Data.ToStringUtf8();

            Console.WriteLine($"Plaintext: {data}");
        }
        public void TestRun()
        {
            string ts       = $"{DateTime.Now.ToString("yyyyMMddHHmmssfff")}";
            string secretId = $"csharp-quickstart-{ts}-1";

            // Run quickstart
            var output = _quickStart.Run(s_projectId, secretId);

            // Verify output
            Assert.Equal(0, output.ExitCode);
            Assert.Contains($"Plaintext: my super secret data", output.Stdout);

            // Delete the secret created by quickstart
            SecretManagerServiceClient client = SecretManagerServiceClient.Create();

            client.DeleteSecret(new DeleteSecretRequest
            {
                SecretName = new SecretName(s_projectId, secretId),
            });
        }
Ejemplo n.º 4
0
        public IActionResult Put(string id, [FromBody] Dictionary <string, string> labels)
        {
            var client = SecretManagerServiceClient.Create();

            var secret = new Secret
            {
                SecretName = new SecretName(ProjectId, id),
            };

            foreach (var label in labels)
            {
                secret.Labels[label.Key] = label.Value;
            }

            var fieldMask = FieldMask.FromString("labels");

            var updatedSecret = client.UpdateSecret(secret, fieldMask);

            return(Ok(updatedSecret));
        }
Ejemplo n.º 5
0
        public string GetGoogleClientSecret()
        {
            SecretManagerServiceClient client = SecretManagerServiceClient.Create();

            // Build the resource name.
            SecretVersionName secretVersionName = new SecretVersionName("protean-bus-312220", "ApiClientId", "3");

            // 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();

            dynamic keys = JsonConvert.DeserializeObject(payload);

            JObject jObject = JObject.Parse(payload);
            JToken  jKey    = jObject["Authentication:Google:ClientSecret"].ToString();

            return(jKey.ToString());
        }
Ejemplo n.º 6
0
        public string GetSecret()
        {
            string secretName = "SqlUserSecret";
            //string region = Configuration.GetValue<string>("AWSRegion");
            var projectId = Configuration.GetValue <string>("projectid");

            SecretManagerServiceClient client = SecretManagerServiceClient.Create();

            // Build the resource name.
            SecretVersionName secretVersionName = new SecretVersionName(projectId, secretName, "latest");

            // 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();

            return(payload);
            // Your code goes here.
        }
Ejemplo n.º 7
0
        public static int Main(string[] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine("Error: please specify a project ID");
                return(1);
            }
            string projectId = args[0];

            // Create client
            SecretManagerServiceClient client = SecretManagerServiceClient.Create();
            var secrets = client.ListSecrets(new ProjectName(projectId));

            foreach (var secret in secrets)
            {
                Console.WriteLine(secret.Name);
            }
            Console.WriteLine("Smoke test passed OK");
            return(0);
        }
Ejemplo n.º 8
0
    public SecretVersion AddSecretVersion(
        string projectId = "my-project", string secretId = "my-secret",
        string data      = "my secret data")
    {
        // Create the client.
        SecretManagerServiceClient client = SecretManagerServiceClient.Create();

        // Build the resource name.
        SecretName secretName = new SecretName(projectId, secretId);

        // Convert the payload to bytes.
        SecretPayload payload = new SecretPayload
        {
            Data = ByteString.CopyFrom(data, Encoding.UTF8),
        };

        // Call the API.
        SecretVersion version = client.AddSecretVersion(secretName, payload);

        return(version);
    }
Ejemplo n.º 9
0
    public Secret UpdateSecret(string projectId = "my-project", string secretId = "my-secret")
    {
        // Create the client.
        SecretManagerServiceClient client = SecretManagerServiceClient.Create();

        // Build the secret with updated fields.
        Secret secret = new Secret
        {
            SecretName = new SecretName(projectId, secretId),
        };

        secret.Labels["secretmanager"] = "rocks";

        // Build the field mask.
        FieldMask fieldMask = FieldMask.FromString("labels");

        // Call the API.
        Secret updatedSecret = client.UpdateSecret(secret, fieldMask);

        return(updatedSecret);
    }
Ejemplo n.º 10
0
    public void Quickstart(string projectId = "my-project", string secretId = "my-secret")
    {
        // Create the client.
        SecretManagerServiceClient client = SecretManagerServiceClient.Create();

        // Build the parent project name.
        ProjectName projectName = new ProjectName(projectId);

        // Build the secret to create.
        Secret secret = new Secret
        {
            Replication = new Replication
            {
                Automatic = new Replication.Types.Automatic(),
            },
        };

        Secret createdSecret = client.CreateSecret(projectName, secretId, secret);

        // Build a payload.
        SecretPayload payload = new SecretPayload
        {
            Data = ByteString.CopyFrom("my super secret data", Encoding.UTF8),
        };

        // Add a secret version.
        SecretVersion createdVersion = client.AddSecretVersion(createdSecret.SecretName, payload);

        // Access the secret version.
        AccessSecretVersionResponse result = client.AccessSecretVersion(createdVersion.SecretVersionName);

        // Print the results
        //
        // WARNING: Do not print secrets in production environments. This
        // snippet is for demonstration purposes only.
        string data = result.Payload.Data.ToStringUtf8();

        Console.WriteLine($"Plaintext: {data}");
    }
Ejemplo n.º 11
0
        // [END secretmanager_access_secret_version]

        // [START secretmanager_add_secret_version]
        /// <summary>
        /// Add a secret version to the given secret. The given secret must
        /// already exist.
        /// </summary>
        /// <param name="projectId">ID of the project where the secret resides.</param>
        /// <param name="secretId">ID of the secret.</param>
        /// <example>
        /// Add a secret version.
        /// <code>AddSecretVersion("my-project", "my-secret")</code>
        /// </example>
        public static void AddSecretVersion(string projectId, string secretId)
        {
            SecretManagerServiceClient client = SecretManagerServiceClient.Create();

            // Create the secret payload.
            var payload = "my super secret data";

            // Create the request.
            var request = new AddSecretVersionRequest
            {
                ParentAsSecretName = new SecretName(projectId, secretId),
                Payload            = new SecretPayload
                {
                    Data = ByteString.CopyFrom(payload, Encoding.UTF8),
                },
            };

            // Add the secret version.
            var version = client.AddSecretVersion(request);

            Console.WriteLine($"Added secret version {version.Name}");
        }
Ejemplo n.º 12
0
        public override void Load()
        {
            var client = SecretManagerServiceClient.Create();

            var clientIdSecretName = new SecretVersionName(GcpProjectId, "Authentication__ClientId", "latest");
            var clientId           = client.AccessSecretVersion(clientIdSecretName)?.Payload?.Data?.ToStringUtf8();

            if (!string.IsNullOrEmpty(clientId))
            {
                _config["Authentication:ClientId"] = clientId;
            }

            var clientSecretSecretName = new SecretVersionName(GcpProjectId, "Authentication__ClientSecret", "latest");
            var clientSecret           = client.AccessSecretVersion(clientSecretSecretName)?.Payload?.Data?.ToStringUtf8();

            if (!string.IsNullOrEmpty(clientSecret))
            {
                _config["Authentication:ClientSecret"] = clientSecret;
            }

            base.Load();
        }
Ejemplo n.º 13
0
        // [END secretmanager_add_secret_version]

        // [START secretmanager_create_secret]
        /// <summary>
        /// Create a new secret in the given project with the given name.
        /// </summary>
        /// <param name="projectId">ID of the project in which to create the secret.</param>
        /// <param name="secretId">ID of the secret.</param>
        /// <example>
        /// Create a secret.
        /// <code>CreateSecret("my-project", "my-secret")</code>
        /// </example>
        public static void CreateSecret(string projectId, string secretId)
        {
            SecretManagerServiceClient client = SecretManagerServiceClient.Create();

            // Create the request.
            var request = new CreateSecretRequest
            {
                ParentAsProjectName = new ProjectName(projectId),
                SecretId            = secretId,
                Secret = new Secret
                {
                    Replication = new Replication
                    {
                        Automatic = new Replication.Types.Automatic(),
                    },
                },
            };

            // Create the secret.
            var secret = client.CreateSecret(request);

            Console.WriteLine($"Created secret {secret.Name}");
        }
Ejemplo n.º 14
0
    /// <summary>
    /// Initializes a new instance of the <see cref="GcpSecretManagerConfigurationProvider"/> class.
    /// </summary>
    /// <param name="projectId">GCP project id.</param>
    /// <param name="secretManagerCredentialsPath">Secret Manager credentials path.</param>
    public GcpSecretManagerConfigurationProvider(
        string?projectId, string?secretManagerCredentialsPath)
    {
        if (projectId != null && secretManagerCredentialsPath != null)
        {
            SecretManagerServiceClientBuilder secretManagerServiceClientBuilder = new();
            secretManagerServiceClientBuilder.CredentialsPath = secretManagerCredentialsPath;
            _client = secretManagerServiceClientBuilder.Build();
        }
        else
        {
            try
            {
                _client = SecretManagerServiceClient.Create();
            }
            catch (InvalidOperationException ex)
            {
                Console.WriteLine(ex.Message);
            }
        }

        _projectId = string.IsNullOrWhiteSpace(projectId) ? GetGcpProjectId() : projectId;
    }
Ejemplo n.º 15
0
    public Secret CreateSecret(
        string projectId = "my-project", string secretId = "my-secret")
    {
        // Create the client.
        SecretManagerServiceClient client = SecretManagerServiceClient.Create();

        // Build the parent resource name.
        ProjectName projectName = new ProjectName(projectId);

        // Build the secret.
        Secret secret = new Secret
        {
            Replication = new Replication
            {
                Automatic = new Replication.Types.Automatic(),
            },
        };

        // Call the API.
        Secret createdSecret = client.CreateSecret(projectName, secretId, secret);

        return(createdSecret);
    }
Ejemplo n.º 16
0
        // [END secretmanager_list_secrets]

        // [START secretmanager_update_secret]
        /// <summary>
        /// Update an existing secret.
        /// </summary>
        /// <param name="projectId">ID of the project where the secret resides.</param>
        /// <param name="secretId">ID of the secret.</param>
        /// <example>
        /// Update an existing secret.
        /// <code>UpdateSecret("my-project", "my-secret")</code>
        /// </example>
        public static void UpdateSecret(string projectId, string secretId)
        {
            SecretManagerServiceClient client = SecretManagerServiceClient.Create();

            // Create the secret to update.
            var secret = new Secret
            {
                SecretName = new SecretName(projectId, secretId),
            };

            secret.Labels["secretmanager"] = "rocks";

            // Create the request.
            var request = new UpdateSecretRequest
            {
                Secret     = secret,
                UpdateMask = FieldMask.FromString("labels"),
            };

            // Update the secret
            var updatedSecret = client.UpdateSecret(request);

            Console.WriteLine($"Updated secret {updatedSecret.Name}");
        }
        public IConfigurationProvider Build(IConfigurationBuilder builder)
        {
            var client = SecretManagerServiceClient.Create();

            return(new SecretsManagerConfigurationProvider(client, ProjectName, SecretManager));
        }
Ejemplo n.º 18
0
 public SecretsMang()
 {
     client    = SecretManagerServiceClient.Create();
     projectId = "supernova-303818";
 }
Ejemplo n.º 19
0
 public SecretManagerConfigurationProvider(SecretManagerServiceClient client, SecretManagerConfigurationSource configurationSource)
 {
     this.client = client;
     projectName = new ProjectName(configurationSource.ProjectName);
     logger      = configurationSource.LoggerFactory.CreateLogger <SecretManagerConfigurationProvider>();
 }
Ejemplo n.º 20
0
 public SecretService()
 {
     this.client = SecretManagerServiceClient.Create();
 }
Ejemplo n.º 21
0
 public GoogleSecretManagerService()
 {
     m_logger    = LogManager.GetCurrentClassLogger();
     m_client    = SecretManagerServiceClient.Create();
     m_projectId = GoogleComputeEngineHelper.GetCurrentProjectId();
 }
Ejemplo n.º 22
0
    private void DisableSecretVersion(SecretVersion version)
    {
        SecretManagerServiceClient client = SecretManagerServiceClient.Create();

        client.DisableSecretVersion(version.SecretVersionName);
    }
Ejemplo n.º 23
0
        public static void Main(string[] args)
        {
            // GCP project in which to store secrets in Secret Manager.
            string projectId = "YOUR-PROJECT-ID";

            // ID of the secret to create.
            string secretId = "YOUR-SECRET-ID";

            // [END secretmanager_quickstart]
            if (args.Length > 1)
            {
                projectId = args[0];
                secretId  = args[1];
            }
            // [START secretmanager_quickstart]
            // Create a Secret Manager client.
            SecretManagerServiceClient client = SecretManagerServiceClient.Create();

            // Create the parent secret.
            var createSecretRequest = new CreateSecretRequest
            {
                ParentAsProjectName = new ProjectName(projectId),
                SecretId            = secretId,
                Secret = new Secret
                {
                    Replication = new Replication
                    {
                        Automatic = new Replication.Types.Automatic(),
                    },
                },
            };

            var secret = client.CreateSecret(createSecretRequest);

            // Add a secret version.
            var addSecretVersionRequest = new AddSecretVersionRequest
            {
                ParentAsSecretName = secret.SecretName,
                Payload            = new SecretPayload
                {
                    Data = ByteString.CopyFrom("my super secret data", Encoding.UTF8),
                },
            };

            var version = client.AddSecretVersion(addSecretVersionRequest);

            // Access the secret version.
            var accessSecretVersionRequest = new AccessSecretVersionRequest
            {
                SecretVersionName = version.SecretVersionName,
            };

            var result = client.AccessSecretVersion(accessSecretVersionRequest);

            // Print the results
            //
            // WARNING: Do not print secrets in production environments. This
            // snippet is for demonstration purposes only.
            string payload = result.Payload.Data.ToStringUtf8();

            Console.WriteLine($"Plaintext: {payload}");
        }
Ejemplo n.º 24
0
 public SecretsManagerConfigurationProvider(SecretManagerServiceClient secretManagerServiceClient, string projectName, ISecretManager manager)
 {
     this.secretManagerServiceClient = secretManagerServiceClient;
     this.projectName = projectName;
     this.manager     = manager;
 }
Ejemplo n.º 25
0
 public IConfigurationProvider Build(IConfigurationBuilder builder)
 {
     return(new SecretManagerConfigurationProvider(SecretManagerServiceClient.Create(), this));
 }
Ejemplo n.º 26
0
 public IActionResult Get() =>
 Ok(SecretManagerServiceClient.Create().ListSecrets(ProjectName));
 public virtual SecretManagerServiceClient Create()
 => SecretManagerServiceClient.Create();