Monitorar alterações de estado usando o Pub/Sub

Nesta página, mostramos como usar o Pub/Sub para criar notificações sobre alterações de estado dos recursos do Cloud KMS.

Antes de começar

Para ativar APIs, conceder as permissões necessárias e criar um tópico do Pub/Sub, siga as instruções em Antes de começar em "Como monitorar alterações de recursos".

Configurar um feed

Configure um feed que monitore o tipo de alterações e recursos em que você tem interesse.

Notificar sobre todas as mudanças de recursos

Para criar um feed, use o comando gcloud asset feeds create.

gcloud asset feeds create FEED_NAME \
  --project=PROJECT_ID  \
  --asset-types="RESOURCE_TYPE" \
  --pubsub-topic="PUBSUB_TOPIC"

Substitua:

  • FEED_NAME: o nome a ser usado para o feed do Pub/Sub.
  • PROJECT_ID: o ID do projeto do Cloud KMS que você quer monitorar.
  • RESOURCE_TYPE: os tipos de recurso sobre os quais você quer receber notificações. Use vírgulas entre os tipos de recursos, por exemplo, cloudkms.googleapis.com/CryptoKey,cloudkms.googleapis.com/CryptoKeyVersion. É possível notificar sobre qualquer tipo de recurso compatível, incluindo:

    • cloudkms.googleapis.com/CryptoKey
    • cloudkms.googleapis.com/CryptoKeyVersion
    • cloudkms.googleapis.com/EkmConnection
    • cloudkms.googleapis.com/ImportJob
    • cloudkms.googleapis.com/KeyRing
  • PUBSUB_TOPIC: o nome do tópico do Pub/Sub que você criou em Antes de começar

Isso cria uma notificação quando os recursos do tipo indicado são criados ou atualizados. A notificação indica que o recurso foi atualizado, mas não inclui informações detalhadas sobre a atualização. Por exemplo, uma notificação de atualização de uma CryptoKeyVersion pode significar que a versão passou a ser a principal ou que a versão foi programada para destruição. Ao receber uma notificação de que um recurso foi atualizado, verifique o recurso para encontrar o estado atual.

Notificar sobre mudanças específicas em recursos

Para criar um feed com uma condição, use o comando gcloud asset feeds create com a sinalização --condition-expression.

gcloud asset feeds create FEED_NAME \
  --project=PROJECT_ID  \
  --asset-types="RESOURCE_TYPE" \
  --pubsub-topic="PUBSUB_TOPIC" \
  --condition-expression="CONDITION_EXPRESSION"

Substitua:

  • FEED_NAME: o nome a ser usado para o feed do Pub/Sub.
  • PROJECT_ID: o ID do seu projeto do Cloud KMS
  • RESOURCE_TYPE: o tipo de recurso para o qual você quer receber notificações, por exemplo, cloudkms.googleapis.com/CryptoKeyVersion. É possível notificar sobre qualquer tipo de recurso compatível, incluindo:

    • cloudkms.googleapis.com/CryptoKey
    • cloudkms.googleapis.com/CryptoKeyVersion
    • cloudkms.googleapis.com/EkmConnection
    • cloudkms.googleapis.com/ImportJob
    • cloudkms.googleapis.com/KeyRing
  • PUBSUB_TOPIC: o nome do tópico do Pub/Sub que você criou em Antes de começar

  • CONDITION_EXPRESSION: uma expressão de condição em Common Expression Language (CEL). Por exemplo, "folders/FOLDER_NUMBER" in temporal_asset.asset.ancestors faz com que o feed só crie notificações quando o recurso indicado está localizado na pasta FOLDER_NUMBER.

Isso cria uma notificação quando os recursos do tipo indicado que correspondem à expressão de condição especificada são criados, excluídos ou atualizados.