O seu serviço pode ter dependências que exijam chaves da API, palavras-passe, certificados ou outras informações confidenciais. Para o Cloud Run, a Google recomenda que armazene este tipo de informações confidenciais num segredo criado no Secret Manager.
Pode disponibilizar um segredo aos seus contentores de duas formas:
- Monte cada segredo como um volume, o que torna o segredo disponível para o contentor como ficheiros. A leitura de um volume obtém sempre o valor secreto do Secret Manager, pelo que pode ser usado com a versão mais recente. Este método também funciona bem com a rotação de segredos.
- Transmita um segredo através de variáveis de ambiente. As variáveis de ambiente são resolvidas no momento do arranque da instância. Por isso, se usar este método, a Google recomenda que fixe o segredo a uma versão específica em vez de usar latest.
Para mais informações, consulte o documento de práticas recomendadas do Secret Manager.
Como os segredos são verificados na implementação e no tempo de execução
Durante a implementação do serviço, todos os segredos usados, quer como variável de ambiente ou montados como um volume, são verificados para garantir que a conta de serviço usada para executar o contentor tem acesso aos mesmos. Se qualquer verificação falhar, a implementação do serviço falha.
Durante o tempo de execução, quando as instâncias são iniciadas:
- Se o segredo for uma variável de ambiente, o valor do segredo é obtido antes de iniciar a instância. Por isso, se a obtenção do segredo falhar, a instância não é iniciada.
- Se o segredo estiver montado como um volume, não é feita nenhuma verificação durante o arranque da instância. No entanto, durante a execução, se um segredo estiver inacessível, as tentativas de leitura do volume montado falham.
A propriedade do volume difere consoante o ambiente de execução e o tipo de implementação
Quando monta um volume secreto, a identidade proprietária dos ficheiros e diretórios varia consoante o ambiente de execução da carga de trabalho e se a implementação consiste num ou em vários contentores.
No ambiente de execução de primeira geração onde está a implementar um único contentor, o volume secreto é propriedade da identidade usada para o contentor. Em todos os outros casos, o volume é propriedade da raiz. Isto inclui:
- Ambiente de execução de primeira geração onde está a implementar vários contentores
- O ambiente de segunda geração
Antes de começar
-
Enable the Secret Manager API.
- Use um Secret existente ou crie um Secret no Secret Manager, conforme descrito em Crie um Secret.
Funções necessárias
Para receber as autorizações de que precisa para configurar segredos, peça ao seu administrador que lhe conceda as seguintes funções de IAM:
-
Administrador do Cloud Run (
roles/run.admin
) no serviço do Cloud Run -
Utilizador da conta de serviço (
roles/iam.serviceAccountUser
) na identidade do serviço
Para permitir que o Cloud Run aceda ao segredo, a identidade do serviço tem de ter a seguinte função:
- Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor
)
Para obter instruções sobre como adicionar o principal da identidade do serviço à função Secret Accessor do Secret Manager, consulte o artigo Faça a gestão do acesso aos segredos.
Para ver uma lista de funções e autorizações de IAM associadas ao Cloud Run, consulte os artigos Funções de IAM do Cloud Run e Autorizações de IAM do Cloud Run. Se o seu serviço do Cloud Run interage com Google Cloud APIs, como as bibliotecas cliente da Google Cloud, consulte o guia de configuração da identidade do serviço. Para mais informações sobre a atribuição de funções, consulte as autorizações de implementação e faça a gestão do acesso.
Torne um segredo acessível ao Cloud Run
Qualquer alteração de configuração leva à criação de uma nova revisão. As revisões subsequentes também vão receber automaticamente esta definição de configuração, a menos que faça atualizações explícitas para a alterar.
Pode tornar um segredo acessível ao seu serviço através da Google Cloud consola, da Google Cloud CLI ou de um ficheiro YAML quando implementa um novo serviço ou atualiza um serviço existente e implementa uma revisão. Clique no separador que quer:
Consola
Na Google Cloud consola, aceda ao Cloud Run:
Selecione Serviços no menu e clique em Implementar contentor para configurar um novo serviço. Preencha a página de definições do serviço inicial e, de seguida, clique em Contentores, volumes, rede, segurança para expandir a página de configuração do serviço.
Se estiver a configurar um serviço existente, clique no serviço e, de seguida, em Editar e implementar nova revisão.
Siga os passos para montar o segredo como um volume ou expor o segredo como uma variável de ambiente.
Para expor o segredo como uma variável de ambiente:
- Clique no separador Recipientes.
- No separador Variáveis e segredos, clique em Referenciar um segredo.
- No campo Nome 1, introduza o nome da variável de ambiente.
- Na lista Segredo, selecione o segredo que quer usar.
- Na lista Versão 1, selecione a versão do segredo a referenciar.
- Clique em Concluído.
- Clique em Criar ou Implementar.
Para montar o segredo como um volume:
- Clique no separador Volumes e selecione Adicionar volume.
- Na lista Tipo de volume, selecione Secreto.
- No campo Nome do volume, introduza um nome ou aceite o nome predefinido.
- Na lista Segredo, selecione o segredo que quer usar.
- No campo Caminho 1, introduza o nome do ficheiro a montar.
- Na lista Versão 1, selecione a versão do segredo a que quer fazer referência. Por predefinição, a versão mais recente está selecionada. Se quiser, pode selecionar uma versão específica.
- Clique em Concluído.
- Navegue para o separador Contentores para montar o segredo no contentor.
- No separador Volume mounts, clique em Mount volume.
- Na lista Nome 1, selecione o nome do volume.
- No campo Caminho de montagem 1, introduza o caminho de montagem para este segredo. Este é o diretório onde são colocadas todas as versões do seu segredo.
- Clique em Concluído.
- Clique em Criar ou Implementar.
gcloud
Para tornar um segredo acessível ao seu serviço, introduza um dos seguintes comandos.
Para montar o segredo como um volume ao implementar um serviço:
gcloud run deploy SERVICE --image IMAGE_URL \ --update-secrets=PATH=SECRET_NAME:VERSION
Substitua o seguinte:
SERVICE
: o nome do seu serviço.- IMAGE_URL: uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
PATH
: o caminho de montagem do volume e o nome do ficheiro da chave secreta. Tem de começar com uma barra inicial, por exemplo:/etc/secrets/dbconfig/password
, onde/etc/secrets/dbconfig/
é o caminho de montagem do volume epassword
é o nome do ficheiro do segredo.SECRET_NAME
: o nome secreto no mesmo projeto, por exemplo,mysecret
.VERSION
: a versão do secret. Uselatest
para a versão mais recente ou um número, por exemplo,2
.
Para expor o segredo como uma variável de ambiente ao implementar um serviço:
gcloud run deploy SERVICE \ --image IMAGE_URL \ --update-secrets=ENV_VAR_NAME=SECRET_NAME:VERSION
Substitua o seguinte:
SERVICE
: o nome do seu serviço.- IMAGE_URL: uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. ENV_VAR_NAME
: o nome da variável de ambiente que quer usar com o segredo.SECRET_NAME
: o nome secreto no mesmo projeto, por exemplo,mysecret
.VERSION
: a versão do secret. Uselatest
para a versão mais recente ou um número, por exemplo,2
.
Pode atualizar vários segredos em simultâneo. Para o fazer, separe as opções de configuração de cada segredo com uma vírgula. O comando seguinte atualiza um segredo montado como um volume e outro segredo exposto como uma variável de ambiente.
Para atualizar segredos existentes, introduza o seguinte comando:
gcloud run deploy SERVICE --image IMAGE_URL \ --update-secrets=PATH=SECRET_NAME:VERSION,ENV_VAR_NAME=SECRET_NAME:VERSION
Para limpar os segredos existentes e tornar um novo segredo acessível ao serviço, use a flag
--set-secrets
:gcloud run services update SERVICE \ --set-secrets="ENV_VAR_NAME=SECRET_NAME:VERSION"
YAML
Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:
gcloud run services describe SERVICE --format export > service.yaml
Para segredos expostos como variáveis de ambiente, em
env
, atualize ENV_VAR, VERSION e/ou SECRET_NAME conforme pretendido. Se tiver vários segredos montados como variáveis de ambiente, terá vários destes atributos.apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE_URL env: - name: ENV_VAR valueFrom: secretKeyRef: key: VERSION name: SECRET_NAME
Para segredos montados como caminhos de ficheiros, atualize os campos MOUNT_PATH, VOLUME_NAME, VERSION, FILENAME e/ou SECRET_NAME conforme pretendido. Se tiver vários segredos montados como caminhos de ficheiros, terá vários destes atributos.
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE_URL volumeMounts: - mountPath: MOUNT_PATH name: VOLUME_NAME volumes: - name: VOLUME_NAME secret: items: - key: VERSION path: FILENAME secretName: SECRET_NAME
Tenha em atenção que
VOLUME_NAME
pode ser definido com qualquer nome.Substitua o seguinte:
- SERVICE: o nome do seu serviço do Cloud Run.
- IMAGE_URL: uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - REVISION com um novo nome de revisão ou elimine-o (se existir). Se fornecer um novo nome de revisão, este tem de cumprir os seguintes critérios:
- Começa com
SERVICE-
- Contém apenas letras minúsculas, números e
-
- Não termina com um
-
- Não exceder 63 carateres
- Começa com
Substitua o serviço pela respetiva nova configuração através do seguinte comando:
gcloud run services replace service.yaml
Terraform
Crie um Secret e uma versão do Secret.
Crie uma conta de serviço e conceda-lhe acesso ao segredo:
Pode aceder aos segredos do Secret Manager a partir do Cloud Run como caminhos de ficheiros montados ou como variáveis de ambiente.
Para Secrets montados como caminhos de ficheiros, faça referência ao recurso do Gestor Secreto no parâmetro
volumes
. Oname
corresponde a uma entrada no parâmetrovolume_mounts
:Para segredos expostos como variáveis de ambiente, referencie o recurso Secret Manager no parâmetro
env
:
Referencie segredos de outros projetos
Para fazer referência a um segredo de outro projeto, verifique se a conta de serviço do seu projeto tem acesso ao segredo.
Consola
Na Google Cloud consola, aceda ao Cloud Run:
Selecione Serviços no menu e clique em Implementar contentor para configurar um novo serviço. Preencha a página de definições do serviço inicial e, de seguida, clique em Contentores, volumes, rede, segurança para expandir a página de configuração do serviço.
Se estiver a configurar um serviço existente, clique no serviço e, de seguida, em Editar e implementar nova revisão.
Siga os passos para montar o segredo como um volume ou expor o segredo como uma variável de ambiente.
Para expor o segredo como uma variável de ambiente:
- Clique no separador Recipientes.
- No separador Variáveis e segredos, clique em Referenciar um segredo.
- No campo Nome 1, introduza o nome da variável de ambiente.
- Na lista Secret, clique em Introduzir Secret manualmente.
Introduza o ID do recurso do Secret no seguinte formato:
projects/PROJECT_NUMBER/secrets/SECRET_NAME
Substitua o seguinte:
PROJECT_NUMBER com o seu Google Cloud número do projeto. Para ver instruções detalhadas sobre como encontrar o número do projeto, consulte o artigo Criar e gerir projetos.
SECRET_NAME: o nome do segredo no Secret Manager.
Na lista Versão 1, selecione a versão do segredo a referenciar.
Clique em Concluído.
Clique em Criar ou Implementar.
Para montar o segredo como um volume:
- Clique no separador Volumes e selecione Adicionar volume.
- Na lista Tipo de volume, selecione Secreto.
- No campo Nome do volume, introduza um nome ou aceite o nome predefinido.
- Na lista Secret, clique em Introduzir Secret manualmente.
Introduza o ID do recurso do Secret no seguinte formato:
projects/PROJECT_NUMBER/secrets/SECRET_NAME
Substitua o seguinte:
PROJECT_NUMBER com o seu Google Cloud número do projeto. Para ver instruções detalhadas sobre como encontrar o número do projeto, consulte o artigo Criar e gerir projetos.
SECRET_NAME: o nome do segredo no Secret Manager.
No campo Caminho 1, introduza o nome do ficheiro a montar.
Na lista Versão 1, selecione a versão do segredo a que quer fazer referência. Por predefinição, a versão mais recente está selecionada. Se quiser, pode selecionar uma versão específica.
Clique em Concluído.
Navegue para o separador Contentores para montar o segredo no contentor.
No separador Volume mounts, clique em Mount volume.
Na lista Nome 1, selecione o nome do volume.
No campo Caminho de montagem 1, introduza o caminho de montagem para este segredo. Este é o diretório onde são colocadas todas as versões do seu segredo.
Clique em Concluído.
Clique em Criar ou Implementar.
gcloud
Para montar um segredo como um volume ao implementar um serviço:
gcloud run deploy SERVICE --image IMAGE_URL \ --update-secrets=PATH=projects/PROJECT_NUMBER/secrets/SECRET_NAME:VERSION
Substitua o seguinte:
SERVICE
: o nome do seu serviço.- IMAGE_URL: uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. PATH
: o caminho de montagem do volume e o nome do ficheiro da chave secreta. Tem de começar com uma barra inicial, por exemplo:/etc/secrets/dbconfig/password
, onde/etc/secrets/dbconfig/
é o caminho de montagem do volume epassword
é o nome do ficheiro do segredo.PROJECT_NUMBER
com o número do projeto do projeto no qual o segredo foi criado.SECRET_NAME
: o nome secreto, por exemplo,mysecret
.VERSION
com a versão do Secret. Uselatest
para a versão mais recente ou um número, por exemplo,2
.
YAML
Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:
gcloud run services describe SERVICE --format export > service.yaml
Devido a restrições relacionadas com a compatibilidade da API, as localizações dos segredos têm de ser armazenadas numa anotação.
Para segredos expostos como variáveis de ambiente:
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/secrets: SECRET_LOOKUP_NAME:projects/PROJECT_NUMBER/secrets/SECRET_NAME spec: containers: - image: IMAGE_URL env: - name: ENV_VAR valueFrom: secretKeyRef: key: VERSION name: SECRET_LOOKUP_NAME
Substitua o seguinte:
SERVICE
: o nome do seu serviço.- IMAGE_URL: uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
ENV_VAR
PROJECT_NUMBER
: o número do projeto no qual o segredo foi criado.SECRET_NAME
: o nome secreto, por exemplo,mysecret
.VERSION
: a versão do secret. Uselatest
para a versão mais recente ou um número, por exemplo,2
.SECRET_LOOKUP_NAME
: qualquer nome que tenha uma sintaxe de nome secreto válida, por exemplo,my-secret
, pode ser igual aSECRET_NAME
.
Para segredos montados como caminhos de ficheiros:
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/secrets: SECRET_LOOKUP_NAME:projects/PROJECT_NUMBER/secrets/SECRET_NAME spec: containers: - image: IMAGE_URL volumeMounts: - mountPath: MOUNT_PATH name: VOLUME_NAME volumes: - name: VOLUME_NAME secret: items: - key: VERSION path: FILENAME secretName: SECRET_LOOKUP_NAME
Substitua o seguinte:
SERVICE
: o nome do seu serviço.- IMAGE_URL: uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. PATH
: o caminho de montagem do volume e o nome do ficheiro da chave secreta. Tem de começar com uma barra inicial, por exemplo:/etc/secrets/dbconfig/password
, onde/etc/secrets/dbconfig/
é o caminho de montagem do volume epassword
é o nome do ficheiro do segredo.PROJECT_NUMBER
: o número do projeto no qual o segredo foi criado.SECRET_NAME
: o nome secreto, por exemplo,mysecret
.VERSION
: a versão do secret. Uselatest
para a versão mais recente ou um número, por exemplo,2
.SECRET_LOOKUP_NAME
: qualquer nome que tenha uma sintaxe de nome secreto válida, por exemplo,my-secret
, pode ser igual aSECRET_NAME
.VOLUME_NAME
: qualquer nome, por exemplo,my-volume
. Pode ser igual aSECRET_NAME
.
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
Adicione o seguinte a um recursogoogle_cloud_run_v2_service
na sua configuração do Terraform:Para segredos expostos como variáveis de ambiente:
resource "google_cloud_run_v2_service" "default" {
name = "SERVICE_NAME"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
env {
name = "SECRET_NAME"
value_source {
secret_key_ref {
secret = "projects/PROJECT_ID/secrets/SECRET_NAME"
version = "VERSION"
}
}
}
}
}
}
Substitua o seguinte:
- SERVICE_NAME: o nome da sua tarefa do Cloud Run.
- REGION: a Google Cloud região. Por exemplo,
europe-west1
. - IMAGE_URL: uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - SECRET_NAME: o nome secreto, por exemplo,
mysecret
. - PROJECT_ID: o ID do projeto no qual o segredo foi criado.
- VERSION: a versão do secret. Use
latest
para a versão mais recente ou um número, por exemplo,2
.
Para segredos montados como caminhos de ficheiros:
resource "google_cloud_run_v2_service" "default" {
name = "SERVICE_NAME"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
volume_mounts {
name = "VOLUME_NAME"
mount_path = "MOUNT_PATH"
}
}
volumes {
name = "VOLUME_NAME"
secret {
secret = "projects/PROJECT_ID/secrets/SECRET_NAME"
}
}
}
}
Substitua o seguinte:
- SERVICE_NAME: o nome da sua tarefa do Cloud Run.
- REGION com a região Google Cloud . Por exemplo,
europe-west1
. - IMAGE_URL: uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- VOLUME_NAME: qualquer nome, por exemplo,
my-volume
. Pode ser igual aSECRET_NAME
- MOUNT_PATH: o caminho de montagem do volume e o nome do ficheiro da chave secreta. Tem de começar com uma barra inicial, por exemplo:
/etc/secrets/dbconfig/password
, onde/etc/secrets/dbconfig/
é o caminho de montagem do volume epassword
é o nome do ficheiro do segredo. - PROJECT_ID: o ID do projeto no qual o segredo foi criado.
- SECRET_NAME: o nome secreto, por exemplo,
mysecret
.
Veja as definições de segredos
Para ver as definições de segredos atuais do seu serviço do Cloud Run:
Consola
Na Google Cloud consola, aceda ao Cloud Run:
Clique no serviço que lhe interessa para abrir a página Detalhes do serviço.
Clique no separador Revisões.
No painel de detalhes à direita, a definição de segredos é apresentada no separador Contentor.
gcloud
Use o seguinte comando:
gcloud run services describe SERVICE
Localize a definição de segredos na configuração devolvida.
Remova segredos de um serviço
Pode remover segredos de um serviço através da Google Cloud consola ou da CLI gcloud:
Consola
Na Google Cloud consola, aceda ao Cloud Run:
Selecione o seu serviço na lista e clique em Editar e implementar nova revisão.
Clique no separador Recipientes.
Para eliminar segredos montados como um volume, selecione o separador Montagens de volumes, passe o ponteiro sobre o segredo que quer remover e, de seguida, clique em
Eliminar.Para eliminar segredos expostos como uma variável de ambiente, selecione o separador Variáveis e segredos, passe o cursor do rato sobre o segredo que quer remover e, de seguida, clique em
Eliminar.Clique em Implementar.
gcloud
Pode remover todos os segredos de um serviço ou especificar um ou mais segredos a remover:
Para remover todos os segredos, execute o seguinte comando:
gcloud run deploy SERVICE --image IMAGE_URL \ --clear-secrets
Substitua o seguinte:
- SERVICE: o nome do seu serviço.
- IMAGE_URL: uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Para especificar uma lista de segredos a remover, use a flag
--remove-secrets
. O comando seguinte remove um segredo montado como um volume e outro segredo exposto como uma variável de ambiente:gcloud run deploy SERVICE --image IMAGE_URL \ --remove-secrets=ENV_VAR_NAME,SECRET_FILE_PATH
Substitua o seguinte:
- SERVICE: o nome do seu serviço.
- IMAGE_URL: uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - ENV_VAR_NAME: o nome da variável de ambiente.
SECRET_FILE_PATH: o caminho completo do segredo. Por exemplo,
/mnt/secrets/primary/latest
, em que/mnt/secrets/primary/
é o caminho de montagem elatest
é o caminho secreto. Também pode especificar os caminhos de montagem e secretos separadamente:--set-secrets MOUNT_PATH:SECRET_PATH=SECRET:VERSION
Use segredos no seu código
Para ver exemplos de acesso a segredos no seu código como variáveis de ambiente, consulte o tutorial sobre a autenticação do utilizador final, particularmente a secção Processar a configuração sensível com o Secret Manager.
Caminhos não permitidos e limitações
O Cloud Run não permite montar segredos em /dev
,
/proc
e /sys
, nem nos respetivos subdiretórios.
Se estiver a montar segredos no /tmp
e estiver a usar o
ambiente de execução de primeira geração,
consulte o problema conhecido sobre a
montagem de segredos no /tmp
.
O Cloud Run não permite montar vários segredos no mesmo caminho, porque não é possível montar dois volumes na mesma localização.
Substituir um diretório
Se o segredo estiver montado como um volume no Cloud Run e o último diretório no caminho de montagem do volume já existir, todos os ficheiros ou pastas no diretório existente ficam inacessíveis.
Por exemplo, se um segredo denominado my-secret
for montado no caminho /etc/app_data
, todo o conteúdo no diretório app_data
é substituído, e o único ficheiro visível é /etc/app_data/my-secret
.
Para evitar substituir ficheiros num diretório existente, crie um novo diretório para
montar o segredo, por exemplo, /etc/app_data/secrets
, para que o caminho de montagem
do segredo seja /etc/app_data/secrets/my-secret
.