Cómo ver el uso de la clave

En este tema, se muestra cómo ver los Google Cloud recursos de tu organización que están protegidos por tus claves de Cloud KMS.

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

  • La información del Resumen de uso de claves de cada clave incluye la cantidad de recursos, proyectos y Google Cloud productos únicos protegidos que usan la clave. Este nivel de detalle está disponible para cualquier persona que tenga el rol de visor de Cloud KMS en la clave.
  • La información de los detalles de uso de la clave identifica qué recursos están protegidos por esta clave y dependen de ella. Este nivel de detalle es de acceso privilegiado y solo está disponible para las cuentas que tienen el rol de Visualizador de recursos protegidos de Cloud KMS en la organización.

Antes de comenzar

En este tema, se supone que usas Cloud KMS dentro de unGoogle Cloud recurso de organización.

  1. Pídele al administrador de tu organización que otorgue a tu cuenta de servicio de Cloud KMS el rol de Agente de servicios de organización de Cloud KMS (cloudkms.orgServiceAgent) en el recurso de tu organización. Este rol no está disponible en la consola de Google Cloud, por lo que debes usar gcloud CLI para otorgarlo:

    gcloud CLI

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

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

  2. Otorga el rol de Visualizador de Cloud KMS (roles/cloudkms.viewer) a cualquier persona que necesite ver los resúmenes de uso de claves. Para obtener información sobre cómo otorgar roles, consulta Administra el acceso.

  3. Otorga el rol de Visualizador de recursos protegidos de Cloud KMS (roles/cloudkms.protectedResourcesViewer) en el recurso de tu 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 gcloud CLI para otorgarlo:

    gcloud CLI

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

    Reemplaza lo siguiente:

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

    Habilitar la API

Cómo ver la información de uso de claves

Console

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

    Ir a Key Inventory

  2. Opcional: Para filtrar la lista de claves, ingresa tus términos de búsqueda en el cuadro Filtro filter_list y, luego, presiona Intro. Por ejemplo, puedes filtrar por ubicación, anillo de claves, estado y otras propiedades de las claves.

  3. Haz clic en el nombre de la clave de la que deseas ver la información de uso.

  4. Haz clic en la pestaña Seguimiento de uso.

  5. Opcional: Para filtrar la lista de recursos protegidos, ingresa tus términos de búsqueda en el cuadro Filtro filter_list y, luego, presiona Intro.

Se muestran el resumen y los detalles del uso de la clave seleccionada.

gcloud CLI

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

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 \

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto que contiene el llavero.
  • LOCATION: la ubicación de Cloud KMS del llavero de claves.
  • KEY_RING: el nombre del llavero de claves que incluye la clave
  • KEY_NAME: Es el nombre de la clave para la que deseas ver el resumen de uso.

Para ver los detalles del uso de 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

Reemplaza lo siguiente:

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

API

En estos ejemplos, se usa curl como un cliente HTTP para demostrar el uso de la API. Para obtener más información sobre el control de acceso, consulta Accede a la API de 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"

Reemplaza lo siguiente:

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

Para ver los detalles del uso de 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"

Reemplaza lo siguiente:

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

Detalles del uso de la clave

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

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

Cómo enumerar las versiones de clave que protegen un recurso

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

Para enumerar las versiones de claves 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)"

Reemplaza lo siguiente:

  • KEY_NAME: Es el nombre de la clave para la que deseas enumerar las versiones.
  • ORGANIZATION_ID: El ID numérico de tu organización.
  • RESOURCE_NAME: Es el nombre del recurso para el que deseas enumerar las versiones de clave.

Limitaciones

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

  • El seguimiento de uso de claves solo está disponible para el uso de 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 de uso.
  • No se realiza un seguimiento de algunos recursos de CMEK. En el caso de los tipos de recursos que no se indican en Tipos de recursos a los que se les hace un seguimiento, es posible que la información sobre el uso de claves no se incluya en los detalles del uso de claves. Por ejemplo, el uso de claves por parte de Datastream para encriptar recursos ConnectionProfile (datastream.googleapis.com/ConnectionProfile) no se muestra en la pestaña Seguimiento de uso.
  • Es posible que los datos se demoren. Por ejemplo, si creas un recurso protegido nuevo, el recurso protegido y la versión de clave asociada no se agregan de inmediato a la pestaña Seguimiento de 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 los objetos a los buckets. No se muestran los nombres de los objetos. Un bucket se mostrará como que usa una clave si tiene al menos un objeto que usa esa clave.
    • Es posible que el seguimiento del uso de claves no esté completo para los buckets que contienen objetos protegidos con más de 4,000 versiones de claves únicas.
  • Los detalles del seguimiento de uso de claves son solo con fines informativos. Realiza tu propia diligencia debida con otras fuentes antes de realizar cambios que podrían provocar interrupciones o pérdida de datos. No inhabilites ni destruyas versiones de claves solo según la información de seguimiento del uso de claves.

Tipos de recursos a los que se les hace un seguimiento

Se admiten los siguientes tipos de recursos:

    Servicio Recurso
    Aplicaciones de IA discoveryengine.googleapis.com/DataStore
    AlloyDB para PostgreSQL alloydb.googleapis.com/Backup
    AlloyDB para PostgreSQL alloydb.googleapis.com/Cluster
    Concentrador de API 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
    Funciones de Cloud Run cloudfunctions.googleapis.com/CloudFunction
    Funciones de 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
    Instancias de Vertex AI Workbench notebooks.googleapis.com/Instance
    Workflows workflows.googleapis.com/Workflow