Ver uso da chave

Neste tópico, mostramos como visualizar os recursos Google Cloud da sua organização que são protegidos pelas chaves do Cloud KMS.

É possível conferir informações sobre os recursos que as chaves protegem em dois níveis:

  • As informações do resumo do uso da chave de cada chave incluem o número de recursos, projetos e Google Cloud produtos únicos que usam a chave. Esse nível de detalhe está disponível para qualquer pessoa com a função de leitor do Cloud KMS na chave.
  • As informações de detalhe do uso da chave identificam quais recursos são protegidos e dependem dessa chave. Esse nível de detalhes é privilegiado e está disponível apenas para contas com a função de leitor de recursos protegidos do Cloud KMS na organização.

Antes de começar

Neste tópico, presumimos que você esteja usando o Cloud KMS em um Google Cloud recurso da organização.

  1. Peça ao administrador da organização para conceder à conta de serviço do Cloud KMS o papel de agente de serviço da organização do Cloud KMS (cloudkms.orgServiceAgent) no recurso da organização. Esse papel não está disponível no console do Google Cloud. Portanto, use a CLI gcloud para conceder o papel:

    CLI da gcloud

    gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
        --member=serviceAccount:service-org-ORGANIZATION_ID@gcp-sa-cloudkms.iam.gserviceaccount.com \
        --role=roles/cloudkms.orgServiceAgent
    

    Substitua ORGANIZATION_ID pelo ID numérico da sua organização.

  2. Conceda o papel de leitor do Cloud KMS (roles/cloudkms.viewer) a qualquer pessoa que precise acessar resumos de uso de chaves. Para mais informações sobre como conceder papéis, consulte Gerenciar o acesso.

  3. Conceda a função de leitor de recursos protegidos do Cloud KMS (roles/cloudkms.protectedResourcesViewer) no recurso da sua organização a qualquer pessoa que precise acessar detalhes de uso de chaves. Esse papel não está disponível no console do Google Cloud. Portanto, use a CLI gcloud para conceder o papel:

    CLI da gcloud

    gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
        --member=user:USER_EMAIL \
        --role=roles/cloudkms.protectedResourcesViewer
    

    Substitua:

    • ORGANIZATION_ID: o ID numérico da sua organização.
    • USER_EMAIL: o endereço de e-mail do usuário.
  4. Ative a API Cloud KMS Inventory.

    Ativar a API

Conferir informações de uso da chave

Console

  1. No console do Google Cloud, acesse a página Inventário de chaves.

    Acessar o inventário de chaves

  2. Opcional: para filtrar a lista de chaves, digite os termos de pesquisa na caixa filter_list Filtro e pressione Enter. Por exemplo, é possível filtrar por local, chave, chave, status ou outras propriedades das chaves.

  3. Clique no nome da chave para conferir as informações de uso.

  4. Clique na guia Rastreamento de uso.

  5. Opcional: para filtrar a lista de recursos protegidos, insira os termos de pesquisa na caixa filter_list Filtro e pressione Enter.

O resumo e os detalhes do uso da chave selecionada são mostrados.

CLI da gcloud

Para usar o Cloud KMS na linha de comando, primeiro instale ou faça upgrade para a versão mais recente da Google Cloud CLI.

Para conferir o resumo do uso da chave, use o método get-protected-resources-summary:

gcloud kms inventory get-protected-resources-summary \
    --keyname  projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME \

Substitua:

  • PROJECT_ID: o ID do projeto que contém o chaveiro.
  • LOCATION: o local do Cloud KMS do keyring.
  • KEY_RING: o nome do keyring que contém a chave.
  • KEY_NAME: o nome da chave para a qual você quer conferir o resumo de uso.

Para conferir detalhes sobre o uso da chave, use o método search-protected-resources:

gcloud kms inventory search-protected-resources \
    --keyname  projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME \
    --scope=organizations/ORGANIZATION_ID

Substitua:

  • PROJECT_ID: o ID do projeto que contém o chaveiro.
  • LOCATION: o local do Cloud KMS do keyring.
  • KEY_RING: o nome do keyring que contém a chave.
  • KEY_NAME: o nome da chave para a qual você quer conferir os detalhes de uso.
  • ORGANIZATION_ID: o ID numérico da sua organização.

API

Estes exemplos usam curl como um cliente HTTP para demonstrar o uso da API. Para mais informações sobre controle de acesso, consulte Como acessar a API Cloud KMS.

Para conferir o resumo do uso da chave, use o método cryptoKeys.getProtectedResourcesSummary:

curl  "https://kmsinventory.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/protectedResourcesSummary"
    --request "GET" \
    --header "x-goog-user-project: CALLING_PROJECT_ID"
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer TOKEN"

Substitua:

  • PROJECT_ID: o ID do projeto que contém o chaveiro.
  • LOCATION: o local do Cloud KMS do keyring.
  • KEY_RING: o nome do keyring que contém a chave.
  • KEY_NAME: o nome da chave para a qual você quer conferir o resumo de uso.
  • CALLING_PROJECT_ID: o ID do projeto em que você está chamando a API Inventory do KMS.

Para conferir detalhes do uso da chave, use o método protectedResources.search:

curl "https://kmsinventory.googleapis.com/v1/organizations/ORGANIZATION_ID/protectedResources:search?crypto_key=projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"
    --request "GET" \
    --header "x-goog-user-project: CALLING_PROJECT_ID"
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer TOKEN"

Substitua:

  • ORGANIZATION_ID: o ID numérico da sua organização.
  • PROJECT_ID: o ID do projeto que contém o chaveiro.
  • LOCATION: o local do Cloud KMS do keyring.
  • KEY_RING: o nome do keyring que contém a chave.
  • KEY_NAME: o nome da chave para a qual você quer conferir os detalhes de uso.
  • CALLING_PROJECT_ID: o ID do projeto em que você está chamando a API Inventory do KMS.

Detalhes importantes do uso

Os detalhes de uso sobre os recursos protegidos criptografados com a chave selecionada incluem:

  • Nome: o nome do recurso Google Cloud protegido pela chave selecionada.
  • Projeto: o nome do projeto que contém o recurso protegido.
  • Versão da chave criptográfica: a versão da chave usada para criptografar esse recurso. Alguns recursos protegidos não informam a versão da chave criptográfica.
  • Produto do Cloud: o Google Cloud produto associado a esse recurso.
  • Tipo de recurso: o tipo de recurso protegido, por exemplo, bucket (Cloud Storage) ou disco (Compute Engine).
  • Local: a Google Cloud região associada ao recurso.
  • Data de criação: o horário em que o recurso foi criado.
  • Rótulos: um conjunto de pares de chave-valor associados ao recurso.

Listar as versões de chave que protegem um recurso

Se um recurso estiver protegido por várias versões de chave, talvez não seja possível ver a lista completa de versões de chave na guia Rastreamento de uso.

Para listar as versões de chave que protegem um recurso, use a CLI gcloud para executar o seguinte comando:

gcloud beta kms inventory search-protected-resources \
  --keyname=KEY_NAME \
  --scope=organizations/ORGANIZATION_ID \
  --filter="name:RESOURCE_NAME" \
  --flatten="cryptoKeyVersions" \
  --format="value(cryptoKeyVersions)"

Substitua:

  • KEY_NAME: o nome da chave para a qual você quer listar as versões da chave.
  • ORGANIZATION_ID: o ID numérico da sua organização.
  • RESOURCE_NAME: o nome do recurso para o qual você quer listar as versões principais.

Limitações

Ao usar o rastreamento de uso de chave, observe o seguinte:

  • O rastreamento de uso de chaves só está disponível para o uso de chaves CMEK. Se você estiver usando uma versão de chave nos seus aplicativos dentro ou fora de Google Cloud, esse uso não será incluído na guia Rastreamento de uso.
  • Alguns recursos do CMEK não são rastreados. Para tipos de recursos que não estão listados em Tipos de recursos monitorados, as informações de uso da chave podem não ser incluídas nos detalhes de uso da chave. Por exemplo, o uso de chaves pelo Datastream para criptografar recursos ConnectionProfile (datastream.googleapis.com/ConnectionProfile) não é mostrado na guia Rastreamento de uso.
  • Os dados podem estar atrasados. Por exemplo, se você criar um novo recurso protegido, ele e a versão da chave associada não serão adicionados imediatamente à guia Rastreamento de uso.
  • Os dados de uso da chave do Cloud Storage estão sujeitos às seguintes limitações adicionais:
    • Os dados de uso de chaves são agregados de objetos para intervalos. Os nomes dos objetos não são mostrados. Um bucket vai aparecer como usando uma chave se tiver pelo menos um objeto usando essa chave.
    • O rastreamento de uso de chaves pode não ser concluído para buckets que contêm objetos protegidos com mais de 4.000 versões de chaves exclusivas.
  • Os detalhes principais do rastreamento de uso são apenas para fins informativos. Faça sua própria diligência usando outras fontes antes de fazer mudanças que possam resultar em falhas ou perda de dados. Não desative nem destrua versões de chaves com base apenas nas informações de rastreamento de uso de chaves.

Tipos de recursos monitorados

Os seguintes tipos de recursos são suportados:

    Serviço Recurso
    Aplicativos de IA discoveryengine.googleapis.com/DataStore
    AlloyDB para PostgreSQL alloydb.googleapis.com/Backup
    AlloyDB para PostgreSQL alloydb.googleapis.com/Cluster
    Hub de APIs da Apigee apihub.googleapis.com/ApiHubInstance
    Artifact Registry artifactregistry.googleapis.com/Repository
    BigQuery bigquery.googleapis.com/Dataset
    BigQuery bigquery.googleapis.com/Model
    BigQuery bigquery.googleapis.com/Table
    BigQuery bigquerydatatransfer.googleapis.com/TransferConfig
    Bigtable bigtableadmin.googleapis.com/Backup
    Bigtable bigtableadmin.googleapis.com/Cluster
    Bigtable bigtableadmin.googleapis.com/Table
    Cloud Composer composer.googleapis.com/Environment
    Cloud Data Fusion datafusion.googleapis.com/Instance
    API Cloud Healthcare healthcare.googleapis.com/Dataset
    Cloud Logging logging.googleapis.com/LogBucket
    Cloud Run run.googleapis.com/Revision
    Funções do Cloud Run cloudfunctions.googleapis.com/CloudFunction
    Funções do Cloud Run cloudfunctions.googleapis.com/Function
    Cloud SQL sqladmin.googleapis.com/BackupRun
    Cloud SQL sqladmin.googleapis.com/Instance
    Cloud Storage storage.googleapis.com/Bucket
    Cloud Workstations workstations.googleapis.com/Workstation
    Cloud Workstations workstations.googleapis.com/WorkstationConfig
    Compute Engine compute.googleapis.com/Disk
    Compute Engine compute.googleapis.com/Image
    Compute Engine compute.googleapis.com/MachineImage
    Compute Engine compute.googleapis.com/Snapshot
    Database Migration Service datamigration.googleapis.com/MigrationJob
    Database Migration Service datamigration.googleapis.com/ConnectionProfile
    Dataflow dataflow.googleapis.com/Job
    Dataproc dataproc.googleapis.com/Cluster
    Dataproc dataproc.googleapis.com/Batch
    Dataproc Metastore metastore.googleapis.com/Service
    Datastream datastream.googleapis.com/Stream
    Document AI documentai.googleapis.com/HumanReviewConfig
    Document AI documentai.googleapis.com/Processor
    Document AI documentai.googleapis.com/ProcessorVersion
    Filestore file.googleapis.com/Instance
    Filestore file.googleapis.com/Backup
    Firestore firestore.googleapis.com/Database
    Firestore datastore.googleapis.com/Database
    Google Agentspace Enterprise discoveryengine.googleapis.com/DataStore
    Google Kubernetes Engine container.googleapis.com/Cluster
    Looker (Google Cloud Core) looker.googleapis.com/Instance
    Memorystore for Redis redis.googleapis.com/Instance
    Migrate to Virtual Machines vmmigration.googleapis.com/Source
    Pub/Sub pubsub.googleapis.com/Topic
    Secret Manager secretmanager.googleapis.com/Secret
    Secret Manager secretmanager.googleapis.com/SecretVersion
    Secure Source Manager securesourcemanager.googleapis.com/Instance
    Spanner spanner.googleapis.com/Database
    Vertex AI aiplatform.googleapis.com/Dataset
    Vertex AI aiplatform.googleapis.com/Featurestore
    Vertex AI aiplatform.googleapis.com/Tensorboard
    Vertex AI aiplatform.googleapis.com/BatchPredictionJob
    Vertex AI aiplatform.googleapis.com/CustomJob
    Vertex AI aiplatform.googleapis.com/Endpoint
    Vertex AI aiplatform.googleapis.com/Model
    Vertex AI aiplatform.googleapis.com/TrainingPipeline
    Vertex AI aiplatform.googleapis.com/PipelineJob
    Vertex AI aiplatform.googleapis.com/MetadataStore
    Instâncias do Vertex AI Workbench notebooks.googleapis.com/Instance
    Fluxos de trabalho workflows.googleapis.com/Workflow