[Yandex Cloud documentation](../../index.md) > [Yandex Lockbox](../index.md) > [Step-by-step guides](index.md) > Updating a secret

# Updating a secret

To update a secret:

{% list tabs group=instructions %}

- Management console {#console}

    1. In the [management console](https://console.yandex.cloud), select the folder the secret belongs to.
    1. Navigate to **Lockbox**.
    1. In the left-hand menu, select **Secrets**.
    1. Tap ![image](../../_assets/console-icons/ellipsis.svg) next to the secret and select **Edit**.
    1. Update the name and description of the secret. If necessary, select **Block secret deletion**.
    1. Change the secret type and specify either key and value or value generation parameters.
        
        When you change the secret type, key, or generation parameters, a new version will be created.
    1. Click **Save**.

- CLI {#cli}
  
  If you do not have the Yandex Cloud CLI yet, [install and initialize it](../../cli/quickstart.md#install).

  The folder used by default is the one specified when [creating](../../cli/operations/profile/profile-create.md) the CLI profile. To change the default folder, use the `yc config set folder-id <folder_ID>` command. You can also specify a different folder for any command using `--folder-name` or `--folder-id`. If you access a resource by its name, the search will be limited to the default folder. If you access a resource by its ID, the search will be global, i.e., through all folders based on access permissions.

  1. View a description of the CLI command for adding resources to a secret:
     ```bash
     yc lockbox secret update --help
     ```

  1. Run the command, specifying the secret name or ID:
     ```bash
     yc lockbox secret update \
       --id <secret_ID> \
       --new-name <new_secret_name> \
       --description <new_secret_description>
     ```

     Result:
     ```
     id: e6q2ig0u9b97********
     folder_id: b1gyggt2th59********
     created_at: "2021-11-08T19:23:00.383Z"
     name: <new_secret_name>
     description: <new_secret_description>
     status: ACTIVE
     current_version:
       id: e6q8ma3b6pd1********
       secret_id: e6q2ug0o9b24********
       created_at: "2021-11-08T19:23:00.383Z"
       status: ACTIVE
       payload_entry_keys:
       - <key>
     ```

- Terraform {#tf}

  If you do not have Terraform yet, [install it and configure the Yandex Cloud provider](../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
  
  
  To manage infrastructure using Terraform under a service account or user accounts (a Yandex account, a federated account, or a local user), [authenticate](../../terraform/authentication.md) using the appropriate method.

  1. Open the Terraform configuration file and edit the fragment with the secret description:

     {% cut "Sample secret description in the Terraform" %} configuration

     ```
     ...
     resource "yandex_lockbox_secret" "my_secret" {
       name                = "My secret"
       description         = "test secret from tf"
       folder_id           = "b1gmitvfx321d3********"
       kms_key_id          = "abjp8q2fjfg0s********"
       deletion_protection = true
       labels              = {
         tf-label    = "tf-label-value",
         empty-label = ""
       }
     }
     ...
     ```

     {% endcut %}

  1. Apply the changes:

      1. In the terminal, navigate to the configuration file directory.
      1. Make sure the configuration is correct using this command:
      
         ```bash
         terraform validate
         ```
      
         If the configuration is valid, you will get this message:
      
         ```bash
         Success! The configuration is valid.
         ```
      
      1. Run this command:
      
         ```bash
         terraform plan
         ```
      
         You will see a list of resources and their properties. No changes will be made at this step. Terraform will show any errors in the configuration.
      1. Apply the configuration changes:
      
         ```bash
         terraform apply
         ```
      
      1. Type `yes` and press **Enter** to confirm the changes.

  You can check the secret's update and configuration using the [management console](https://console.yandex.cloud) or this [CLI](../../cli/quickstart.md) command:

    ```bash
    yc lockbox secret get <secret_name>
    ```

- API {#api}

  To update a secret, use the [update](../api-ref/Secret/update.md) REST API method for the [Secret](../api-ref/Secret/index.md) resource or the [SecretService/Update](../api-ref/grpc/Secret/update.md) gRPC API call.

{% endlist %}

## See also {#see-also}

* [Secrets in Yandex Lockbox](../concepts/secret.md)