Este documento mostra como exportar os metadados do recurso do seu projeto para um bucket do Cloud Storage.
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 bucket do Cloud Storage para exportar, se ainda não tiver um.
Limitações
Os buckets do Cloud Storage criptografados com chaves personalizadas do Cloud Key Management Service (Cloud KMS) não são aceitos.
O bucket do Cloud Storage não pode ter uma política de retenção definida.
Durante a exportação, a operação pode criar arquivos temporários na pasta de saída. Não remova esses arquivos enquanto a operação estiver em andamento. Quando a operação for concluída, os arquivos temporários serão removidos automaticamente.
O tipo de conteúdo
ACCESS_POLICY
só pode ser exportado no nível da organização.Se o arquivo para onde você está exportando já existir e estiver em processo de exportação, um erro
400
será retornado.Para testar as permissões, o Inventário de recursos do Cloud cria um arquivo vazio antes de exportar os dados, o que envia um evento de gatilho extra do Cloud Storage de
google.cloud.storage.object.v1.finalized
.
Exportar um snapshot de recurso para o Cloud Storage
gcloud
gcloud asset export \ --SCOPE \ --billing-project=BILLING_PROJECT_ID \ --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \ --content-type=CONTENT_TYPE \ --relationship-types=RELATIONSHIP_TYPE_1,RELATIONSHIP_TYPE_2,... \ --snapshot-time="SNAPSHOT_TIME" \ --OUTPUT_TYPE
Forneça os valores a seguir:
-
SCOPE
: use um dos seguintes valores:-
project=PROJECT_ID
, em quePROJECT_ID
é o ID do projeto que tem os metadados do recurso que você quer exportar. -
folder=FOLDER_ID
, em queFOLDER_ID
é o ID da pasta que tem os metadados do recurso que você quer exportar.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 que tem os metadados do recurso que você quer exportar.Como encontrar o ID de uma organizaçãodo 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
: 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ões para gerenciar seus conjuntos de dados e tabelas do BigQuery. Saiba mais sobre como configurar o projeto de faturamento. 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 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 com os tipos de relacionamento de recursos que você quer recuperar. DefinaCONTENT_TYPE
comoRELATIONSHIP
para que isso funcione. -
SNAPSHOT_TIME
: opcional. O horário em que você quer tirar um snapshot dos seus recursos, no formato de data e hora do tópico do gcloud. O valor não pode ser de mais de 35 dias. Quando--snapshot-time
não é especificado, um snapshot é capturado no horário atual. -
OUTPUT_TYPE
: use um dos seguintes valores:--output-path="gs://BUCKET_NAME/FILE_NAME"
para gravar a saída em um arquivo, em que:-
BUCKET_NAME
é o nome do bucket do Cloud Storage em que as gravações serão feitas. -
FILE_NAME
é o arquivo a ser gravado no bucket do Cloud Storage.
-
-
--output-path-prefix="gs://BUCKET_NAME/FOLDER_NAME"
para gravar a saída em uma pasta, em que:-
BUCKET_NAME
é o nome do bucket do Cloud Storage em que a gravação será feita. -
FOLDER_NAME
é a pasta em que você vai gravar no bucket do Cloud Storage. A saída é dividida em subpastas nomeadas de acordo com os tipos de recursos. As subpastas não podem existir na pasta especificada.
-
Consulte a referência da CLI do gcloud para conferir todas as opções.
Exemplo
Execute o comando a seguir para exportar os metadados resource
como estavam em 30 de janeiro de 2024 no projeto my-project
para o arquivo my-file.txt
no bucket my-bucket
do Cloud Storage.
gcloud asset export \ --project=my-project \ --billing-project=my-project \ --content-type=resource \ --snapshot-time="2024-01-30" \ --output-path="gs://my-bucket/my-file.txt"
Exemplo de resposta
Export in progress for root asset [projects/my-project]. Use [gcloud asset operations describe projects/000000000000/operations/ExportAssets/RESOURCE/00000000000000000000000000000000] to check the status of the operation.
REST
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:exportAssets
Cabeçalhos:
X-Goog-User-Project: BILLING_PROJECT_ID
Solicitar corpo JSON:
{ "assetTypes": [ "ASSET_TYPE_1", "ASSET_TYPE_2", "..." ], "contentType": "CONTENT_TYPE", "relationshipTypes": [ "RELATIONSHIP_TYPE_1", "RELATIONSHIP_TYPE_2", "..." ], "readTime": "SNAPSHOT_TIME", "outputConfig": { "gcsDestination": { OUTPUT_TYPE } } }
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 que tem os metadados do recurso que você quer exportar. -
projects/PROJECT_NUMBER
, em quePROJECT_NUMBER
é o número do projeto que tem os metadados do recurso que você quer exportar.Como encontrar um número de projeto da nuvem soberana da T-Systems do
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 que tem os metadados do recurso que você quer exportar.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 que tem os metadados do recurso que você quer exportar.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. 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 recurso 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. -
SNAPSHOT_TIME
: opcional. O horário em que você quer tirar um snapshot dos seus recursos, no formato RFC 3339. O valor não pode ser de mais de 35 dias. QuandoreadTime
não é especificado, um snapshot é capturado no horário atual. -
OUTPUT_TYPE
: use um dos seguintes valores:"uri": "gs://BUCKET_NAME/FILE_NAME"
para gravar a saída em um arquivo, em que:-
BUCKET_NAME
é o nome do bucket do Cloud Storage em que as gravações serão feitas. -
FILE_NAME
é o arquivo a ser gravado no bucket do Cloud Storage.
-
-
"uriPrefix": "gs://BUCKET_NAME/FOLDER_NAME"
para gravar a saída em uma pasta, em que:-
BUCKET_NAME
é o nome do bucket do Cloud Storage em que a gravação será feita. -
FOLDER_NAME
é a pasta em que você vai gravar no bucket do Cloud Storage. A saída é dividida em subpastas nomeadas com base nos tipos de recursos. As subpastas não podem existir na pasta especificada.
-
Consulte a referência REST para conferir todas as opções.
Exemplos de comando
Execute um dos comandos a seguir para exportar os metadados resource
como estavam em
30 de janeiro de 2024 no projeto my-project
para o arquivo my-file.txt
no
bucket my-bucket
do Cloud Storage.
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 '{ "contentType": "RESOURCE", "readTime": "2024-01-30T00:00:00Z", "outputConfig": { "gcsDestination": { "uri": "gs://my-bucket/my-file" } } }' \ https://cloudasset.googleapis.com/v1/projects/my-project:exportAssets
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-Goog-User-Project" = "BILLING_PROJECT_ID"; "Authorization" = "Bearer $cred" } $body = @" { "contentType": "RESOURCE", "readTime": "2024-01-30T00:00:00Z", "outputConfig": { "gcsDestination": { "uri": "gs://my-bucket/my-file" } } } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:exportAssets" | Select-Object -Expand Content
Exemplo de resposta
{ "name": "projects/000000000000/operations/ExportAssets/RESOURCE/00000000000000000000000000000000", "metadata": { "@type": "type.googleapis.com/google.cloud.asset.v1.ExportAssetsRequest", "parent": "projects/000000000000", "readTime": "2024-01-30T00:00:00Z", "contentType": "RESOURCE", "outputConfig": { "gcsDestination": { "uri": "gs://my-bucket/export.txt" } } } }
C#
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.
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.
PHP
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.
Verificar o status de uma exportação
As exportações levam tempo para serem concluídas. Para verificar se uma exportação foi concluída, consulte a operação usando o ID dela.
Mesmo que a exportação seja concluída, alguém pode ter feito outra solicitação de exportação para o mesmo destino em uma operação diferente. Novas solicitações de exportação para o mesmo destino podem ser feitas depois que uma solicitação anterior for concluída ou se mais de 15 minutos tiverem se passado. As solicitações de exportação feitas fora dessas condições são rejeitadas pelo Inventário de recursos do Cloud.
gcloud
Para conferir o status da exportação, siga estas instruções:
Receba o
OPERATION_PATH
, que inclui o ID da operação, da resposta à solicitação de exportação. OOPERATION_PATH
é mostrado na resposta à exportação, que tem a seguinte formatação:projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID
Para verificar o status da exportação, execute o seguinte comando com
OPERATION_PATH
:gcloud asset operations describe OPERATION_PATH
REST
Para conferir o status da exportação, siga estas instruções:
Receba o
OPERATION_PATH
, que inclui o ID da operação, da resposta à solicitação de exportação. OOPERATION_PATH
é mostrado como o valor do camponame
na resposta à exportação, que tem a seguinte formatação:projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID
Para verificar o status da exportação, faça a seguinte solicitação.
REST
Método HTTP e URL:
GET https://cloudasset.googleapis.com/v1/OPERATION_PATH
Exemplos de comando
curl (Linux, macOS ou Cloud Shell)
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://cloudasset.googleapis.com/v1/OPERATION_PATH
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://cloudasset.googleapis.com/v1/OPERATION_PATH" | Select-Object -Expand Content
Exemplo de resposta
{ "name": "projects/000000000000/operations/ExportAssets/RESOURCE/00000000000000000000000000000000", "metadata": { "@type": "type.googleapis.com/google.cloud.asset.v1.ExportAssetsRequest", "parent": "projects/000000000000", "readTime": "2024-01-30T00:00:00Z", "contentType": "RESOURCE", "outputConfig": { "gcsDestination": { "uri": "gs://my-bucket/export.txt" } } } }
Acessar um snapshot de um recurso
Para visualizar o snapshot do recurso:
Acesse a página Buckets do Cloud Storage no console do Google Cloud .
Clique no nome do bucket para onde você exportou o snapshot do recurso e, em seguida, clique no nome do arquivo de exportação.
Clique em Fazer o download para fazer o download do snapshot do recurso e abra-o no editor de texto de sua preferência.