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 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 Google Cloud CLI 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.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Ative a API necessária.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Ative a API necessária.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
Como configurar permissões
Para chamar a API Cloud Asset Inventory, primeiro é preciso configurar 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 neste 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
Recupere 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 de 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 da pasta é exibido ao lado do nome dela.
CLI da gcloud
Recupere um ID de pasta do Google Cloud localizado 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 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 saber o ID de uma pasta dentro de outra, 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
Recupere 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 pesquisará todos os recursos noscope
especificado.Exemplos:
name:Important
para encontrar recursos do Google Cloud cujo nome contenhaImportant
como uma palavra.name=Important
para encontrar o recurso do Google Cloud com o nome exatamenteImportant
.displayName:Impor*
para encontrar recursos do Google Cloud com um nome de exibição que 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 tenham 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 a um par de marcas 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 com um estado que 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 época de 01/01/2021 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 época de 01/01/2021 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 também estão 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 as expressões regulares compatíveis com RE2. Se a expressão regular não corresponder a nenhum tipo de recurso compatível, um 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 estrutura (por exemplo,additionalAttributes
), não são aceitos.READ_MASK
: opcional. Uma lista de campos separados por vírgulas que especifica quais precisam ser retornados nos resultados. Se não for especificado, todos os campos serão retornados, excetoversionedResources
. 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 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 nesse 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
Recupere 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 de 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 da pasta é exibido ao lado do nome dela.
CLI da gcloud
Recupere um ID de pasta do Google Cloud localizado 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 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 saber o ID de uma pasta dentro de outra, 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
Recupere 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 pesquisará 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 do IAM retornadas contêm apenas as vinculações que correspondem à sua consulta. Para saber mais sobre a estrutura da política do IAM, consulte Estrutura da política.Exemplos:
policy:amy@gmail.com
para encontrar vinculações de política do IAM que especificam o usuárioamy@gmail.com
.policy:roles/compute.admin
para encontrar vinculações de política do IAM que especificam o papel de administrador do Compute.policy:comp*
para encontrar vinculações de política do IAM que contêmcomp
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 especificam um papel contendo a permissãostorage.buckets.update
. Se os autores de 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.policy.role.permissions:upd*
para encontrar vinculações de política do IAM que especificam um papel contendoupd
como um prefixo de qualquer palavra na permissão do papel. Se os autores das chamadas 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íticas do IAM definidas no projeto chamadomyproject
.Important
para encontrar vinculações de política do IAM que contêmImportant
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ítica do IAM que são definidas nos recursosinstance1
ouinstance2
e também especificaramy
do usuário.roles:roles/compute.admin
para encontrar vinculações de política 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 aceito, será retornado um erroINVALID_ARGUMENT
.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 compatíveis.
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, caso ainda não tenha um.
Para exportar metadados de recursos no seu 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 está e que 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 vai ser retornado. Leia mais sobre os tipos de conteúdo.SNAPSHOT_TIME
: opcional. A hora em que você quer tirar um snapshot de seus recursos. O valor precisa ser a hora atual ou um horário não superior a 35 dias no passado. Quando não for fornecido, um snapshot será capturado no momento atual. Para mais informações sobre formatos de tempo, 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 de 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 da pasta é exibido ao lado do nome dela.
CLI da gcloud
Recupere um ID de pasta do Google Cloud localizado 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 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 saber o ID de uma pasta dentro de outra, 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 está e que 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 vai ser retornado. Leia mais sobre os tipos de conteúdo.SNAPSHOT_TIME
: opcional. A hora em que você quer tirar um snapshot de seus recursos. O valor precisa ser a hora atual ou um horário não superior a 35 dias no passado. Quando não for fornecido, um snapshot será capturado no momento atual. Para mais informações sobre formatos de tempo, 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
Recupere 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 está e que 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 vai ser retornado. Leia mais sobre os tipos de conteúdo.SNAPSHOT_TIME
: opcional. A hora em que você quer tirar um snapshot de seus recursos. O valor precisa ser a hora atual ou um horário não superior a 35 dias no passado. Quando não for fornecido, um snapshot será capturado no momento atual. Para mais informações sobre formatos de tempo, 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 da execução do 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, conclua 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 nomes deles.
A seguir
Saiba mais sobre o Inventário de recursos do Cloud.
Saiba como conseguir o histórico de recursos.