Ver el uso de claves

En esta página se explica cómo ver los Google Cloud recursos de tu organización que están protegidos por tus claves de Cloud KMS. El seguimiento del uso de claves solo está disponible en los recursos de la organización.

Puedes ver información sobre los recursos que protegen tus claves en dos niveles:

  • La información del resumen de uso de la clave de cada clave incluye el número de recursos protegidos, proyectos y productos únicos Google Cloud que usan la clave. Cualquier usuario que tenga el rol de lector de Cloud KMS en la clave puede acceder a este nivel de detalle.
  • La información de Detalles de uso de la clave identifica los recursos que están protegidos por esta clave y dependen de ella. Este nivel de detalle es privado y solo está disponible para las cuentas que tengan el rol Lector de recursos protegidos de Cloud KMS en la organización.

Antes de empezar

En esta página se presupone que usas Cloud KMS en unGoogle Cloud recurso de organización.

  1. Pide al administrador de tu organización que conceda a tu cuenta de servicio de Cloud KMS el rol Agente de servicio de organización de Cloud KMS (roles/cloudkms.orgServiceAgent) en tu recurso de organización. Este rol no está disponible en la consola, por lo que debes usar la CLI de gcloud para asignarlo: Google Cloud

    CLI de 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
    

    Sustituye ORGANIZATION_ID por el ID numérico de tu organización.

  2. Asigna el rol Lector de Cloud KMS (roles/cloudkms.viewer) a cualquier persona que necesite ver resúmenes de uso de claves. Para obtener información sobre cómo conceder roles, consulta el artículo sobre cómo gestionar el acceso.

  3. Asigna el rol Lector de recursos protegidos de Cloud KMS (roles/cloudkms.protectedResourcesViewer) en tu recurso de organización a cualquier persona que necesite ver los detalles de uso de las claves. Este rol no está disponible en la consola de Google Cloud, por lo que debes usar la CLI de gcloud para asignarlo: Google Cloud

    CLI de gcloud

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

    Haz los cambios siguientes:

    • ORGANIZATION_ID: el ID numérico de tu organización.
    • USER_EMAIL: la dirección de correo del usuario.
  4. Habilita la API Cloud KMS Inventory.

    Activar la API

Ver información sobre el uso de claves

Consola

  1. En la Google Cloud consola, ve a la página Inventario de claves.

    Ir a Inventario de claves

  2. Opcional: Para filtrar la lista de claves, introduce los términos de búsqueda en el cuadro filter_list Filtrar y, a continuación, pulsa Intro. Por ejemplo, puedes filtrar por ubicación, llavero, estado u otras propiedades de las claves.

  3. Haga clic en el nombre de la clave de la que quiera ver información de uso.

  4. Haga clic en la pestaña Seguimiento del uso.

  5. Opcional: Para filtrar la lista de recursos protegidos, introduce los términos de búsqueda en el cuadro filter_list Filtrar y, a continuación, pulsa Intro.

Se muestra un resumen y los detalles del uso de la clave seleccionada.

CLI de gcloud

Para usar Cloud KMS en la línea de comandos, primero instala o actualiza a la versión más reciente de la CLI de Google Cloud.

Para ver el resumen del uso de claves, usa el 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 \

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto que contiene el conjunto de claves.
  • LOCATION: la ubicación de Cloud KMS del conjunto de claves.
  • KEY_RING: el nombre del conjunto de claves que contiene la clave.
  • KEY_NAME: el nombre de la clave de la que quieras ver el resumen de uso.

Para ver los detalles del uso de las claves, usa el 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

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto que contiene el conjunto de claves.
  • LOCATION: la ubicación de Cloud KMS del conjunto de claves.
  • KEY_RING: el nombre del conjunto de claves que contiene la clave.
  • KEY_NAME: el nombre de la clave de la que quieres ver los detalles de uso.
  • ORGANIZATION_ID: el ID numérico de tu organización.

API

En estos ejemplos se usa curl como cliente HTTP para mostrar cómo se usa la API. Para obtener más información sobre el control de acceso, consulta el artículo sobre cómo acceder a la API Cloud KMS.

Para ver el resumen del uso de claves, usa el 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"

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto que contiene el conjunto de claves.
  • LOCATION: la ubicación de Cloud KMS del conjunto de claves.
  • KEY_RING: el nombre del conjunto de claves que contiene la clave.
  • KEY_NAME: el nombre de la clave de la que quieras ver el resumen de uso.
  • CALLING_PROJECT_ID: el ID del proyecto desde el que llamas a la API KMS Inventory.

Para ver los detalles del uso de las claves, usa el 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"

Haz los cambios siguientes:

  • ORGANIZATION_ID: el ID numérico de tu organización.
  • PROJECT_ID: el ID del proyecto que contiene el conjunto de claves.
  • LOCATION: la ubicación de Cloud KMS del conjunto de claves.
  • KEY_RING: el nombre del conjunto de claves que contiene la clave.
  • KEY_NAME: el nombre de la clave de la que quieres ver los detalles de uso.
  • CALLING_PROJECT_ID: el ID del proyecto desde el que llamas a la API KMS Inventory.

Detalles de uso de las claves

Los detalles de uso de los recursos protegidos que están cifrados con la clave seleccionada incluyen lo siguiente:

  • Nombre: el nombre del Google Cloud recurso protegido por la clave seleccionada.
  • Proyecto: nombre del proyecto que contiene el recurso protegido.
  • Versión de la clave criptográfica: la versión de la clave que se usa para cifrar este recurso. Algunos recursos protegidos no informan de la versión de la clave criptográfica.
  • Producto de Cloud: el producto Google Cloud asociado a este recurso.
  • Tipo de recurso: el tipo de recurso protegido, como Segmento (Cloud Storage) o Disco (Compute Engine).
  • Ubicación: la Google Cloud región asociada al recurso.
  • Fecha de creación: hora a la que se creó el recurso.
  • Etiquetas: un conjunto de pares clave-valor asociados al recurso.

Mostrar las versiones de clave que protegen un recurso

Si un recurso está protegido por varias versiones de la clave, es posible que no puedas ver la lista completa de versiones de la clave en la pestaña Seguimiento del uso.

Para enumerar las versiones de clave que protegen un recurso, usa la CLI de gcloud para ejecutar el siguiente comando:

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

Haz los cambios siguientes:

  • KEY_NAME: el nombre de la clave de la que quieres obtener una lista de versiones.
  • ORGANIZATION_ID: el ID numérico de tu organización.
  • RESOURCE_NAME: el nombre del recurso del que quieres obtener la lista de versiones de claves.

Limitaciones

Cuando uses el seguimiento del uso de claves, ten en cuenta lo siguiente:

  • El seguimiento del uso de claves solo está disponible para las claves CMEK. Si usas una versión de clave en tus aplicaciones dentro o fuera de Google Cloud, ese uso no se incluye en la pestaña Seguimiento del uso.
  • No se hace un seguimiento de algunos recursos de CMEK. En el caso de los tipos de recursos que no se incluyan en Tipos de recursos monitorizados, es posible que la información clave de uso no se incluya en los detalles de uso de la clave. Por ejemplo, el uso de claves por parte de Datastream para cifrar recursos ConnectionProfile (datastream.googleapis.com/ConnectionProfile) no se muestra en la pestaña Seguimiento del uso.
  • Los datos pueden retrasarse. Por ejemplo, si creas un recurso protegido, este y la versión de clave asociada no se añadirán inmediatamente a la pestaña Seguimiento del uso.
  • Los datos de uso de claves de Cloud Storage están sujetos a las siguientes limitaciones adicionales:
    • Los datos de uso de claves se agregan de objetos a segmentos. No se muestran los nombres de los objetos. Se mostrará que un segmento usa una clave si tiene al menos un objeto que la usa.
    • Es posible que el seguimiento del uso de claves no se complete en los contenedores que incluyan objetos protegidos con más de 4000 versiones de clave únicas.
  • Los detalles de seguimiento del uso de las claves son solo informativos. Realiza las comprobaciones necesarias con otras fuentes antes de hacer cambios que puedan provocar interrupciones o pérdida de datos. No inhabilite ni destruya versiones de claves basándose únicamente en la información de seguimiento del uso de claves.

Tipos de recursos monitorizados

Se admiten los siguientes tipos de recursos:

    Servicio Recurso
    Aplicaciones de IA discoveryengine.googleapis.com/DataStore
    AlloyDB for PostgreSQL alloydb.googleapis.com/Backup
    AlloyDB for PostgreSQL alloydb.googleapis.com/Cluster
    Hub de APIs de 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 de Cloud Healthcare healthcare.googleapis.com/Dataset
    Cloud Logging logging.googleapis.com/LogBucket
    Cloud Run run.googleapis.com/Revision
    Cloud Run Functions cloudfunctions.googleapis.com/CloudFunction
    Cloud Run Functions 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 (servicio principal de Google Cloud) looker.googleapis.com/Instance
    Memorystore para 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
    Instancias de Vertex AI Workbench notebooks.googleapis.com/Instance
    Flujos de trabajo workflows.googleapis.com/Workflow