Para receber notificações em tempo real sobre alterações de recursos e políticas, crie e assine um feed.
Ao criar o feed, é possível especificar que você quer monitorar as mudanças de tipos de recursos, políticas do IAM, políticas de acesso e políticas da organização em uma organização, pasta ou projeto. Além disso, é possível adicionar condições ao seu feed para receber notificações apenas para determinados tipos de alteração em um recurso.
Depois de criar um feed, você vai receber notificações pelo Pub/Sub sempre que os recursos especificados mudarem. A primeira mensagem publicada no tópico do Pub/Sub é uma mensagem de boas-vindas no formato de uma string, e todas as mensagens seguintes estão no formato de um TemporalAsset.
Confira um exemplo de mensagem do Pub/Sub para o tipo de conteúdo RESOURCE
.
{
"asset":{
"ancestors":[
"projects/000000000000",
"folders/000000000000",
"organizations/000000000000"
],
"assetType":"storage.googleapis.com/Bucket",
"name":"//storage.googleapis.com/my-bucket",
"resource":{
"data":{
LATEST_ASSET_METADATA
},
"discoveryDocumentUri":"https://www.googleapis.com/discovery/v1/apis/storage/v1/rest",
"discoveryName":"Bucket",
"location":"us",
"parent":"//cloudresourcemanager.googleapis.com/projects/000000000000",
"version":"v1"
},
"updateTime":"2024-01-30T00:00:00.000000Z"
},
"priorAsset":{
"ancestors":[
"projects/000000000000",
"folders/000000000000",
"organizations/000000000000"
],
"assetType":"storage.googleapis.com/Bucket",
"name":"//storage.googleapis.com/my-bucket",
"resource":{
"data":{
PREVIOUS_ASSET_METADATA
},
"discoveryDocumentUri":"https://www.googleapis.com/discovery/v1/apis/storage/v1/rest",
"discoveryName":"Bucket",
"location":"us",
"parent":"//cloudresourcemanager.googleapis.com/projects/000000000000",
"version":"v1"
},
"updateTime":"2024-01-29T00:00:00.000000Z"
},
"priorAssetState":"PRESENT",
"window":{
"startTime":"2024-01-30T00:00:00.000000Z"
}
}
Para saber mais sobre o Pub/Sub ou como configurar assinaturas, consulte a documentação do Pub/Sub.
Antes de começar
Ative a API Cloud Asset Inventory no projeto em que você está executando comandos do Inventário de recursos do Cloud.
Verifique se a conta tem o papel correto para chamar a API Cloud Asset Inventory. Para permissões individuais de cada tipo de chamada, consulte Permissões.
Crie um tópico do Pub/Sub, se você ainda não tiver um.
Limitações
Pode levar até 10 minutos para que a criação, a atualização ou a exclusão de um feed entre em vigor.
O projeto em que um feed é criado precisa sobreviver ao feed. Isso ocorre porque a conta de serviço usada para publicar no tópico Pub/Sub de destino está localizada nesse projeto. Um feed não funciona mais e é excluído assim que a exclusão do projeto é permanente.
É possível criar até 200 feeds em um recurso pai. Esse limite se aplica somente aos feeds que seguem diretamente um pai e não conta os feeds dos filhos. Por exemplo, se você tiver 10 projetos em uma organização, cada projeto pode ter até 200 feeds, e a organização também pode ter até 200 feeds.
Criar feeds
gcloud
gcloud asset feeds create FEED_ID \ --SCOPE \ --billing-project=BILLING_PROJECT_ID \ --pubsub-topic=projects/TOPIC_PROJECT_ID/topics/TOPIC_ID \ --asset-names=ASSET_NAME_1,ASSET_NAME_2,... \ --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \ --content-type=CONTENT_TYPE \ --relationship-types=RELATIONSHIP_TYPE_1,RELATIONSHIP_TYPE_2,... \ --condition-title="CONDITION_TITLE" \ --condition-description="CONDITION_DESCRIPTION" \ --condition-expression="CONDITION_EXPRESSION"
Forneça os valores a seguir:
-
SCOPE
: use um dos seguintes valores:-
project=PROJECT_ID
, em quePROJECT_ID
é o ID do projeto em que o feed será criado. -
folder=FOLDER_ID
, em queFOLDER_ID
é o ID da pasta em que o feed será criado.Como encontrar o ID de uma pasta do Google Cloud
Google Cloud console
Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Pesquise o nome da pasta. O ID da pasta é mostrado ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma pasta do Google Cloud que está no nível da organização com o seguinte comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Em que TOP_LEVEL_FOLDER_NAME é uma correspondência de string parcial ou completa para o nome da pasta. Remova a flag
--format
para conferir mais informações sobre as pastas encontradas.O comando anterior não retorna os IDs das subpastas dentro das pastas. Para fazer isso, execute o seguinte comando usando o ID de uma pasta de nível superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organization=ORGANIZATION_ID
, em queORGANIZATION_ID
é o ID da organização em que o feed será criado.Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
FEED_ID
: um identificador exclusivo do feed de recursos.-
BILLING_PROJECT_ID
: opcional. O ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud tem permissões para gerenciar seu tópico do Pub/Sub. Saiba mais sobre como configurar o projeto de faturamento. -
TOPIC_PROJECT_ID
: o ID do projeto em que o tópico do Pub/Sub está localizado. -
TOPIC_ID
: o ID do tópico do Pub/Sub em que as notificações serão publicadas. - Pelo menos uma das seguintes definições de recursos:
ASSET_NAME_#
: opcional. Uma lista separada por vírgulas de nomes completos de recursos.ASSET_TYPE_#
: opcional. Uma lista separada por vírgulas de tipos de recursos pesquisáveis. As expressões regulares compatíveis com RE2 são aceitas. Se a expressão regular não corresponder a nenhum tipo de recurso aceito, um erroINVALID_ARGUMENT
será retornado. Quando--asset-types
não é especificado, todos os tipos de recurso são retornados.
CONTENT_TYPE
: opcional. O tipo de conteúdo dos metadados que você quer recuperar. Quando--content-type
não é especificado, apenas informações básicas são retornadas, como nomes de recursos, a última vez que os recursos foram atualizados e a quais projetos, pastas e organizações eles pertencem.-
RELATIONSHIP_TYPE_#
: opcional. Requer acesso ao nível Premium ou Enterprise do Security Command Center, ou ao Gemini Cloud Assist. Uma lista separada por vírgulas de tipos de relacionamento de recursos que você quer recuperar. DefinaCONTENT_TYPE
comoRELATIONSHIP
para que isso funcione. - Se você adicionar uma condição de feed opcional, inclua os seguintes detalhes no comando:
CONDITION_TITLE
: um título a ser atribuído à condição do feed.-
CONDITION_DESCRIPTION
: uma descrição para atribuir à condição do feed. CONDITION_EXPRESSION
: a expressão de condição a ser aplicada ao feed.
Consulte a referência da CLI do gcloud para conferir todas as opções.
Exemplo
Execute o comando a seguir para criar um feed no tópico my-topic
do Pub/Sub
que notifica quando mudanças são feitas nos seguintes recursos no projeto my-project
.
- O bucket
my-bucket
do Cloud Storage - Qualquer tabela do BigQuery
gcloud asset feeds create my-feed \ --project=my-project \ --pubsub-topic=projects/my-project/topics/my-topic \ --asset-names=//storage.googleapis.com/my-bucket \ --asset-types=bigquery.googleapis.com/Table \ --content-type=resource
Exemplo de resposta
assetNames: - //storage.googleapis.com/my-bucket assetTypes: - bigquery.googleapis.com/Table condition: {} contentType: RESOURCE feedOutputConfig: pubsubDestination: topic: projects/my-project/topics/my-topic name: projects/000000000000/feeds/my-feed
REST
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH/feeds
Cabeçalhos:
X-Goog-User-Project: BILLING_PROJECT_ID
Solicitar corpo JSON:
{ "feedId": "FEED_ID", "feed": { "assetNames": [ "ASSET_NAME_1", "ASSET_NAME_2", "..." ], "assetTypes": [ "ASSET_TYPE_1", "ASSET_TYPE_2", "..." ], "contentType": "CONTENT_TYPE", "relationshipTypes": [ "RELATIONSHIP_TYPE_1", "RELATIONSHIP_TYPE_2", "..." ], "feedOutputConfig": { "pubsubDestination": { "topic": "projects/TOPIC_PROJECT_ID/topics/TOPIC_ID" } }, "condition": { "title": "CONDITION_TITLE", "description": "CONDITION_DESCRIPTION", "expression": "CONDITION_EXPRESSION" } } }
Forneça os valores a seguir:
-
SCOPE_PATH
: use um dos seguintes valores:Os valores permitidos são:
-
projects/PROJECT_ID
, em quePROJECT_ID
é o ID do projeto em que o feed será criado. -
projects/PROJECT_NUMBER
, em quePROJECT_NUMBER
é o número do projeto em que o feed será criado.Como encontrar um número de projeto do Google Cloud
Google Cloud console
Para encontrar um número de projeto do Google Cloud , siga estas etapas:
-
Acesse a página Welcome no console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
-
Selecione sua organização na caixa de lista e pesquise o nome do projeto. O nome, o número e o ID do projeto são mostrados perto do título Welcome.
Até 4.000 recursos são exibidos. Se você não encontrar o projeto que está procurando, acesse a página Gerenciar recursos e filtre a lista usando o nome dele.
CLI da gcloud
É possível extrair um número de projeto do Google Cloud com o seguinte comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, em queFOLDER_ID
é o ID da pasta em que o feed será criado.Como encontrar o ID de uma pasta do Google Cloud
Google Cloud console
Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Pesquise o nome da pasta. O ID da pasta é mostrado ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma pasta do Google Cloud que está no nível da organização com o seguinte comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Em que TOP_LEVEL_FOLDER_NAME é uma correspondência de string parcial ou completa para o nome da pasta. Remova a flag
--format
para conferir mais informações sobre as pastas encontradas.O comando anterior não retorna os IDs das subpastas dentro das pastas. Para fazer isso, execute o comando abaixo usando o ID de uma pasta de nível superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, em queORGANIZATION_ID
é o ID da organização em que o feed será criado.Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
: o ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud tem permissões para gerenciar seu tópico do Pub/Sub. Saiba mais sobre como configurar o projeto de faturamento. FEED_ID
: um identificador exclusivo do feed de recursos.- Pelo menos uma das seguintes definições de recursos:
ASSET_NAME_#
: opcional. Uma matriz de nomes completos de recursos.ASSET_TYPE_#
: opcional. Uma matriz de tipos de recursos pesquisáveis. As expressões regulares compatíveis com RE2 são aceitas. Se a expressão regular não corresponder a nenhum tipo de recurso aceito, um erroINVALID_ARGUMENT
será retornado. QuandoassetTypes
não é especificado, todos os tipos de recursos são retornados.
CONTENT_TYPE
: opcional. O tipo de conteúdo dos metadados que você quer recuperar. QuandocontentType
não é especificado, apenas informações básicas são retornadas, como nomes de recursos, a última vez que os recursos foram atualizados e a quais projetos, pastas e organizações eles pertencem.-
RELATIONSHIP_TYPE_#
: opcional. Requer acesso ao nível Premium ou Enterprise do Security Command Center, ou ao Gemini Cloud Assist. Uma lista separada por vírgulas de tipos de relacionamento de recursos que você quer recuperar. DefinaCONTENT_TYPE
comoRELATIONSHIP
para que isso funcione. -
TOPIC_PROJECT_ID
: o ID do projeto em que o tópico do Pub/Sub está localizado. -
TOPIC_ID
: o ID do tópico do Pub/Sub em que as notificações serão publicadas. - Se você adicionar uma condição de feed opcional, inclua os seguintes detalhes no comando:
CONDITION_TITLE
: um título a ser atribuído à condição do feed.-
CONDITION_DESCRIPTION
: uma descrição para atribuir à condição do feed. CONDITION_EXPRESSION
: a expressão de condição a ser aplicada ao feed.
Consulte a referência REST para conferir todas as opções.
Exemplos de comando
Execute um dos comandos a seguir para criar um feed no tópico my-topic
do Pub/Sub
que notifica quando mudanças são feitas nos seguintes recursos no
projeto my-project
.
- O bucket
my-bucket
do Cloud Storage - Qualquer tabela do BigQuery
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-Goog-User-Project: BILLING_PROJECT_ID" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "feedId": "my-feed", "feed": { "assetNames": [ "//storage.googleapis.com/my-bucket" ], "assetTypes": [ "bigquery.googleapis.com/Table" ], "contentType": "RESOURCE", "feedOutputConfig": { "pubsubDestination": { "topic": "projects/my-project/topics/my-topic" } } } }' \ https://cloudasset.googleapis.com/v1/projects/my-project/feeds
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-Goog-User-Project" = "BILLING_PROJECT_ID"; "Authorization" = "Bearer $cred" } $body = @" { "feedId": "my-feed", "feed": { "assetNames": [ "//storage.googleapis.com/my-bucket" ], "assetTypes": [ "bigquery.googleapis.com/Table" ], "contentType": "RESOURCE", "feedOutputConfig": { "pubsubDestination": { "topic": "projects/my-project/topics/my-topic" } } } } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project/feeds" | Select-Object -Expand Content
Exemplo de resposta
{ "name": "projects/000000000000/feeds/my-feed", "assetNames": [ "//storage.googleapis.com/my-bucket" ], "assetTypes": [ "bigquery.googleapis.com/Table" ], "contentType": "RESOURCE", "feedOutputConfig": { "pubsubDestination": { "topic": "projects/my-project/topics/my-topic" } } }
Go
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Acessar feeds
gcloud
gcloud asset feeds describe FEED_ID \ --SCOPE \ --billing-project=BILLING_PROJECT_ID
Forneça os valores a seguir:
-
SCOPE
: use um dos seguintes valores:-
project=PROJECT_ID
, em quePROJECT_ID
é o ID do projeto em que o feed está. -
folder=FOLDER_ID
, em queFOLDER_ID
é o ID da pasta em que o feed está.Como encontrar o ID de uma pasta do Google Cloud
Google Cloud console
Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Pesquise o nome da pasta. O ID da pasta é mostrado ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma pasta do Google Cloud que está no nível da organização com o seguinte comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Em que TOP_LEVEL_FOLDER_NAME é uma correspondência de string parcial ou completa para o nome da pasta. Remova a flag
--format
para conferir mais informações sobre as pastas encontradas.O comando anterior não retorna os IDs das subpastas dentro das pastas. Para fazer isso, execute o seguinte comando usando o ID de uma pasta de nível superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organization=ORGANIZATION_ID
, em queORGANIZATION_ID
é o ID da organização em que o feed está.Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
: o ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud tem permissões para gerenciar seu tópico do Pub/Sub. Saiba mais sobre como configurar o projeto de faturamento. FEED_ID
: um identificador exclusivo do feed de recursos.
Consulte a referência da CLI do gcloud para conferir todas as opções.
Exemplo de resposta
assetNames: - //storage.googleapis.com/my-bucket assetTypes: - bigquery.googleapis.com/Table condition: {} contentType: RESOURCE feedOutputConfig: pubsubDestination: topic: projects/my-project/topics/my-topic name: projects/000000000000/feeds/my-feed
REST
Método HTTP e URL:
GET https://cloudasset.googleapis.com/v1/SCOPE_PATH/feeds/FEED_ID
Cabeçalhos:
X-Goog-User-Project: BILLING_PROJECT_ID
Forneça os valores a seguir:
-
SCOPE_PATH
: use um dos seguintes valores:Os valores permitidos são:
-
projects/PROJECT_ID
, em quePROJECT_ID
é o ID do projeto em que o feed está. -
projects/PROJECT_NUMBER
, em quePROJECT_NUMBER
é o número do projeto em que o feed está.Como encontrar um número de projeto da nuvem soberana da T-Systems
Google Cloud console
Para encontrar um número de projeto do Google Cloud , siga estas etapas:
-
Acesse a página Welcome no console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
-
Selecione sua organização na caixa de lista e pesquise o nome do projeto. O nome, o número e o ID do projeto são mostrados perto do título Welcome.
Até 4.000 recursos são exibidos. Se você não encontrar o projeto que está procurando, acesse a página Gerenciar recursos e filtre a lista usando o nome dele.
CLI da gcloud
É possível extrair um número de projeto do Google Cloud com o seguinte comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, em queFOLDER_ID
é o ID da pasta em que o feed está.Como encontrar o ID de uma pasta
Google Cloud console
Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Pesquise o nome da pasta. O ID da pasta é mostrado ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma pasta do Google Cloud que está no nível da organização com o seguinte comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Em que TOP_LEVEL_FOLDER_NAME é uma correspondência de string parcial ou completa para o nome da pasta. Remova a flag
--format
para conferir mais informações sobre as pastas encontradas.O comando anterior não retorna os IDs das subpastas dentro das pastas. Para fazer isso, execute o seguinte comando usando o ID de uma pasta de nível superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, em queORGANIZATION_ID
é o ID da organização em que o feed está.Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
: o ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud tem permissões para gerenciar seus conjuntos de dados e tabelas do BigQuery. Saiba mais sobre como definir o projeto de faturamento. FEED_ID
: um identificador exclusivo do feed de recursos.
Consulte a referência REST para conferir todas as opções.
Exemplos de comando
Execute um dos comandos a seguir para receber um feed específico.
curl (Linux, macOS ou Cloud Shell)
curl -X GET \ -H "X-Goog-User-Project: BILLING_PROJECT_ID" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://cloudasset.googleapis.com/v1/projects/my-project/feeds/my-feed
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-Goog-User-Project" = "BILLING_PROJECT_ID"; "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project/feeds/my-feed" | Select-Object -Expand Content
Exemplo de resposta
{ "name": "projects/000000000000/feeds/my-feed", "assetNames": [ "//storage.googleapis.com/my-bucket" ], "assetTypes": [ "bigquery.googleapis.com/Table" ], "contentType": "RESOURCE", "feedOutputConfig": { "pubsubDestination": { "topic": "projects/my-project/topics/my-topic" } } }
Go
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Listar feeds
Para listar todos os feeds de um projeto, uma pasta ou uma organização, faça uma das seguintes solicitações.
gcloud
gcloud asset feeds list \ --SCOPE \ --billing-project=BILLING_PROJECT_ID
Forneça os valores a seguir:
-
SCOPE
: use um dos seguintes valores:-
project=PROJECT_ID
, em quePROJECT_ID
é o ID do projeto em que os feeds estão. -
folder=FOLDER_ID
, em queFOLDER_ID
é o ID da pasta em que os feeds estão.Como encontrar o ID de uma pasta do Google Cloud
Google Cloud console
Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Pesquise o nome da pasta. O ID da pasta é mostrado ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma pasta do Google Cloud que está no nível da organização com o seguinte comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Em que TOP_LEVEL_FOLDER_NAME é uma correspondência de string parcial ou completa para o nome da pasta. Remova a flag
--format
para conferir mais informações sobre as pastas encontradas.O comando anterior não retorna os IDs das subpastas dentro das pastas. Para fazer isso, execute o comando abaixo usando o ID de uma pasta de nível superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organization=ORGANIZATION_ID
, em queORGANIZATION_ID
é o ID da organização em que os feeds estão.Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
: o ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud tem permissões para gerenciar seu tópico do Pub/Sub. Saiba mais sobre como configurar o projeto de faturamento.
Consulte a referência da CLI do gcloud para conferir todas as opções.
Exemplo de resposta
- assetNames: - //storage.googleapis.com/my-bucket assetTypes: - bigquery.googleapis.com/Table condition: {} contentType: RESOURCE feedOutputConfig: pubsubDestination: topic: projects/my-project/topics/my-topic name: projects/000000000000/feeds/my-feed
REST
Método HTTP e URL:
GET https://cloudasset.googleapis.com/v1/SCOPE_PATH/feeds
Cabeçalhos:
X-Goog-User-Project: BILLING_PROJECT_ID
Forneça os valores a seguir:
-
SCOPE_PATH
: use um dos seguintes valores:Os valores permitidos são:
-
projects/PROJECT_ID
, em quePROJECT_ID
é o ID do projeto em que os feeds estão. -
projects/PROJECT_NUMBER
, em quePROJECT_NUMBER
é o número do projeto em que os feeds estão.Como encontrar um número de projeto da nuvem soberana da T-Systems .
Google Cloud console
Para encontrar um número de projeto do Google Cloud , siga estas etapas:
-
Acesse a página Welcome no console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
-
Selecione sua organização na caixa de lista e pesquise o nome do projeto. O nome, o número e o ID do projeto são mostrados perto do título Welcome.
Até 4.000 recursos são exibidos. Se você não encontrar o projeto que está procurando, acesse a página Gerenciar recursos e filtre a lista usando o nome dele.
CLI da gcloud
É possível extrair um número de projeto do Google Cloud com o seguinte comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, em queFOLDER_ID
é o ID da pasta em que os feeds estão.Como encontrar o ID de uma pasta
Google Cloud console
Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Pesquise o nome da pasta. O ID da pasta é mostrado ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma pasta do Google Cloud que está no nível da organização com o seguinte comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Em que TOP_LEVEL_FOLDER_NAME é uma correspondência de string parcial ou completa para o nome da pasta. Remova a flag
--format
para conferir mais informações sobre as pastas encontradas.O comando anterior não retorna os IDs das subpastas dentro das pastas. Para fazer isso, execute o comando abaixo usando o ID de uma pasta de nível superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, em queORGANIZATION_ID
é o ID da organização em que os feeds estão.Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
: o ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud tem permissões para gerenciar seus conjuntos de dados e tabelas do BigQuery. Saiba mais sobre como configurar o projeto de faturamento.
Consulte a referência REST para conferir todas as opções.
Exemplos de comando
Execute um dos comandos a seguir para listar todos os feeds no projeto my-project
.
curl (Linux, macOS ou Cloud Shell)
curl -X GET \ -H "X-Goog-User-Project: BILLING_PROJECT_ID" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://cloudasset.googleapis.com/v1/projects/my-project/feeds
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-Goog-User-Project" = "BILLING_PROJECT_ID"; "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project/feeds" | Select-Object -Expand Content
Exemplo de resposta
{ "feeds": [ { "name": "projects/000000000000/feeds/my-feed", "assetNames": [ "//storage.googleapis.com/my-bucket" ], "assetTypes": [ "bigquery.googleapis.com/Table" ], "contentType": "RESOURCE", "feedOutputConfig": { "pubsubDestination": { "topic": "projects/my-project/topics/my-topic" } } } ] }
Go
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Atualizar feeds
É possível atualizar os atributos de um feed das seguintes maneiras:
Adicionar e remover nomes de recursos específicos ou limpar todos eles do feed.
Adicionar e remover tipos de recursos específicos ou limpar todos eles do feed.
Substituir condições ou excluí-las do feed.
gcloud
gcloud asset feeds update FEED_ID \ --SCOPE \ --billing-project=BILLING_PROJECT_ID \ --pubsub-topic=projects/TOPIC_PROJECT_ID/topics/TOPIC_ID \ --clear-asset-names \ --add-asset-names=ASSET_NAME_1,ASSET_NAME_2,... \ --remove-asset-names=ASSET_NAME_3,ASSET_NAME_4,... \ --clear-asset-types \ --add-asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \ --remove-asset-types=ASSET_TYPE_3,ASSET_TYPE_4,... \ --clear-content-type \ --content-type=CONTENT_TYPE \ --clear-relationship-types \ --remove-relationship-types=RELATIONSHIP_TYPE_1,RELATIONSHIP_TYPE_2,... \ --add-relationship-types=RELATIONSHIP_TYPE_1,RELATIONSHIP_TYPE_2,... \ --clear-condition-title \ --condition-title="CONDITION_TITLE" \ --clear-condition-description \ --condition-description="CONDITION_DESCRIPTION" \ --clear-condition-expression --condition-expression="CONDITION_EXPRESSION"
Forneça os valores a seguir:
-
SCOPE
: use um dos seguintes valores:-
project=PROJECT_ID
, em quePROJECT_ID
é o ID do projeto para atualizar o feed. -
folder=FOLDER_ID
, em queFOLDER_ID
é o ID da pasta em que o feed será atualizado.Como encontrar o ID de uma pasta
Google Cloud console
Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Pesquise o nome da pasta. O ID da pasta é mostrado ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma pasta do Google Cloud que está no nível da organização com o seguinte comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Em que TOP_LEVEL_FOLDER_NAME é uma correspondência de string parcial ou completa para o nome da pasta. Remova a flag
--format
para conferir mais informações sobre as pastas encontradas.O comando anterior não retorna os IDs das subpastas dentro das pastas. Para fazer isso, execute o seguinte comando usando o ID de uma pasta de nível superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organization=ORGANIZATION_ID
, em queORGANIZATION_ID
é o ID da organização para atualizar o feed.Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
FEED_ID
: um identificador exclusivo do feed de recursos.-
BILLING_PROJECT_ID
: opcional. O ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud tem permissões para gerenciar seu tópico do Pub/Sub. Saiba mais sobre como configurar o projeto de faturamento. -
TOPIC_PROJECT_ID
: o ID do projeto em que o tópico do Pub/Sub está localizado. -
TOPIC_ID
: o ID do tópico do Pub/Sub em que as notificações serão publicadas. - Pelo menos uma das seguintes definições de recursos:
ASSET_NAME_#
: opcional. Uma lista separada por vírgulas de nomes completos de recursos.ASSET_TYPE_#
: opcional. Uma lista separada por vírgulas de tipos de recursos pesquisáveis. As expressões regulares compatíveis com RE2 são aceitas. Se a expressão regular não corresponder a nenhum tipo de recurso compatível, um erroINVALID_ARGUMENT
será retornado. Quando--asset-types
não é especificado, todos os tipos de recursos são retornados.
CONTENT_TYPE
: opcional. O tipo de conteúdo dos metadados que você quer recuperar. Quando--content-type
não é especificado, apenas informações básicas são retornadas, como nomes de recursos, a última vez que os recursos foram atualizados e a quais projetos, pastas e organizações eles pertencem.-
RELATIONSHIP_TYPE_#
: opcional. Requer acesso ao nível Premium ou Enterprise do Security Command Center, ou ao Gemini Cloud Assist. Uma lista separada por vírgulas de tipos de relacionamento de recursos que você quer recuperar. DefinaCONTENT_TYPE
comoRELATIONSHIP
para que isso funcione. - Se você adicionar uma condição de feed opcional, inclua os seguintes detalhes no comando:
CONDITION_TITLE
: um título a ser atribuído à condição do feed.-
CONDITION_DESCRIPTION
: uma descrição para atribuir à condição do feed. CONDITION_EXPRESSION
: a expressão de condição a ser aplicada ao feed.
Consulte a referência da CLI do gcloud para conferir todas as opções.
Exemplo
Execute o comando abaixo para atualizar o tópico my-topic
do Pub/Sub no projeto my-project
. Essa solicitação remove todos os nomes de recursos do monitoramento e adiciona
o tipo de recurso gkemulticloud.googleapis.com/AttachedCluster
.
gcloud asset feeds update my-feed \ --project=my-project \ --pubsub-topic=projects/my-project/topics/my-topic \ --clear-asset-names \ --add-asset-types=gkemulticloud.googleapis.com/AttachedCluster
Exemplo de resposta
assetTypes: - bigquery.googleapis.com/Table - gkemulticloud.googleapis.com/AttachedCluster condition: {} contentType: RESOURCE feedOutputConfig: pubsubDestination: topic: projects/my-project/topics/my-topic name: projects/000000000000/feeds/my-feed
Para atualizar os atributos de um feed, você precisa especificar o caminho do atributo
no update_mask
e o valor dele.
REST
Método HTTP e URL:
PATCH https://cloudasset.googleapis.com/v1/SCOPE_PATH/feeds/FEED_ID
Cabeçalhos:
X-Goog-User-Project: BILLING_PROJECT_ID
Solicitar corpo JSON:
{ "feed": { "assetNames": [ "ASSET_NAME_1", "ASSET_NAME_2", "..." ], "assetTypes": [ "ASSET_TYPE_1", "ASSET_TYPE_2", "..." ], "contentType": "CONTENT_TYPE", "relationshipTypes": [ "RELATIONSHIP_TYPE_1", "RELATIONSHIP_TYPE_2", "..." ], "feedOutputConfig": { "pubsubDestination": { "topic": "projects/TOPIC_PROJECT_ID/topics/TOPIC_ID" } } }, "condition": { "title": "CONDITION_TITLE", "description": "CONDITION_DESCRIPTION", "expression": "CONDITION_EXPRESSION" }, "update_mask": { "paths": [ "feed_output_config.pubsub_destination.topic", ATTRIBUTE_PATH_1, ATTRIBUTE_PATH_2, ... ] } }
Forneça os valores a seguir:
-
SCOPE_PATH
: use um dos seguintes valores:Os valores permitidos são:
-
projects/PROJECT_ID
, em quePROJECT_ID
é o ID do projeto para atualizar o feed. -
projects/PROJECT_NUMBER
, em quePROJECT_NUMBER
é o número do projeto para atualizar o feed.Como encontrar um número de projeto do Google Cloud
Google Cloud console
Para encontrar um número de projeto do Google Cloud , siga estas etapas:
-
Acesse a página Welcome no console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
-
Selecione sua organização na caixa de lista e pesquise o nome do projeto. O nome, o número e o ID do projeto são mostrados perto do título Welcome.
Até 4.000 recursos são exibidos. Se você não encontrar o projeto que está procurando, acesse a página Gerenciar recursos e filtre a lista usando o nome dele.
CLI da gcloud
É possível extrair um número de projeto do Google Cloud com o seguinte comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, em queFOLDER_ID
é o ID da pasta em que o feed será atualizado.Como encontrar o ID de uma pasta
Google Cloud console
Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Pesquise o nome da pasta. O ID da pasta é mostrado ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma pasta do Google Cloud que está no nível da organização com o seguinte comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Em que TOP_LEVEL_FOLDER_NAME é uma correspondência de string parcial ou completa para o nome da pasta. Remova a flag
--format
para conferir mais informações sobre as pastas encontradas.O comando anterior não retorna os IDs das subpastas dentro das pastas. Para fazer isso, execute o comando abaixo usando o ID de uma pasta de nível superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, em queORGANIZATION_ID
é o ID da organização para atualizar o feed.Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
: o ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud tem permissões para gerenciar seu tópico do Pub/Sub. Saiba mais sobre como configurar o projeto de faturamento. FEED_ID
: um identificador exclusivo do feed de recursos.- Pelo menos uma das seguintes definições de recursos:
ASSET_NAME_#
: opcional. Uma matriz de nomes completos de recursos.ASSET_TYPE_#
: opcional. Uma matriz de tipos de recursos pesquisáveis. As expressões regulares compatíveis com RE2 são aceitas. Se a expressão regular não corresponder a nenhum tipo de recurso aceito, um erroINVALID_ARGUMENT
será retornado. QuandoassetTypes
não é especificado, todos os tipos de recursos são retornados.
CONTENT_TYPE
: opcional. O tipo de conteúdo dos metadados que você quer recuperar. QuandocontentType
não é especificado, apenas informações básicas são retornadas, como nomes de recursos, a última vez que os recursos foram atualizados e a quais projetos, pastas e organizações eles pertencem.-
RELATIONSHIP_TYPE_#
: opcional. Requer acesso ao nível Premium ou Enterprise do Security Command Center, ou ao Gemini Cloud Assist. Uma lista separada por vírgulas de tipos de relacionamento de recursos que você quer recuperar. DefinaCONTENT_TYPE
comoRELATIONSHIP
para que isso funcione. -
TOPIC_PROJECT_ID
: o ID do projeto em que o tópico do Pub/Sub está localizado. -
TOPIC_ID
: o ID do tópico do Pub/Sub em que as notificações serão publicadas. - Se você adicionar uma condição de feed opcional, inclua os seguintes detalhes no comando:
CONDITION_TITLE
: um título a ser atribuído à condição do feed.-
CONDITION_DESCRIPTION
: uma descrição para atribuir à condição do feed. CONDITION_EXPRESSION
: a expressão de condição a ser aplicada ao feed.
Consulte a referência REST para conferir todas as opções.
Exemplos de comando
Execute um dos comandos abaixo para atualizar o tópico do Pub/Sub my-topic
no
projeto my-project
. Essa solicitação remove todos os nomes de recursos do monitoramento e
adiciona o tipo de recurso gkemulticloud.googleapis.com/AttachedCluster
.
curl (Linux, macOS ou Cloud Shell)
curl -X PATCH \ -H "X-Goog-User-Project: BILLING_PROJECT_ID" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "feed": { "assetNames": [], "assetTypes": [ "gkemulticloud.googleapis.com/AttachedCluster" ], "feedOutputConfig": { "pubsubDestination": { "topic": "projects/my-project/topics/my-topic" } } }, "update_mask": { "paths": ["feed_output_config.pubsub_destination.topic", "asset_names", "asset_types"] } }' \ https://cloudasset.googleapis.com/v1/projects/my-project/feeds/my-feed
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-Goog-User-Project" = "BILLING_PROJECT_ID"; "Authorization" = "Bearer $cred" } $body = @" { "feed": { "assetNames": [], "assetTypes": [ "gkemulticloud.googleapis.com/AttachedCluster" ], "feedOutputConfig": { "pubsubDestination": { "topic": "projects/my-project/topics/my-topic" } } }, "update_mask": { "paths": ["feed_output_config.pubsub_destination.topic", "asset_names", "asset_types"] } } "@ Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project/feeds/my-feed" | Select-Object -Expand Content
Exemplo de resposta
{ "feeds": [ { "name": "projects/000000000000/feeds/my-feed", "assetTypes": [ "bigquery.googleapis.com/Table", "gkemulticloud.googleapis.com/AttachedCluster" ], "contentType": "RESOURCE", "feedOutputConfig": { "pubsubDestination": { "topic": "projects/my-project/topics/my-topic" } } } ] }
Go
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Excluir feeds
Se você não quiser mais receber notificações sobre alterações de recursos, faça uma das seguintes solicitações para excluir um feed.
gcloud
gcloud asset feeds delete FEED_ID \ --SCOPE \ --billing-project=BILLING_PROJECT_ID
Forneça os valores a seguir:
-
SCOPE
: use um dos seguintes valores:-
project=PROJECT_ID
, em quePROJECT_ID
é o ID do projeto em que o feed está. -
folder=FOLDER_ID
, em queFOLDER_ID
é o ID da pasta em que o feed está.Como encontrar o ID de uma pasta do Google Cloud
Google Cloud console
Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Pesquise o nome da pasta. O ID da pasta é mostrado ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma pasta do Google Cloud que está no nível da organização com o seguinte comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Em que TOP_LEVEL_FOLDER_NAME é uma correspondência de string parcial ou completa para o nome da pasta. Remova a flag
--format
para conferir mais informações sobre as pastas encontradas.O comando anterior não retorna os IDs das subpastas dentro das pastas. Para fazer isso, execute o seguinte comando usando o ID de uma pasta de nível superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organization=ORGANIZATION_ID
, em queORGANIZATION_ID
é o ID da organização em que o feed está.Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
: o ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud tem permissões para gerenciar seu tópico do Pub/Sub. Saiba mais sobre como configurar o projeto de faturamento.
Consulte a referência da CLI do gcloud para conferir todas as opções.
Exemplo de resposta
Uma exclusão bem-sucedida não retorna nenhuma resposta.
REST
Método HTTP e URL:
DELETE https://cloudasset.googleapis.com/v1/SCOPE_PATH/feeds/FEED_ID
Cabeçalhos:
X-Goog-User-Project: BILLING_PROJECT_ID
Forneça os valores a seguir:
-
SCOPE_PATH
: use um dos seguintes valores:Os valores permitidos são:
-
projects/PROJECT_NUMBER
, em quePROJECT_NUMBER
é o número do projeto em que o feed está.Como encontrar um número de projeto da nuvem soberana da T-Systems
Google Cloud console
Para encontrar um número de projeto do Google Cloud , siga estas etapas:
-
Acesse a página Welcome no console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
-
Selecione sua organização na caixa de lista e pesquise o nome do projeto. O nome, o número e o ID do projeto são mostrados perto do título Welcome.
Até 4.000 recursos são exibidos. Se você não encontrar o projeto que está procurando, acesse a página Gerenciar recursos e filtre a lista usando o nome dele.
CLI da gcloud
É possível extrair um número de projeto do Google Cloud com o seguinte comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, em queFOLDER_ID
é o ID da pasta em que o feed está.Como encontrar o ID de uma pasta do Google Cloud
Google Cloud console
Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Pesquise o nome da pasta. O ID da pasta é mostrado ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma pasta do Google Cloud que está no nível da organização com o seguinte comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Em que TOP_LEVEL_FOLDER_NAME é uma correspondência de string parcial ou completa para o nome da pasta. Remova a flag
--format
para conferir mais informações sobre as pastas encontradas.O comando anterior não retorna os IDs das subpastas dentro das pastas. Para fazer isso, execute o seguinte comando usando o ID de uma pasta de nível superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, em queORGANIZATION_ID
é o ID da organização em que o feed está.Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
: o ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud tem permissões para gerenciar seu tópico do Pub/Sub. Saiba mais sobre como configurar o projeto de faturamento.
Consulte a referência REST para conferir todas as opções.
Exemplos de comando
Execute um dos comandos a seguir para excluir um feed específico.
curl (Linux, macOS ou Cloud Shell)
curl -X DELETE \ -H "X-Goog-User-Project: BILLING_PROJECT_ID" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://cloudasset.googleapis.com/v1/projects/000000000000/feeds/my-feed
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-Goog-User-Project" = "BILLING_PROJECT_ID"; "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://cloudasset.googleapis.com/v1/projects/000000000000/feeds/my-feed" | Select-Object -Expand Content
Exemplo de resposta
{}
Go
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Condições do feed
Para visualizar apenas determinados tipos de mudanças de um determinado recurso, adicione uma condição ao seu feed. As condições são escritas no Common Expression Language (CEL).
O suporte a condições é limitado. Em alguns casos, a criação ou atualização de feeds com condições pode resultar em um atraso.
Limitações
As expressões de condição têm um limite de 3.000 caracteres.
A maioria dos nomes de variáveis em expressões de condição é representada em letras minúsculas com sublinhados entre cada palavra. Por exemplo,
example_variable
A exceção são os nomes de variáveis dos subcampos de
data
no objeto Recurso. Elas não têm separadores de palavras, e o primeiro caractere de cada palavra após o primeiro é maiúsculo. Por exemplo,exampleVariable
.Algumas validações em expressões de condição são realizadas durante a criação ou atualização do feed. No entanto, essas validações não são abrangentes, principalmente para condições definidas no campo
temporal_asset.asset.resource.data
, que tem um tipo dinâmico. Sempre que possível, filtre seu feed usando os parâmetros apropriados da CLI gcloud ou da API REST.As notificações não são enviadas se ocorrerem erros durante o tempo de avaliação, mas os erros são registrados.
Para tipos dinâmicos em
temporal_asset.asset.resource.data
, as condições especificadas em campos ausentes acionam erros de execução, e as notificações não são publicadas. Por exemplo, para a condiçãotemporal_asset.asset.resource.data.name != "my_name"
, se o camponame
estiver ausente em uma atualização, a avaliação falhará e você não receberá notificações. Se a condição funcionar apenas na presença de determinados campos, adicione uma verificação de existência à condição para garantir que ela seja avaliada corretamente.Os tipos de enumeração estáticos podem ser representados como nomes de caminho totalmente qualificados ou inteiros brutos. Por exemplo, as expressões a seguir são válidas para
prior_asset_state
:temporal_asset.prior_asset_state == google.cloud.asset.v1.TemporalAsset.PriorAssetState.DOES_NOT_EXIST
e
temporal_asset.prior_asset_state == 3
Os tipos de enumeração dinâmica em
temporal_asset.asset.resource.data
são representados como strings brutas. Por exemplo, a expressão a seguir é válida para o tipo de recursocloudresourcemanager.googleapis.com/Project
:temporal_asset.asset.resource.data.lifecycleState == "ACTIVE"
Criar uma expressão de condição com a CEL
Em uma condição de feed, a Common Expression Language (CEL) é usada para tomar decisões booleanas com base nos dados do atributo. Uma expressão condicional
consiste em uma ou mais instruções que são unidas usando operadores lógicos. Cada
instrução expressa uma regra de controle baseada em atributo que se aplica ao
TemporalAsset
para determinar se uma notificação é enviada.
Os seguintes recursos de CEL são os mais importantes para as condições do feed:
Variáveis: as condições usam variáveis para expressar um determinado atributo, como
temporal_asset.deleted
(Boolean
) outemporal_asset.asset.name
(String
). Essas variáveis são preenchidas com valores com base no contexto no ambiente de execução.Operadores: todos os tipos de dados, como
String
, são compatíveis com um conjunto de operadores que podem ser usados para criar uma expressão lógica. Geralmente, os operadores são usados para comparar o valor contido em uma variável com um valor literal, comotemporal_asset.asset.name == "//cloudresourcemanager.googleapis.com/projects/12345"
. Neste exemplo, se o valor de entrada detemporal_asset.asset.name
for//cloudresourcemanager.googleapis.com/projects/12345
, a expressão avalia comotrue
.Funções: uma função é um operador composto de tipos de dados compatíveis com operações mais complexas. Em expressões condicionais, existem funções predefinidas que podem ser usadas em conjunto com um determinado tipo de dados. Por exemplo,
temporal_asset.asset.name.contains("keyword")
usa uma função chamadacontains
para verificar se o valor detemporal_asset.asset.name
contém"keyword"
. Nesse caso, ele é avaliado comotrue
.Operadores lógicos: as condições são compatíveis com operadores lógicos que podem ser usados para criar expressões lógicas complexas a partir de instruções de expressões básicas:
&&
(AND) e||
(OR). Esses operadores lógicos possibilitam o uso de muitas variáveis de entrada em uma expressão condicional. Por exemplo:temporal_asset.deleted && temporal_asset.window.start_time.getFullYear() > 2020
une duas instruções básicas e exige que ambas sejam atendidas para produzir um resultado de avaliaçãotrue
.
Para mais informações sobre os recursos da CEL, consulte a definição de linguagem.
Como usar variáveis de condição
As variáveis de condição permitem que você crie condições em atributos diferentes. As variáveis de condição compatíveis são:
- temporal_asset: a mudança mais recente de recurso no
formato
TemporalAsset. Se a condição for avaliada como verdadeira, o
TemporalAsset
será enviado ao destino configurado.
Exemplo de expressões condicionais
A expressão de condição a seguir envia notificações sobre eventos de criação:
temporal_asset.deleted == false &&
temporal_asset.prior_asset_state == google.cloud.asset.v1.TemporalAsset.PriorAssetState.DOES_NOT_EXIST
A expressão de condição a seguir envia notificações para os recursos que estão
localizados nas pastas 12345
e 23456
:
"folders/12345" in temporal_asset.asset.ancestors ||
"folders/23456" in temporal_asset.asset.ancestors
A expressão de condição a seguir envia notificações quando novas regras permitidas
são adicionadas aos firewalls, supondo que o tipo de recurso já esteja definido como
compute.googleapis.com/Firewall
no feed:
size(temporal_asset.asset.resource.data.allowed) >
size(temporal_asset.prior_asset.resource.data.allowed)
A expressão de condição a seguir envia notificações para instâncias de VM com o
tipo de máquina n1-standard-1
, supondo que o tipo de recurso já esteja definido como
compute.googleapis.com/Instance
no feed:
temporal_asset.asset.resource.data.machineType.endsWith('/machineTypes/n1-standard-1')
A expressão de condição a seguir envia notificações para buckets de armazenamento com
qualquer política de IAM para allUsers
, supondo que o tipo de recurso esteja definido
como storage.googleapis.com/Bucket
e o tipo de conteúdo esteja definido como IAM_POLICY
no feed:
temporal_asset.asset.iam_policy.bindings.exists(b, b.members.exists(m, m == "allUsers"))
A expressão de condição a seguir envia uma notificação quando um bucket de armazenamento
com a chave test
no rótulo é excluído:
temporal_asset.deleted == true && temporal_asset.prior_asset_state == google.cloud.asset.v1.TemporalAsset.PriorAssetState.PRESENT && "test" in temporal_asset.prior_asset.resource.data.labels
Solução de problemas
Se você não estiver recebendo notificações de atualizações de recursos ou de políticas do IAM, siga as etapas abaixo para resolver o problema:
Verifique se os metadados foram alterados nos seus recursos. O feed em tempo real só envia atualizações quando os metadados dos tipos de recursos compatíveis são alterados. Operações como o upload de um novo arquivo para o bucket do Cloud Storage não acionam uma mudança nos metadados.
Verifique se os recursos correspondem a um dos nomes ou tipos de recursos especificados no feed.
Para exclusões de projetos, lembre-se de que, ao encerrar um projeto, você tem 30 dias para desfazer a operação. Por isso, o campo
deleted
nos metadados do recurso não é definido até que o projeto seja excluído permanentemente. Para monitorar projetos com exclusão pendente, defina uma condição no campolifecycleState
do projeto. Por exemplo:temporal_asset.asset.resource.data.lifecycleState == "DELETE_REQUESTED"
.Confira os registros para ver se há erros ao publicar atualizações no tópico.
Cloud Logging
Quando os feeds em tempo real não enviam recursos ou atualizações de política do IAM pelo Pub/Sub, o Inventário de recursos do Cloud registra o status de erro e a mensagem no Logging. O registro está ativado por padrão e pertence ao Google Cloud Observability. Saiba mais sobre os preços do Google Cloud Observability.
Como visualizar registros de feed em tempo real
O registro de feed em tempo real é indexado por um tópico do Pub/Sub. Para conferir todos os registros:
Acesse a página Explorador de registros no console do Google Cloud .
Clique na lista Recurso, que fica perto da caixa Pesquisar todos os campos.
Pesquise
Cloud Pub/Sub Topic
e clique no tipo de recurso Tópico do Cloud Pub/Sub.Clique no ID do tópico que você quer acessar.
Clique em Aplicar.
A codificação UTF-8 é aplicada aos campos de registro. Os caracteres que não forem UTF-8 serão substituídos por pontos de interrogação.
Informações registradas
As entradas de registro do feed em tempo real contêm os seguintes tipos de informações:
Informações gerais exibidas na maioria dos registros do Google Cloud , como gravidade, ID do projeto, número do projeto ou carimbo de data/hora.
Campos de registro de feed em tempo real em
jsonPayload
, que contêm nome de recurso, configuração de saída do feed e status de erro ao publicar atualizações de recursos ou políticas do IAM.
A tabela a seguir mostra quais tipos de informações cada campo contém.
Campo | Tipo e descrição |
---|---|
name |
Nome completo do feed. O formato é um dos seguintes:
|
asset_name |
Nome completo do recurso para receber atualizações. Exemplo:
Consulte Nomes de recursos para mais informações. |
condition |
Condição do feed que determina se uma atualização de recurso será publicada. |
error_status |
Status quando há falha na publicação de atualizações de recursos em um feed. |
feed_output_config |
Configuração de saída do feed que define onde as atualizações de recursos serão publicadas. |