O seu serviço pode exigir chaves de API, palavras-passe, certificados ou outras informações confidenciais para as respetivas dependências. Para o Cloud Run, a Google recomenda armazenar estas informações confidenciais num segredo que cria no Secret Manager.
Disponibilize um segredo aos seus contentores de uma das seguintes formas:
- Quando monta cada segredo como um volume, o Cloud Run disponibiliza o segredo ao contentor como ficheiros. Quando lê um volume, o Cloud Run obtém sempre o valor secreto do Secret Manager para usar o valor 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
como versão.
Para mais informações, consulte as 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, o Cloud Run verifica todos os segredos que usa. A verificação garante que a conta de serviço que executa o contentor tem autorização para aceder a estes segredos.
Durante o tempo de execução, quando as instâncias são iniciadas:
- Se o segredo for uma variável de ambiente, o Cloud Run obtém o valor do segredo antes de iniciar a instância. Se o processo de obtenção do segredo falhar, a instância não é iniciada.
- Se montar o segredo como um volume, o Cloud Run não efetua verificações durante o arranque da instância. No entanto, durante a execução, se um segredo for inacessível, as tentativas de leitura do volume montado falham.
Propriedade do volume
A propriedade de um volume secreto do Cloud Run 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, a identidade que usa para o contentor é proprietária do volume secreto. Em todos os outros casos, a raiz é proprietária do volume. 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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. - 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 de 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 CLI Google Cloud 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 seu segredo no contentor.
- No separador Volume mounts (Montagens de volume), clique em Mount volume (Montar 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 para 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 por
SERVICE-
- Contém apenas letras minúsculas, números e
-
- Não termina com um
-
- Não excede 63 carateres
- Começa por
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 seu segredo no contentor.
No separador Volume mounts (Montagens de volume), clique em Mount volume (Montar 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 Secrets 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
Aplicam-se as seguintes limitações à montagem de segredos:
- O Cloud Run não permite montar secrets 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
.