Aprenda a criar um Secret e configurar seus serviços e revisões de Knative serving para usar esse Secret.
Um caso de uso comum de um serviço é acessar aplicativos de terceiros por meio de nomes de usuário e senhas. Para o Google Kubernetes Engine, é uma prática recomendada armazenar esse tipo de informação confidencial em um objeto Secret do Kubernetes.
Para dar aos seus contêineres acesso a secrets, ative cada secret como um volume, o que disponibiliza as entradas do secret para o contêiner como arquivos. Ative seu secret para garantir que você tenha a versão mais recente de cada secret quando ele for lido.
Também é possível passar um secret usando uma variável de ambiente.
Como criar um secret
Nas etapas a seguir, demonstramos como criar um secret, mas há várias maneiras de criar um secret, conforme explicado no tópico Secret.
Ao criá-lo, certifique-se de criar no mesmo namespace que o
cluster que está executando o serviço do Knative serving. Nestes
exemplos, o namespace default
é usado.
Para criar um secret no namespace default
do cluster:
Crie um secret usando um arquivo:
echo -n 'devuser' > ./username.txt echo -n 'S!B\*d$zDsb' > ./password.txt kubectl create secret generic user-creds --from-file=./username.txt --from-file=./password.txt
Crie um secret usando um comando
kubectl
:kubectl create secret generic user-creds --from-literal=username=devuser --from-literal=password='S!B\*d$zDsb'
Como disponibilizar um secret para um serviço
É possível associar secrets a um serviço usando o console do Google Cloud ou as ferramentas de linha de comando ao implantar um novo serviço ou atualizar um atual e implantar uma revisão:
Console
Acesse o Knative serving no console do Google Cloud:
Clique em Criar serviço se estiver configurando um novo serviço em que fará uma implantação. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar uma nova revisão.
Em Configurações avançadas, clique em Variáveis e secrets.
Em Referenciar um secret, selecione o secret que você quer no menu suspenso.
- No menu suspenso Método de referência, selecione a maneira como você quer usar o secret, montado como um volume ou exposto como variáveis de ambiente.
- Se você estiver usando a montagem como volume, especifique o caminho e clique em Concluído.
- Se você estiver expondo como variáveis de ambiente:
- forneça o Nome da variável e selecione o valor de secret correspondente no menu suspenso Chave;
- clique em Adicionar para adicionar outro valor de secret;
- forneça o Nome da variável e selecione o valor de secret correspondente no menu suspenso Chave;
- Clique em Concluído.
Clique em Avançar para acessar a próxima seção.
Na seção Configurar como este serviço é acionado, selecione qual conectividade você quer usar para invocar o serviço.
Clique em Criar para implantar a imagem no Knative serving e aguarde até que a implantação seja concluída.
gcloud
Use a Google Cloud CLI para associar os secrets a novos serviços ou atualizar serviços existentes:
Para os serviços atuais, atualize um secret executando o comando
gcloud run services update
com um dos seguintes parâmetros:Exemplo:
gcloud run services update SERVICE --update-secrets KEY1=VALUE1,KEY2=VALUE2
Substitua:
- SERVICE pelo nome do serviço;
- KEY1=VALUE1,KEY2=VALUE2 com uma lista separada
por vírgula de pares de nome e valor para cada secret.
Para cada KEY, você especifica
o caminho, começando com uma barra
/
para ativar um secret como um arquivo. Se preferir, exclua a barra para ativar o secret como uma variável de ambiente. Para cada VALUE, especifique o nome do secret. Como especificar vários parâmetros:
Opções de parâmetros de comando
Para especificar vários conjuntos de pares de chave-valor, é possível especificar vários parâmetros de legibilidade. Exemplo:[...] --update-secrets "KEY=VALUE1" \ --update-secrets "KEY=VALUE2" \ --update-secrets "KEY=VALUE3"
Para novos serviços, associe um secret executando o comando
gcloud run deploy
com o parâmetro--set-secrets
:gcloud run deploy SERVICE --image=IMAGE_URL --set-secrets KEY1=VALUE1,KEY2=VALUE2
Substitua:
- IMAGE_URL por uma referência à imagem de contêiner. Por
exemplo,
gcr.io/cloudrun/hello
; - SERVICE pelo nome do serviço;
- KEY1=VALUE1,KEY2=VALUE2 com uma lista separada
por vírgula de pares de nome e valor para cada secret.
Para cada KEY, você especifica
o caminho, começando com uma barra
/
para ativar um secret como um arquivo. Se preferir, exclua a barra para ativar o secret como uma variável de ambiente. Para cada VALUE, especifique o nome do secret. Como especificar vários parâmetros:
Opções de parâmetros de comando
Para especificar vários conjuntos de pares de chave-valor, é possível especificar vários parâmetros de legibilidade. Exemplo:[...] --update-secrets "KEY=VALUE1" \ --update-secrets "KEY=VALUE2" \ --update-secrets "KEY=VALUE3"
- IMAGE_URL por uma referência à imagem de contêiner. Por
exemplo,