Verificar se há chaves secretas

As verificações de vulnerabilidade do Artifact Analysis podem identificar secrets, como chaves de conta de serviço e chaves de API, armazenados em imagens verificadas. Você pode conferir informações sobre esses secrets no relatório de ocorrências da verificação de vulnerabilidades e tomar medidas para evitar a exposição de informações sensíveis.

Visão geral

Quando uma verificação de vulnerabilidade detecta um secret, o Artifact Analysis cria uma ocorrência do tipo secret com detalhes sobre ele. Artifact Analysis pode detectar os seguintes secrets:

Secrets

  • Chaves de administrador da Anthropic
  • Chaves de API da Anthropic
  • Tokens de acesso do Azure
  • Tokens de ID do Azure
  • Tokens de acesso pessoal do Docker Hub
  • Tokens de atualização do app GitHub
  • Tokens de servidor para servidor do app GitHub
  • Tokens de usuário para servidor do app GitHub
  • Tokens de acesso pessoal clássicos do GitHub
  • Tokens de acesso pessoal refinados do GitHub
  • Tokens OAuth do GitHub
  • ParesGoogle Cloud OAuth2 (ID e chave secreta do cliente)
  • Google Cloud Tokens de acesso do OAuth2
  • Google Cloud chaves da conta de serviço
  • Google Cloud Chaves de API
  • Chaves de API do Huggingface
  • Chaves de API da OpenAI
  • Chaves de API da Perplexity
  • Chaves restritas da Stripe
  • Chaves secretas da Stripe
  • Secrets do webhook da Stripe

Para informações detalhadas sobre os diferentes tipos de segredos em relatórios de ocorrências, consulte SecretKind na documentação da API Artifact Analysis.

Artifact Analysis só pode detectar secrets armazenados como arquivos de texto. As seguintes extensões de arquivo são compatíveis:

  • .cer
  • .cfg
  • .crt
  • .der
  • .env
  • .html
  • .key
  • .ipynb
  • .json
  • .log
  • .md
  • .pem
  • .py
  • .pypirc
  • .textproto
  • .toml
  • .txt
  • .xml
  • .yaml

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, 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 role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Se este guia estiver usando um projeto atual, verifique se você tem as permissões necessárias para concluir o guia. Se você criou um projeto, já tem as permissões necessárias.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Artifact Registry and Container Scanning APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  6. Install the Google Cloud CLI.

  7. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  8. To initialize the gcloud CLI, run the following command:

    gcloud init
  9. In the Google Cloud console, on the project selector page, 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 role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  10. Se este guia estiver usando um projeto atual, verifique se você tem as permissões necessárias para concluir o guia. Se você criou um projeto, já tem as permissões necessárias.

  11. Verify that billing is enabled for your Google Cloud project.

  12. Enable the Artifact Registry and Container Scanning APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  13. Install the Google Cloud CLI.

  14. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  15. To initialize the gcloud CLI, run the following command:

    gcloud init

Ao ativar essa API, você também ativa a verificação de pacotes de linguagens no Artifact Registry. Confira os tipos de pacotes compatíveis.

Funções exigidas

Para receber as permissões necessárias para verificar imagens em busca de secrets durante as verificações de vulnerabilidade, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

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 usando papéis personalizados ou outros papéis predefinidos.

Ver secrets

Para conferir os secrets após uma verificação de vulnerabilidades, faça o seguinte:

  1. Envie uma imagem Docker para o Artifact Registry.

  2. Aguarde a conclusão da verificação de vulnerabilidades.

  3. Execute o comando a seguir para listar as ocorrências de segredos na imagem verificada:

    $ curl -G -H "Content-Type: application/json"   -H "Authorization: Bearer $(gcloud auth print-access-token)" --data-urlencode "filter=(kind=\"SECRET\" AND resourceUrl=\"RESOURCE_URL\")" https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/occurrences
    

    Em que:

    • PROJECT_ID é o ID do projeto do seu Google Cloud console.
    • LOCATION é o local regional ou multirregional do seu repositório.
    • RESOURCE_URL é o URL da imagem digitalizada, no formato https://LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_ID.

    Confira um exemplo de resposta possível. Nesse caso, uma chave de APIGoogle Cloud chamada my_api_key.yaml foi identificada no diretório documents de uma imagem. O atributo secret mostra informações sobre o secret descoberto.

    {
      "occurrences": [
        {
          "name": "projects/my-project/locations/us-east1/occurrences/45619d23-66b1-4f5b-9b12-9060d7f97ff3",
          "resourceUri": "https://us-east1-docker.pkg.dev/my-project/my-images/test-image-0106@sha256:73cf5b9a788dc391c40e9cf1599144d03875b5d2dc935988ebfef8260bd2678e",
          "noteName": "projects/my-project/locations/us-east1/notes/secret_kind_gcp_api_key",
          "kind": "SECRET",
          "createTime": "2026-01-06T21:16:14.905851Z",
          "updateTime": "2026-01-06T21:16:14.905851Z",
          "secret": {
            "kind": "SECRET_KIND_GCP_API_KEY",
            "locations": [
              {
                "fileLocation": {
                  "filePath": "documents/my_api_key.yaml",
                  "layerDetails": {
                    "index": 2,
                    "diffId": "7b76df10d6d90391830392eac96b0ef2d2d43822c6ff4754aa6daea0fe14a8c5",
                    "command": "COPY . . # buildkit",
                    "chainId": "sha256:75df0c59982f47cc38e730e1a122b67fceaaf7797d91e1fa17ffffc5cfe7ff59"
                  }
                }
              }
            ]
          }
        }
      ]
    }
    

Limitações

  • Enquanto a verificação de segredos estiver em prévia pública, as ocorrências de tipo secreto poderão ser visualizadas apenas na API Container Analysis.
  • Os relatórios de verificação de secrets do Artifact Analysis mostram, no máximo, uma ocorrência por secret por imagem. No máximo, 1.000 locais de arquivo por ocorrência são retornados.
  • Podem ocorrer falsos positivos com segredos identificados. Sempre verifique cada segredo identificado antes de realizar qualquer ação nas imagens.