Exportar metadados de recursos usando o Inventário de recursos do Cloud
Neste guia de início rápido, mostramos como exportar metadados de recursos em um momento específico usando
o Inventário de recursos do Cloud e os comandos gcloud asset
da Google Cloud CLI.
Antes de começar
Antes de começar a trabalhar com o Inventário de recursos do Cloud, ative a API Cloud Asset Inventory e a Google Cloud CLI e atribua permissões. A CLI do Google Cloud interage com o Inventário de recursos do Cloud e outros serviços do Google Cloud. Saiba mais sobre a CLI gcloud.
Como ativar a API Cloud Asset Inventory e a Google Cloud CLI
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the required API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the required API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Como configurar permissões
Para chamar a API Cloud Asset Inventory, primeiro é preciso configurar as permissões.
Como pesquisar recursos
Para pesquisar metadados de recursos, execute o comando a seguir.
gcloud asset search-all-resources \
--scope=SCOPE \
--query="QUERY" \
--asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
--order-by="ORDER_BY" \
--read-mask="READ_MASK"
Forneça os valores a seguir:
SCOPE
: opcional. Um escopo pode ser um projeto, uma pasta ou uma organização. A pesquisa é limitada aos recursos do Google Cloud nesse escopo. O autor da chamada precisa receber a permissãocloudasset.assets.searchAllResources
no escopo pretendido. Se não for especificada, a propriedade do projeto configurada será usada.Os valores permitidos são:
projects/PROJECT_ID
projects/PROJECT_NUMBER
Como encontrar um número de projeto do Google Cloud
Console
Para encontrar um número de projeto do Google Cloud, siga estas etapas:
-
Acesse a página Painel no console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Escolha a organização na caixa Selecionar de e pesquise o nome do projeto.
- Clique no nome do projeto para alternar para ele. O número do projeto é mostrado no card Informações do projeto.
CLI da gcloud
É possível recuperar um número de projeto do Google Cloud com o seguinte comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Como encontrar um ID de pasta do Google Cloud
Console
Para encontrar um ID da pasta do Google Cloud, siga estas etapas:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- Pesquise o nome da pasta. O ID é exibido ao lado do nome da pasta.
CLI da gcloud
Para recuperar um ID de pasta do Google Cloud localizado no nível da organização, use 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 pode ser uma correspondência de string completa ou parcial. Remova a opção
--format
para ver mais informações sobre as pastas encontradas.Para obter o ID de uma pasta dentro de outra pasta, liste as subpastas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Como encontrar um ID da organização do Google Cloud
Console
Para encontrar um ID da organização do Google Cloud, siga estas etapas:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- Selecione a guia Todos. O ID é exibido ao lado do nome da organização.
CLI da gcloud
É possível recuperar um ID da organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
QUERY
: opcional. A instrução de consulta. Consulte Sintaxe de consulta para ver mais informações. Se não for especificado ou estiver vazio, o Inventário de recursos do Cloud pesquisa todos os recursos noscope
especificado.Exemplos:
name:Important
para encontrar recursos do Google Cloud comImportant
como uma palavra no nome.name=Important
para encontrar o recurso do Google Cloud com o nome exatamenteImportant
.displayName:Impor*
para encontrar recursos do Google Cloud cujo nome de exibição contenhaImpor
como prefixo.location:us-west*
para encontrar recursos do Google Cloud com um local que contenhaus
ewest
como prefixos.labels:prod
para encontrar recursos do Google Cloud com rótulos que contenhamprod
como chave ou valor.labels.env:prod
para encontrar recursos do Google Cloud que têm um rótuloenv
e o valor é "prod".labels.env:*
para encontrar recursos do Google Cloud que tenham um rótuloenv
.kmsKeys:key
para encontrar recursos do Google Cloud criptografados com chaves de criptografia gerenciadas pelo cliente, cujo nome contémkey
como uma palavra.sccSecurityMarks.key=value
para encontrar recursos do Google Cloud anexados com um par de marcações de segurança com chavekey
e valorvalue
.sccSecurityMarks.key:*
para encontrar recursos do Google Cloud anexados a um par de marcas de segurança cuja chave ékey
.state:ACTIVE
para encontrar recursos do Google Cloud cujo estado contenhaACTIVE
como uma palavra.NOT state:ACTIVE
para encontrar recursos do Google Cloud cujo estado não contenhaACTIVE
como uma palavra.createTime<1609459200
oucreateTime<2021-01-01
oucreateTime<"2021-01-01T00:00:00"
para encontrar recursos do Google Cloud que foram criados antes de 01/01-2021 00:00:00 UTC. 1609459200 é o carimbo de data/hora de 2021-01-01 00:00:00 UTC em segundos.updateTime>1609459200
ouupdateTime>2021-01-01
ouupdateTime>"2021-01-01T00:00:00"
para encontrar recursos do Google Cloud que foram atualizados após 01/01-2021 00:00:00 UTC. 1609459200 é o carimbo de data/hora de 2021-01-01 00:00:00 UTC em segundos.project:12345
para encontrar recursos do Google Cloud que pertencem a um projeto do Google Cloud com o número 12345. O ID do projeto não é compatível.folders:(123 or 456)
para encontrar recursos do Google Cloud descendentes da pasta do Google Cloud com números 123 ou 456.organization:123
para encontrar recursos do Google Cloud descendentes da organização do Google Cloud com o número 123.parentFullResourceName:ImportantName
para encontrar recursos do Google Cloud comImportantName
no nome do pai.parentAssetType:Project
para encontrar recursos do Google Cloud cujo tipo de recurso pai contenhaProject
.Important
para encontrar recursos do Google Cloud que contenhamImportant
como uma palavra em qualquer um dos campos pesquisáveis.Impor*
para encontrar recursos do Google Cloud que contêmImpor
como prefixo em qualquer um dos campos pesquisáveis.Important location:(us-west1 OR global)
para encontrar recursos do Google Cloud que contenham "importante" como uma palavra em qualquer um dos campos pesquisáveis e que também estejam localizados na regiãous-west1
ou no localglobal
.
ASSET_TYPE
: opcional. Uma lista separada por vírgulas de tipos de recursos pesquisáveis. Há suporte para expressões regulares compatíveis com RE2 (em inglês). Se a expressão regular não corresponder a nenhum tipo de recurso compatível, o erroINVALID_ARGUMENT
será retornado.ORDER_BY
: opcional. Uma lista de campos separados por vírgulas que especifica a ordem de classificação dos resultados. A ordem padrão é crescente. Adicione" DESC"
após o nome do campo para indicar a ordem decrescente. Caracteres de espaço redundantes são ignorados. Exemplo:"location DESC, name"
. Somente campos primitivos individuais na resposta são classificáveis:name
assetType
project
displayName
description
location
createTime
updateTime
state
parentFullResourceName
parentAssetType
Todos os outros campos, como campos repetidos (por exemplo,
networkTags
ekmsKeys
), campos de mapa (por exemplo,labels
) e campos de struct (por exemplo,additionalAttributes
), não são aceitos.READ_MASK
: opcional. Uma lista de campos separados por vírgulas que especifica quais deles devem ser retornados nos resultados. Se não for especificado, todos os campos, excetoversionedResources
, serão retornados. Se apenas"*"
for especificado, todos os campos serão retornados. Exemplos:"name,location"
,"name,versionedResources"
,"*"
.
Para saber mais sobre como pesquisar recursos, consulte Como pesquisar recursos.
Como pesquisar políticas do IAM
Para pesquisar as políticas do Identity and Access Management (IAM), execute o comando a seguir.
gcloud asset search-all-iam-policies \
--scope=SCOPE \
--query="QUERY" \
--asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
--order-by="ORDER_BY"
Forneça os valores a seguir:
SCOPE
: opcional. Um escopo pode ser um projeto, uma pasta ou uma organização. A pesquisa é limitada aos recursos do IAM neste escopo. O autor da chamada precisa receber a permissãocloudasset.assets.searchAllIamPolicies
no escopo pretendido. Se não for especificada, a propriedade do projeto configurada será usada.Os valores permitidos são:
projects/PROJECT_ID
projects/PROJECT_NUMBER
Como encontrar um número de projeto do Google Cloud
Console
Para encontrar um número de projeto do Google Cloud, siga estas etapas:
-
Acesse a página Painel no console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Escolha a organização na caixa Selecionar de e pesquise o nome do projeto.
- Clique no nome do projeto para alternar para ele. O número do projeto é mostrado no card Informações do projeto.
CLI da gcloud
É possível recuperar um número de projeto do Google Cloud com o seguinte comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Como encontrar um ID de pasta do Google Cloud
Console
Para encontrar um ID da pasta do Google Cloud, siga estas etapas:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- Pesquise o nome da pasta. O ID é exibido ao lado do nome da pasta.
CLI da gcloud
Para recuperar um ID de pasta do Google Cloud localizado no nível da organização, use 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 pode ser uma correspondência de string completa ou parcial. Remova a opção
--format
para ver mais informações sobre as pastas encontradas.Para obter o ID de uma pasta dentro de outra pasta, liste as subpastas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Como encontrar um ID da organização do Google Cloud
Console
Para encontrar um ID da organização do Google Cloud, siga estas etapas:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- Selecione a guia Todos. O ID é exibido ao lado do nome da organização.
CLI da gcloud
É possível recuperar um ID da organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
QUERY
: opcional. A instrução de consulta. Consulte Sintaxe de consulta para ver mais informações. Se não for especificado ou estiver vazio, o Inventário de recursos do Cloud pesquisa todas as políticas do IAM noscope
especificado. A string de consulta é comparada com cada vinculação de política do IAM, incluindo principais, papéis e condições do IAM. As políticas de IAM retornadas contêm apenas as vinculações que correspondem à sua consulta. Para saber mais sobre a estrutura das políticas do IAM, consulte Estrutura da política.Exemplos:
policy:amy@gmail.com
para encontrar vinculações de políticas do IAM que especificam o usuárioamy@gmail.com
.policy:roles/compute.admin
para encontrar vinculações de políticas do IAM que especificam o papel de administrador do Compute.policy:comp*
para encontrar vinculações de políticas do IAM que contenhamcomp
como um prefixo de qualquer palavra na vinculação.policy.role.permissions:storage.buckets.update
para encontrar vinculações de política do IAM que especifiquem um papel contendo a permissãostorage.buckets.update
. Se os autores da chamada não tiverem acessoiam.roles.get
às permissões incluídas em um papel, as vinculações de política que especificarem esse papel serão descartadas dos resultados da pesquisa.policy.role.permissions:upd*
para encontrar vinculações de política do IAM que especifiquem um papel contendoupd
como prefixo de qualquer palavra na permissão do papel. Se os autores da chamada não tiverem acessoiam.roles.get
às permissões incluídas em um papel, as vinculações de política que especificam esse papel serão descartadas dos resultados da pesquisa.resource:organizations/123456
para encontrar vinculações de política do IAM definidas em "organizations/123456".resource=//cloudresourcemanager.googleapis.com/projects/myproject
para encontrar vinculações de política do IAM que são definidas no projeto chamadomyproject
.Important
para encontrar vinculações de política do IAM que contenhamImportant
como uma palavra em qualquer um dos campos pesquisáveis (exceto pelas permissões incluídas).resource:(instance1 OR instance2) policy:amy
para encontrar vinculações de políticas do IAM que são definidas nos recursosinstance1
ouinstance2
e também especificaramy
de usuário.roles:roles/compute.admin
para encontrar vinculações de políticas do IAM que especificam o papel de administrador do Compute.memberTypes:user
para encontrar vinculações de política do IAM que contenham o tipo principaluser
.
ASSET_TYPE
: opcional. Uma lista separada por vírgulas de tipos de recursos pesquisáveis a que as políticas do IAM estão anexadas. Se estiver vazio, o Inventário de recursos do Cloud vai pesquisar as políticas do IAM anexadas a todos os tipos de recursos pesquisáveis. As expressões regulares são compatíveis. Se a expressão regular não corresponder a nenhum tipo de recurso compatível, o erroINVALID_ARGUMENT
será retornado.ORDER_BY
: opcional. Uma lista de campos separados por vírgulas que especifica a ordem de classificação dos resultados. A ordem padrão é crescente. Adicione" DESC"
após o nome do campo para indicar a ordem decrescente. Caracteres de espaço redundantes são ignorados. Exemplo:"location DESC, name"
. Somente campos primitivos individuais na resposta são classificáveis:resource
assetType
project
Todos os outros campos, como campos repetidos (por exemplo,
folders
) e campos não primitivos (por exemplo,policy
), não são aceitos.
Para saber mais sobre como pesquisar políticas do IAM, consulte Como pesquisar políticas do IAM.
Como exportar um snapshot de recurso para o Cloud Storage
Para exportar todos os metadados do recurso em um determinado carimbo de data/hora para um arquivo em um bucket do Cloud Storage, conclua as etapas a seguir.
Crie um novo bucket se ainda não tiver um.
Para exportar metadados do recurso no projeto, execute o comando a seguir. Esse comando armazena o snapshot exportado em um arquivo em
gs://BUCKET_NAME/FILENAME
.Projetos
gcloud asset export \ --project=PROJECT_ID \ --billing-project=BILLING_PROJECT_ID \ --content-type=CONTENT_TYPE \ --snapshot-time="SNAPSHOT_TIME" \ --output-path="gs://BUCKET_NAME/FILENAME"
Forneça os valores a seguir:
PROJECT_ID
: o ID do projeto com os metadados que você quer exportar.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ão para gravar no bucket do Cloud Storage. Não é necessário se você já mudou para o projeto de faturamento comgcloud config set project
. Leia mais sobre projetos de faturamento.CONTENT_TYPE
: opcional. O tipo de conteúdo do recurso a ser exportado. Se nenhum tipo de conteúdo for especificado, somente o nome do recurso será retornado. Leia mais sobre os tipos de conteúdo.SNAPSHOT_TIME
: opcional. O horário em que você quer tirar um snapshot dos seus recursos. O valor precisa ser o horário atual ou um horário não superior a 35 dias no passado. Quando não é fornecido, um snapshot é capturado no momento atual. Para mais informações sobre formatos de hora, consulte gcloud topic datetimes.BUCKET_NAME
: o nome do bucket do Cloud Storage em que a gravação será feita.FILENAME
: o arquivo no bucket do Cloud Storage para gravar.
Pastas
gcloud asset export \ --folder=FOLDER_ID \ --billing-project=BILLING_PROJECT_ID \ --content-type=CONTENT_TYPE \ --snapshot-time="SNAPSHOT_TIME" \ --output-path="gs://BUCKET_NAME/FILENAME"
Forneça os valores a seguir:
FOLDER_ID
: o ID da pasta com os metadados que você quer exportar.Como encontrar um ID de pasta do Google Cloud
Console
Para encontrar um ID da pasta do Google Cloud, siga estas etapas:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- Pesquise o nome da pasta. O ID é exibido ao lado do nome da pasta.
CLI da gcloud
Para recuperar um ID de pasta do Google Cloud localizado no nível da organização, use 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 pode ser uma correspondência de string completa ou parcial. Remova a opção
--format
para ver mais informações sobre as pastas encontradas.Para obter o ID de uma pasta dentro de outra pasta, liste as subpastas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
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ão para gravar no bucket do Cloud Storage. Não é necessário se você já mudou para o projeto de faturamento comgcloud config set project
. Leia mais sobre projetos de faturamento.CONTENT_TYPE
: opcional. O tipo de conteúdo do recurso a ser exportado. Se nenhum tipo de conteúdo for especificado, somente o nome do recurso será retornado. Leia mais sobre os tipos de conteúdo.SNAPSHOT_TIME
: opcional. O horário em que você quer tirar um snapshot dos seus recursos. O valor precisa ser o horário atual ou um horário não superior a 35 dias no passado. Quando não é fornecido, um snapshot é capturado no momento atual. Para mais informações sobre formatos de hora, consulte gcloud topic datetimes.BUCKET_NAME
: o nome do bucket do Cloud Storage em que a gravação será feita.FILENAME
: o arquivo no bucket do Cloud Storage para gravar.
Organizações
gcloud asset export \ --organization=ORGANIZATION_ID \ --billing-project=BILLING_PROJECT_ID \ --content-type=CONTENT_TYPE \ --snapshot-time="SNAPSHOT_TIME" \ --output-path="gs://BUCKET_NAME/FILENAME"
Forneça os valores a seguir:
ORGANIZATION_ID
: o ID da organização com os metadados que você quer exportar.Como encontrar um ID da organização do Google Cloud
Console
Para encontrar um ID da organização do Google Cloud, siga estas etapas:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- Selecione a guia Todos. O ID é exibido ao lado do nome da organização.
CLI da gcloud
É possível recuperar um ID da organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
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ão para gravar no bucket do Cloud Storage. Não é necessário se você já mudou para o projeto de faturamento comgcloud config set project
. Leia mais sobre projetos de faturamento.CONTENT_TYPE
: opcional. O tipo de conteúdo do recurso a ser exportado. Se nenhum tipo de conteúdo for especificado, somente o nome do recurso será retornado. Leia mais sobre os tipos de conteúdo.SNAPSHOT_TIME
: opcional. O horário em que você quer tirar um snapshot dos seus recursos. O valor precisa ser o horário atual ou um horário não superior a 35 dias no passado. Quando não é fornecido, um snapshot é capturado no momento atual. Para mais informações sobre formatos de hora, consulte gcloud topic datetimes.BUCKET_NAME
: o nome do bucket do Cloud Storage em que a gravação será feita.FILENAME
: o arquivo no bucket do Cloud Storage para gravar.
Opcional: para verificar o status da exportação, execute o comando a seguir. Ele é exibido na CLI gcloud depois de executar o comando de exportação.
gcloud asset operations describe OPERATION_PATH
Como visualizar o snapshot do recurso
Para visualizar o snapshot do recurso depois de exportá-lo para o Cloud Storage, siga as etapas a seguir.
Acesse a página Buckets do Cloud Storage no console do Google Cloud.
Abra o arquivo para o qual você exportou seus metadados.
O arquivo de exportação lista os recursos e os respectivos nomes.
A seguir
Saiba mais sobre o Inventário de recursos do Cloud.
Saiba como conseguir o histórico de recursos.