Como chamar a API do Cloud Asset com uma máquina local

Esta página explica como chamar a API do Cloud Asset a partir da sua máquina local.

Antes de começar

  1. Instale o oauth2l na sua máquina local para acessar o sistema do Google OAuth.
  2. Confirme se você tem acesso ao comando curl do Unix.
  3. Verifique se a conta tem um dos papéis a seguir no projeto, pasta ou organização.
    • roles/owner
    • roles/cloudasset.viewer
  4. Configure um intervalo do Cloud Storage para armazenar o instantâneo exportado.

Como fazer o download do arquivo de credenciais

Um arquivo de credenciais JSON é necessário para chamar a API Cloud Asset. Faça o download do arquivo seguindo o processo abaixo.

  1. Acesse a página Credenciais.

  2. Abra o menu suspenso Criar credenciais e selecione o ID do cliente OAuth.

  3. Caso você esteja criando um ID do cliente para um novo projeto, será necessário definir uma tela de consentimento OAuth, que será exibida sempre que um aplicativo que use o ID do cliente solicitar acesso a dados particulares. Se solicitado:

    1. Clique em Configurar tela de consentimento e insira as informações necessárias para a tela de consentimento.

    2. Salve as alterações e continue criando o ID do cliente.

  4. Na página Criar ID do cliente em Tipo de aplicativo, selecione Outro.

  5. Digite um nome para a credencial e clique em Criar. Uma caixa de diálogo de confirmação será exibida com um ID e uma chave secreta do cliente.

  6. Feche a caixa de diálogo e clique no ícone de download à direita para salvar o novo arquivo JSON do ID de cliente.

  7. Nomeie e mova o arquivo JSON transferido por download para o caminho ~/credentials.json.

Como preparar o ambiente

Prepare seu ambiente para fazer chamadas para a API do Cloud Asset seguindo o processo abaixo.

  1. Verifique sua configuração inicial com o comando a seguir.

    oauth2l header --json ~/credentials.json cloud-platform
    

    O resultado será semelhante a este:

    Authorization: Bearer y29.xxxxxxx
    
  2. Defina um alias de shell para chamar APIs REST do Google com o comando a seguir.

    alias gcurl='curl -H "$(oauth2l header --json ~/credentials.json \
    cloud-platform)" -H "Content-Type: application/json" '
    

Como exportar um instantâneo de um recurso

Selecione um comando compatível com o nível de detalhe que você quer no instantâneo exportado. Os comandos a seguir armazenarão o instantâneo exportado em um intervalo do Cloud Storage em gs://YOUR_BUCKET/NEW_FILE.

Para exportar um instantâneo de recurso de uma organização, use o método REST https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_NUMBER:exportAssets nos comandos gcurl a seguir.

Para exportar um instantâneo de recurso de uma pasta, use o método REST https://cloudasset.googleapis.com/v1/folders/FOLDER_NUMBER:exportAssets.

Exportar todos os nomes de recursos sem metadados em um projeto

gcurl -d '{"outputConfig":{"gcsDestination": \
          {"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
           https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets

Exportar todos os metadados de recursos em um projeto

gcurl -d '{"contentType":"RESOURCE", "outputConfig":{"gcsDestination": \
          {"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
           https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets

Exportar políticas do Cloud IAM em um projeto

gcurl -d '{"contentType":"IAM_POLICY", "outputConfig":{\
           "gcsDestination": {"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
           https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets

Como visualizar um instantâneo de um recurso

Para ver os recursos exportados, acesse a página Navegador do Cloud Storage e abra o novo arquivo. A exportação lista recursos e os respectivos nomes.

Como verificar o status de uma exportação

A exportação de recursos é um processo demorado que, para a maioria dos projetos, pastas e organizações, leva segundos. Esse processo pode levar mais tempo para pastas e organizações muito grandes com muitos projetos e recursos. O número da operação de uma exportação é usado para verificar o status dessa solicitação.

Para verificar o status de uma exportação, faça o seguinte:

  1. Encontre o número da operação no campo name da resposta.

    "name": "projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_NUMBER"
    

  2. Digite o número da operação no comando a seguir.

    gcurl https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_NUMBER

Será retornada uma resposta semelhante a esta:

{
  "name": "projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_NUMBER",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.asset.v1.ExportAssetsRequest",
    "parent": "projects/PROJECT_NUMBER",
    "outputConfig": {
      "gcsDestination": {
        "uri": "gs://YOUR_BUCKET/NEW_FILE"
      }
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.asset.v1.ExportAssetsResponse",
    "readTime": [timestamp],
    "outputConfig": {
      "gcsDestination": {
        "uri": "gs://YOUR_BUCKET/NEW_FILE"
      }
    }
  }
}

Também é possível chamar ExportAssets para uma pasta ou organização inteira. Consulte a referência da API do Cloud Asset para mais informações.

Como encontrar o histórico de recursos

Para conseguir o histórico de criação, exclusão e atualização de recursos especificados em um projeto em um determinado período usando o método batchGetAssetsHistory, siga o processo abaixo.

Para conseguir o histórico de uma organização, use o método REST https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_NUMBER:batchGetAssetsHistory no comando gcurl.

  1. Verifique se é possível chamar a API do Cloud Asset preparando o ambiente.
  2. Determine o nome completo do recurso para buscar o histórico. O exemplo a seguir usa //compute.googleapis.com/projects/my_project_id/global/firewalls/default-firewall.
  3. Determine os horários de início e de término do seu período de tempo que esteja no formato RFC 3339 UTC. É necessária apenas a hora de início. Para mais informações, consulte TimeWindow.
  4. Selecione um comando compatível com o nível de detalhe que você quer na resposta:

Encontrar o histórico dos recursos especificados em um projeto, incluindo todos os metadados de recursos

gcurl -d '{"contentType":"RESOURCE", \
           "assetNames": \
             "//compute.googleapis.com/projects/my_project_id/global/firewalls/default-firewall", \
           "readTimeWindow": {"startTime": "2014-10-02T15:01:23.045123456Z"}}' \
      https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:batchGetAssetsHistory

Encontrar o histórico dos recursos especificados em um projeto, sem metadados de recursos

gcurl -d '{"assetNames": \
             "//compute.googleapis.com/projects/my_project_id/global/firewalls/default-firewall", \
           "readTimeWindow": {"startTime": "2014-10-02T15:01:23.045123456Z"}}' \
      https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:batchGetAssetsHistory

Encontrar o histórico de todas as políticas do Cloud IAM dos recursos especificados em um projeto

gcurl -d '{"contentType":"IAM_POLICY", \
           "assetNames": \
             "//compute.googleapis.com/projects/my_project_id/global/firewalls/default-firewall", \
           "readTimeWindow": {"startTime": "2014-10-02T15:01:23.045123456Z"}}' \
      https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:batchGetAssetsHistory

O histórico será retornado no seguinte formato:

{
  "assets": [
    {
      "window": {
        "startTime": 
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Resource Manager