Crear y gestionar secretos con Cloud Code

Aprende a crear y gestionar secretos con la integración de Secret Manager de Cloud Code.


Para seguir las instrucciones paso a paso de esta tarea directamente en el editor de Cloud Shell, haz clic en Ayúdame:

Guíame


Antes de empezar

  1. In the Google Cloud console, go to the project selector page.

    Go to project selector

  2. Select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
  3. Crear un servicio de Cloud Run

    Usa el editor de Cloud Shell como entorno para crear tu servicio y tu secreto de Cloud Run. El editor ya tiene cargadas las herramientas necesarias para el desarrollo en Cloud.

    Para crear tu servicio, sigue estos pasos:

    1. En la barra de estado de Cloud Code, haz clic en el nombre del proyecto activo.

      Nombre del proyecto activo en la barra de estado

    2. En el menú de selección rápida que aparece, haz clic en Nueva aplicación y, a continuación, en Aplicación Cloud Run.

    3. En la lista de ejemplos de Cloud Run, selecciona Python (Flask): Cloud Run.

    4. Selecciona una carpeta para tu muestra y, a continuación, haz clic en Crear aplicación.

    Una vez que el editor de Cloud Shell haya cargado el servicio en un nuevo espacio de trabajo, consulta sus archivos en la vista del explorador.

    Crear un secreto

    Secret Manager te permite almacenar, gestionar y acceder de forma segura a secretos en forma de blobs binarios o de cadenas de texto. Además, gestiona tus secretos, por lo que no tienes que ocuparte de las máquinas virtuales ni de los servicios operativos.

    Para crear un secreto con la integración de Secret Manager de Cloud Code, sigue estos pasos:

    1. Haga clic en Secret Manager y espere un momento a que se cargue.
    2. Si se te pide que autorices a Cloud Shell para que pueda hacer llamadas a la API de Google Cloud, haz clic en Autorizar.
    3. Haz clic en Añadir Crear secreto.
    4. Si se le solicita, seleccione su proyecto de Google Cloud en el menú desplegable.
    5. Si se te solicita, habilita la API Secret Manager.
    6. En la pestaña Secret Manager - Create Secret (Gestor de secretos - Crear secreto) que aparece, introduce lo siguiente en el campo Name (Nombre):

      my-secret
      
    7. En el campo Valor secreto, introduzca lo siguiente:

      Hello secret!
      
    8. Haz clic en Crear secreto. Aparecerá un mensaje que indica que el secreto se ha creado correctamente.

    Añadir un secreto a tu código

    Los secretos son ideales para almacenar información de configuración, como contraseñas de bases de datos, claves de API o certificados TLS que necesite una aplicación durante el tiempo de ejecución.

    Para añadir un secreto a tu código:

    1. Abre la vista API de Cloud y selecciona la API Secret Manager.

      Se abrirá la pestaña Detalles de la API de Google Cloud con API Secret Manager como encabezado.

    2. En la sección Instalar biblioteca de cliente, haz clic en la pestaña Python y, a continuación, en play_arrow Ejecutar en terminal. De esta forma, se instala la biblioteca de cliente google-cloud-secret-manager.

    3. Abre requirements.txt y añade la siguiente línea al final del archivo:

      google-cloud-secret-manager==VERSION_NUMBER
      

      Puedes encontrar el número de versión en la consola después de ejecutar la instalación en el paso anterior. Por ejemplo, la consola podría mostrar lo siguiente: Successfully installed google-cloud-secret-manager-2.23.1

      Los cambios se guardan automáticamente.

    4. Para obtener el valor más reciente de tu secreto, abre app.py y copia y pega la siguiente función: después de la función hello:

      def access_secret_version(secret_version_id):
          """Return the value of a secret's version"""
          from google.cloud import secretmanager
      
          # Create the Secret Manager client.
          client = secretmanager.SecretManagerServiceClient()
      
          # Access the secret version.
          response = client.access_secret_version(name=secret_version_id)
      
          # Return the decoded payload.
          return response.payload.data.decode('UTF-8')
      
      
    5. Para llamar a la función access_secret_version, sustituye la variable message por lo siguiente:

      message = access_secret_version("<SECRET_VERSION_ID>")
      
    6. Si aún tienes abierta la pestaña Secret Manager - Create Secret (Secret Manager - Crear secreto), file_copy copia el ID.

      Para obtener el ID de una versión de un secreto en cualquier momento, vaya a Secret Manager > [SECRET_NAME] > Versions, coloque el puntero sobre la versión y haga clic en > Copiar ID de recurso.

    7. Para añadir el ID de versión, sustituye el marcador de posición <SECRET_VERSION_ID> por el ID de versión que has copiado.

    Ejecutar en el emulador de Cloud Run

    Para probar el nuevo secreto, ejecuta tu servicio de Cloud Run de forma local en el emulador de Cloud Run.

    1. Abre el menú de Cloud Code desde la barra de estado.
    2. Para compilar y desplegar el servicio en el emulador, selecciona Ejecutar en el emulador de Cloud Run.
    3. En la pestaña Ejecutar/Depurar en el emulador de Cloud Run que aparece, haz clic en Ejecutar.
    4. Al ejecutar la configuración por primera vez, este proceso puede tardar hasta 5 minutos. En el panel Output (Salida) se muestra el progreso a medida que la aplicación se compila y se despliega.

    5. Una vez que se haya compilado la aplicación, ábrela haciendo clic en el enlace localhost que aparece en el panel Output (Salida). El valor de tu secreto se muestra debajo del gráfico de éxito.

    Ver y crear una versión de secreto

    La vista Secret Manager de Cloud Code te permite echar un vistazo rápido a los secretos de tu proyecto, así como gestionarlos.

    Ver el valor de una versión de un secreto

    1. Haz clic en la vista Gestor de secretos.
    2. Despliega el secreto haciendo clic en él.
    3. En la carpeta Versiones, haz clic con el botón derecho en la versión numerada cuyo valor quieras ver y selecciona Mostrar valor de la versión.

    Ten en cuenta que no puedes editar una versión de un secreto. Para actualizar el valor de un secreto, debes crear una versión.

    Crear una versión de secreto

    El valor de un secreto se almacena en una versión del secreto. Un secreto puede tener muchas versiones. Esto resulta útil en situaciones en las que cambia un secreto. Si actualizas un secreto con una nueva versión, no tendrás que actualizar el código.

    1. Haz clic en la vista Gestor de secretos.
    2. Haz clic con el botón derecho en el nombre del secreto y selecciona Crear versión del secreto.
    3. En la pestaña Secret Manager - Create Version (Gestor de secretos - Crear versión) que aparece, introduce un valor nuevo y haz clic en Create Version (Crear versión).
    4. Cuando se abra la pestaña Secret Manager - Create Secret (Secret Manager - Crear secreto), haz clic en file_copy Copiar en la parte superior para copiar el ID.
    5. Para añadir el ID de la versión más reciente, sustituye la versión actual que aparece en la variable del mensaje app.py por el ID de la versión más reciente que has copiado.

    Si quieres que tu código siempre use la versión más reciente, sustituye el número de versión al final de tu ID de versión por latest.

    Ver y gestionar secretos

    Inhabilitar una versión de secreto

    Las versiones de secretos se habilitan de forma predeterminada después de crearse, lo que significa que se puede acceder a ellas. No se puede acceder a un secreto inhabilitado, pero puedes restaurar el acceso a él en cualquier momento.

    Para inhabilitar una versión de un secreto, sigue estos pasos:

    1. Haz clic en Cloud Code y, a continuación, despliega la sección Secret Manager.
    2. Despliega el secreto haciendo clic en él.
    3. En la carpeta Versiones, haz clic con el botón derecho en la versión numerada que quieras inhabilitar.
    4. Selecciona Inhabilitar versión.

    Eliminar una versión de secreto

    Cuando destruyes una versión de un secreto, no se puede acceder a ella. La acción de destruir una versión de un secreto es permanente.

    1. Haz clic en Cloud Code y, a continuación, despliega la sección Secret Manager.
    2. Despliega el secreto haciendo clic en él.
    3. En la carpeta Versiones, haz clic con el botón derecho en la versión que quieras eliminar.
    4. Selecciona Destruir versión.

    Eliminar los recursos utilizados

    Para eliminar solo el clúster que has creado para esta guía de inicio rápido, haz lo siguiente:

    1. Haz clic en Cloud Code y, a continuación, despliega la sección Kubernetes.
    2. Coloca el puntero sobre el nombre del clúster y haz clic en open_in_new Abrir en la consola Google Cloud .
    3. Haz clic en Eliminar y, a continuación, en Eliminar.

    Para eliminar tu proyecto (y los recursos asociados, incluidos los clústeres), sigue estos pasos:

    1. Ve a la página Proyectos de la Google Cloud consola:

      Ir a la página Proyectos

    2. Selecciona el proyecto que has creado para esta guía de inicio rápido y haz clic en Eliminar.

    3. Escribe el ID del proyecto para confirmar la acción y, a continuación, haz clic en Cerrar.

      De esta forma, se cierra el proyecto y se programa su eliminación.