Crie e faça a gestão de segredos com o Cloud Code

Saiba como criar e gerir segredos com a integração do Secret Manager do Cloud Code.


Para seguir orientações passo a passo para esta tarefa diretamente no editor do Cloud Shell, clique em Orientar-me:

Visita guiada


Antes de começar

  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. Crie o seu serviço do Cloud Run

    Use o Cloud Shell Editor como ambiente para criar o seu serviço do Cloud Run e segredo. O editor é pré-carregado com as ferramentas necessárias para o desenvolvimento na nuvem.

    Para criar o serviço:

    1. Na barra de estado do Cloud Code, clique no nome do projeto ativo.

      Nome do projeto ativo na barra de estado

    2. No menu de seleção rápida apresentado, selecione Nova aplicação e, de seguida, clique em Aplicação do Cloud Run.

    3. Na lista de exemplos do Cloud Run, selecione Python (Flask): Cloud Run.

    4. Selecione uma pasta para o exemplo e, de seguida, clique em Criar nova aplicação.

    Depois de o Cloud Shell Editor carregar o seu serviço num novo espaço de trabalho, veja os respetivos ficheiros na vista do explorador.

    Crie um segredo

    O Secret Manager permite-lhe armazenar, gerir e aceder a segredos em segurança como blobs binários ou strings de texto. Além disso, gere os seus segredos, o que significa que não tem de lidar com máquinas virtuais nem serviços de funcionamento.

    Para criar um segredo com a integração do Secret Manager do Cloud Code:

    1. Clique em Secret Manager e aguarde um momento para que seja carregado.
    2. Se lhe for pedido que autorize o Cloud Shell a fazer chamadas API do Google Cloud, clique em Autorizar.
    3. Clique em adicionar Criar segredo.
    4. Se lhe for pedido, selecione o seu projeto do Google Cloud no seletor de menu pendente.
    5. Se lhe for pedido, ative a API Secret Manager.
    6. No separador Secret Manager - Create Secret apresentado, introduza o seguinte no campo Name:

      my-secret
      
    7. No campo Valor secreto, introduza:

      Hello secret!
      
    8. Clique em Criar segredo e é apresentada uma mensagem a indicar que o segredo foi criado com êxito.

    Adicione um segredo ao seu código

    Os segredos são ideais para armazenar informações de configuração, como palavras-passe de bases de dados, chaves de API ou certificados TLS necessários por uma aplicação no tempo de execução.

    Para adicionar um segredo ao seu código:

    1. Abra a vista da API Cloud e selecione a API Secret Manager.

      É aberta um separador de detalhes da API Google Cloud com API Secret Manager como cabeçalho.

    2. Na secção Instalar biblioteca cliente, clique no separador Python e clique em play_arrow Executar no terminal. Esta ação instala a biblioteca cliente google-cloud-secret-manager.

    3. Abra requirements.txt e adicione a seguinte linha na parte inferior do ficheiro:

      google-cloud-secret-manager==VERSION_NUMBER
      

      Pode encontrar o número da versão na consola depois de executar a instalação no passo anterior. Por exemplo, a consola pode mostrar: Successfully installed google-cloud-secret-manager-2.23.1

      As suas alterações são guardadas automaticamente.

    4. Para obter o valor mais recente do seu segredo, abra o ficheiro app.py e copie e cole a seguinte função: após a função 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 chamar a função access_secret_version, substitua a variável de mensagem pelo seguinte:

      message = access_secret_version("<SECRET_VERSION_ID>")
      
    6. Se ainda tiver o separador Secret Manager - Create Secret aberto, file_copy copie o ID.

      Para obter o ID de uma versão secreta em qualquer altura, navegue para Secret Manager > [SECRET_NAME] > Versions, mantenha o ponteiro sobre a versão e clique em Copiar ID do recurso.

    7. Para adicionar o ID da versão, substitua o marcador de posição <SECRET_VERSION_ID> pelo ID da versão copiado.

    Execute no emulador do Cloud Run

    Para testar o novo segredo, execute o serviço do Cloud Run localmente no emulador do Cloud Run.

    1. Inicie o menu Cloud Code a partir da barra de estado.
    2. Para criar e implementar o seu serviço no emulador, selecione Executar no emulador do Cloud Run.
    3. No separador Run/Debug on Cloud Run Emulator apresentado, clique em Run (Executar).
    4. Quando executa a configuração pela primeira vez, este processo pode demorar até 5 minutos. O painel Output apresenta o progresso à medida que a app é criada e implementada.

    5. Depois de criar a app, inicie-a clicando no link localhost apresentado no painel Output. O valor do segredo é apresentado abaixo do gráfico de sucesso.

    Veja e crie uma nova versão do secret

    A vista do Secret Manager do Cloud Code permite-lhe ver rapidamente os segredos do seu projeto, com ações para os gerir.

    Visualizar o valor de uma versão do Secret

    1. Clique na vista Secret Manager.
    2. Expanda o segredo clicando nele.
    3. Na pasta Versões, clique com o botão direito do rato na versão numerada cujo valor quer ver e selecione Mostrar valor da versão.

    Tenha em atenção que não pode editar uma versão secreta. Para atualizar o valor de um segredo, tem de criar uma nova versão.

    Crie uma nova versão do segredo

    O valor de um segredo é armazenado numa versão do segredo. Um segredo pode ter muitas versões. Isto é útil em situações em que um segredo muda. A atualização de um segredo com uma nova versão significa que não tem de atualizar o seu código.

    1. Clique na vista Secret Manager.
    2. Clique com o botão direito do rato no nome do segredo e selecione Criar versão do segredo.
    3. No separador Secret Manager - Create Version apresentado, introduza um novo valor e clique em Create Version.
    4. Depois de o separador Secret Manager – Criar segredo abrir, clique em file_copy Copiar na parte superior para copiar o ID.
    5. Para adicionar o ID da versão mais recente, substitua a versão atual que aparece na variável de mensagem em app.py pelo ID da versão mais recente que copiou.

    Se quiser que o seu código use sempre a versão mais recente, substitua o número da versão no final do ID da versão por latest.

    Veja e faça a gestão de segredos

    Desative uma versão do segredo

    As versões dos Secrets estão ativadas por predefinição após a criação, o que significa que é possível aceder às mesmas. Um segredo desativado é inacessível, mas pode sempre restaurar o acesso em qualquer altura.

    Para desativar uma versão do segredo:

    1. Clique em Código na nuvem e, de seguida, expanda a secção Secret Manager.
    2. Expanda o segredo clicando nele.
    3. Na pasta Versions, clique com o botão direito do rato na versão numerada que quer desativar.
    4. Selecione Desativar versão.

    Destrua uma versão do Secret

    Quando destrói uma versão do Secret, não é possível aceder à mesma. A destruição de uma versão secreta é permanente.

    1. Clique em Código na nuvem e, de seguida, expanda a secção Secret Manager.
    2. Expanda o segredo clicando nele.
    3. Na pasta Versões, clique com o botão direito do rato na versão que quer destruir.
    4. Selecione Destruir versão.

    Limpar

    Para eliminar apenas o cluster que criou para este início rápido:

    1. Clique em Código na nuvem e, de seguida, expanda a secção Kubernetes.
    2. Passe o ponteiro do rato sobre o nome do cluster e, de seguida, clique em open_in_new Abrir na Google Cloud consola.
    3. Clique em Eliminar e, de seguida, em Eliminar.

    Para eliminar o seu projeto (e os recursos associados, incluindo todos os clusters):

    1. Aceda à página Projetos na Google Cloud consola:

      Aceda à página Projetos

    2. Selecione o projeto que criou para este início rápido e, de seguida, clique em Eliminar.

    3. Introduza o ID do projeto para confirmar e, de seguida, clique em Encerrar.

      Esta ação encerra o projeto e agenda a sua eliminação.