Esta página explica como configurar a destruição atrasada de versões secretas, atualizar ou remover a duração do atraso de destruição e restaurar versões secretas programadas para destruição.
Por padrão, quando um usuário escolhe destruir uma versão do secret no Secret Manager, o material secreto é destruído imediatamente e permanentemente. No entanto, os usuários com a função de administrador do Secret Manager podem configurar a destruição atrasada das versões do secret, o que garante que a versão do secret não seja destruída imediatamente após a solicitação e permaneça recuperável por um período configurável.
Quando a destruição atrasada é ativada no secret e você destrói uma versão dele, o seguinte ocorre:
-
A versão está desativada, o que impede o uso dela.
-
O sistema programa a versão para destruição permanente ao final do período de atraso.
-
Após o período de atraso expirar, a versão do secret será destruída de forma permanente e irreversível.
Vantagens
Esse recurso oferece os seguintes benefícios:
-
Uma camada extra de proteção contra destruição acidental ou maliciosa de material secreto essencial. Qualquer usuário com a função Gerenciador de versões secretas do Secret Manager pode destruir uma versão secreta. Essa ação é irreversível. Ao configurar a destruição atrasada, você pode impedir a destruição imediata das versões de secret. É possível conceder aos usuários o acesso mínimo necessário para gerenciar o ciclo de vida das versões secretas, de modo a monitorar e evitar a destruição acidental de dados sensíveis.
-
A destruição de uma versão de secret aciona uma notificação
SECRET_VERSION_DESTROY_SCHEDULED
para os tópicos do Pub/Sub configurados no secret. Os usuários com a função de administrador do Secret Manager podem cancelar a destruição programada e restaurar a versão do secret ativando ou desativando a versão do secret.
Antes de começar
-
Enable the Secret Manager API.
-
Configure a autenticação.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Funções exigidas
Para receber as permissões necessárias para configurar a destruição atrasada de versões secretas, peça ao administrador para conceder a você o papel do IAM de Administrador do Gerenciador de segredos (
roles/secretmanager.admin
) em um segredo. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Configurar destruição com atraso
É possível ativar a destruição atrasada de uma versão de secret ao criar ou atualizar o secret. Para configurar a destruição atrasada, use um dos seguintes métodos:
Console
-
Acesse a página do Secret Manager no console do Google Cloud:
-
Na página Secret Manager, clique na guia Regional secrets e em Criar secret regional.
-
Na página Criar secret regional, insira um nome para o secret no campo Nome.
-
Insira um valor para o secret (por exemplo,
abcd1234
). Também é possível fazer upload de um arquivo de texto com o valor do secret usando a opção Fazer upload do arquivo. Essa ação cria automaticamente a versão do secret. -
Escolha o local em que o secret regional vai ser armazenado na lista Região.
-
Acesse Delay secret version destroy e marque a caixa de seleção Set duration for delayed destruction.
-
No campo Duração de atraso de destruição, insira a duração em dias. O valor mínimo que você pode inserir é de 1 dia, e o máximo é de 1.000 dias.
-
Clique em Criar secret.
Para ativar esse recurso em um secret, acesse a página Editar secret e configure a duração do atraso de destruição.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_ID: o ID do secret ou do identificador totalmente qualificado.
- LOCATION: o local do Google Cloud do segredo.
- TTL_DURATION: a duração do atraso de destruição das versões do secret. Você pode inserir a duração em qualquer formato, por exemplo, dias, horas ou segundos. A duração mínima necessária é de 1 dia, e a máxima pode ser definida como 1.000 dias.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets create SECRET_ID --location=LOCATION --version-destroy-ttl=TTL_DURATION
Windows (PowerShell)
gcloud secrets create SECRET_ID --location=LOCATION --version-destroy-ttl=TTL_DURATION
Windows (cmd.exe)
gcloud secrets create SECRET_ID --location=LOCATION --version-destroy-ttl=TTL_DURATION
A resposta contém o secret recém-criado.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: o local do Google Cloud do segredo.
- PROJECT_ID: o ID do projeto do Google Cloud.
- SECRET_ID: o ID do secret ou do identificador totalmente qualificado.
- TTL_DURATION: a duração do atraso de destruição das versões do secret. Insira a duração em segundos. A duração mínima necessária é de um dia, e a máxima pode ser definida como 1.000 dias.
Método HTTP e URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID
Corpo JSON da solicitação:
{ "version_destroy_ttl":"TTL_DURATION" }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID", "createTime": "2024-09-04T06:34:32.995517Z", "etag": "\"1621455df3febd\"", "versionDestroyTtl": "TTL_DURATION" }
A destruição atrasada não se aplica aos seguintes cenários:
-
Quando um secret é excluído, todo o material secreto e as versões de secret relacionadas são excluídas imediatamente.
-
Quando uma data de expiração é definida no secret e ele expira, todas as versões do secret são destruídas imediatamente, mesmo que a destruição atrasada esteja ativada no secret.
Atualizar a duração do atraso de destruição
Para atualizar a duração do atraso de destruição, use um dos seguintes métodos:
Console
-
Acesse a página do Secret Manager no console do Google Cloud:
-
Na página Secret Manager, clique na guia Secrets regionais.
-
Para editar um secret, use um dos seguintes métodos:
-
Clique em
Ações para o segredo que você quer editar e, depois, em Editar. -
Clique no nome do secret para acessar a página de detalhes. Na página de detalhes do secret, clique em
Editar secret.
-
-
Na página Editar secret, acesse a seção Atrasar a destruição da versão do secret. Atualize a duração do atraso conforme necessário e clique em Atualizar segredo.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_ID: o ID do secret ou do identificador totalmente qualificado
- LOCATION: o local do Google Cloud do segredo
- TTL_DURATION: a duração do atraso na destruição das versões do secret
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets update SECRET_ID --location=LOCATION --version-destroy-ttl=TTL_DURATION
Windows (PowerShell)
gcloud secrets update SECRET_ID --location=LOCATION --version-destroy-ttl=TTL_DURATION
Windows (cmd.exe)
gcloud secrets update SECRET_ID --location=LOCATION --version-destroy-ttl=TTL_DURATION
A resposta contém o secret recém-criado.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: o local do Google Cloud do segredo
- PROJECT_ID: o ID do projeto do Google Cloud
- SECRET_ID: o ID do secret ou do identificador totalmente qualificado
- TTL_DURATION: a duração do atraso na destruição das versões do secret
Método HTTP e URL:
PATCH https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=version_destroy_ttl
Corpo JSON da solicitação:
{ "version_destroy_ttl":"TTL_DURATION" }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=version_destroy_ttl"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=version_destroy_ttl" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID", "createTime": "2024-09-04T06:34:32.995517Z", "etag": "\"16214561a80d09\"", "versionDestroyTtl": "TTL_DURATION" }
As versões do secret afetadas pela duração do atraso de destruição dependem do seguinte:
-
Quando a destruição atrasada é definida pela primeira vez no secret, a duração do atraso de destruição afeta todas as versões ativas (ativadas e desativadas) do secret.
-
Quando a duração do atraso de destruição é atualizada ou removida, as mudanças são refletidas apenas nas novas versões do secret em que a ação de destruição é tentada. As versões do secret que já estão programadas para destruição vão continuar sendo destruídas no horário programado.
Desativar a destruição atrasada
Para desativar a destruição atrasada de versões, use um dos seguintes métodos:
Console
-
Acesse a página do Secret Manager no console do Google Cloud:
-
Na página do Secret Manager, clique na guia Secrets regionais.
-
Para editar um secret, use um dos seguintes métodos:
-
Clique em
Ações para o segredo que você quer editar e, depois, em Editar. -
Clique no nome do secret para acessar a página de detalhes. Na página de detalhes do secret, clique em
Editar secret.
-
-
Na página Editar secret, acesse Atrasar a destruição da versão do secret. Desmarque a caixa de seleção Definir duração para destruição com atraso e clique em Atualizar segredo.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_ID: o ID do secret ou do identificador totalmente qualificado
- LOCATION: o local do Google Cloud do segredo
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets update SECRET_ID --location=LOCATION --remove-version-destroy-ttl
Windows (PowerShell)
gcloud secrets update SECRET_ID --location=LOCATION --remove-version-destroy-ttl
Windows (cmd.exe)
gcloud secrets update SECRET_ID --location=LOCATION --remove-version-destroy-ttl
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: o local do Google Cloud do segredo
- PROJECT_ID: o ID do projeto do Google Cloud
- SECRET_ID: o ID do secret ou do identificador totalmente qualificado
Método HTTP e URL:
PATCH https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=version_destroy_ttl
Corpo JSON da solicitação:
{}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=version_destroy_ttl"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=version_destroy_ttl" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID", "createTime": "2024-09-04T06:34:32.995517Z", "etag": "\"16214564f18f19\"" }
Programar versões do Secret para destruição atrasada
Para programar uma versão secreta para destruição com atraso, use um destes métodos:
Console
-
Acesse a página do Secret Manager no console do Google Cloud:
-
Na página Secret Manager, clique na guia Regional secrets e selecione um secret para acessar as versões dele. A destruição com atraso das versões precisa ser configurada neste secret.
-
Na página de detalhes do secret, na guia Versões, selecione a versão do secret que você quer destruir.
-
Clique em
Ações e em Destruir. -
Na caixa de diálogo de confirmação que aparece, insira o ID do secret para confirmar e clique em Programar versões selecionadas para destruição.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_VERSION_ID: o ID da versão ou o identificador totalmente qualificado da versão
- SECRET_ID: o ID do secret ou do identificador totalmente qualificado
- LOCATION: o local do Google Cloud do segredo
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows (PowerShell)
gcloud secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows (cmd.exe)
gcloud secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: o local do Google Cloud do segredo
- PROJECT_ID: o ID do projeto do Google Cloud
- SECRET_ID: o ID do secret ou do identificador totalmente qualificado
- VERSION_ID: o ID da versão ou o identificador totalmente qualificado da versão
Método HTTP e URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:destroy
Corpo JSON da solicitação:
{}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:destroy"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:destroy" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID", "createTime": "2024-09-04T06:41:57.859674Z", "state": "DISABLED", "etag": "\"16214579184a2c\"", "scheduledDestroyTime": "2024-09-05T13:15:28.357251843Z" }
A versão do secret é desativada imediatamente e programada para destruição após o término do período de atraso. Você pode conferir a data e a hora exatas em que a versão será destruída na coluna Scheduled for destruction on na tabela Versions.
Restaurar versões de secrets
É possível restaurar uma versão do secret programada para destruição ativando ou desativando a versão do secret.
Ativar uma versão do secret programada para destruição
Para ativar uma versão secreta programada para destruição, use um destes métodos:
Console
-
Acesse a página do Secret Manager no console do Google Cloud:
-
Na página Secret Manager, clique na guia Regional secrets e, em seguida, clique em um secret para acessar as versões dele.
-
Na página de detalhes do secret, na guia Versões, selecione a versão do secret programada para destruição.
-
Clique em
Ações e em Ativar. -
Na caixa de diálogo de confirmação que aparece, clique em Ativar versões selecionadas.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_VERSION_ID: o ID da versão ou o identificador totalmente qualificado da versão
- SECRET_ID: o ID do secret ou do identificador totalmente qualificado
- LOCATION: o local do Google Cloud do segredo
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows (PowerShell)
gcloud secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows (cmd.exe)
gcloud secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: o local do Google Cloud do segredo
- PROJECT_ID: o ID do projeto do Google Cloud
- SECRET_ID: o ID do secret ou do identificador totalmente qualificado
- VERSION_ID: o ID da versão ou o identificador totalmente qualificado da versão
Método HTTP e URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:enable
Corpo JSON da solicitação:
{}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:enable"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:enable" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID", "createTime": "2024-09-04T06:41:57.859674Z", "state": "ENABLED", "etag": "\"1621457b3c1459\"" }
Desativar uma versão do secret programada para destruição
Para desativar uma versão do segredo programada para destruição, use um destes métodos:
Console
-
Acesse a página do Secret Manager no console do Google Cloud:
-
Na página Secret Manager, clique na guia Regional secrets e, em seguida, clique em um secret para acessar as versões dele.
-
Na página de detalhes do secret, na guia Versões, selecione a versão do secret programada para destruição.
-
Clique em
Ações e em Desativar. -
Na caixa de diálogo de confirmação que aparece, clique em Desativar versões selecionadas.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_VERSION_ID: o ID da versão ou o identificador totalmente qualificado da versão
- SECRET_ID: o ID do secret ou do identificador totalmente qualificado
- LOCATION: o local do Google Cloud do segredo
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows (PowerShell)
gcloud secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows (cmd.exe)
gcloud secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID --location=LOCATION
A resposta contém a versão desativada do secret.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: o local do Google Cloud do segredo
- PROJECT_ID: o ID do projeto do Google Cloud
- SECRET_ID: o ID do secret ou do identificador totalmente qualificado
- VERSION_ID: o ID da versão ou o identificador totalmente qualificado da versão
Método HTTP e URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:disable
Corpo JSON da solicitação:
{}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:disable"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:disable" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID", "createTime": "2024-09-04T06:41:57.859674Z", "state": "DISABLED", "etag": "\"1621457b3c1459\"" }
A seguir
- Saiba como garantir a integridade dos dados.
- Saiba mais sobre as práticas recomendadas.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-12-22 UTC.
-