Primeiros passos com o Inventário de recursos do Cloud

Neste guia de início rápido, mostramos como exportar metadados de recursos em um determinado momento usando o Inventário de recursos do Cloud e os comandos gcloud asset do SDK do Cloud.

Antes de começar

Antes de começar a trabalhar com o Inventário de recursos do Cloud, é preciso ativar a API Inventário de recursos do Cloud, o SDK do Cloud e atribuir permissões. O SDK do Cloud fornece a ferramenta de linha de comando gcloud para interagir com o Inventário de recursos do Cloud e outros serviços do Google Cloud. Saiba mais sobre a ferramenta gcloud.

Como ativar a API Cloud Asset Inventory e o SDK do Cloud

  1. Faça login na sua conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. No Console do Cloud, na página do seletor de projetos, selecione ou crie um projeto do Cloud.

    Acessar a página do seletor de projetos

  3. Ative a API necessária.

    Ative a API

  4. Instale e inicialize o SDK do Cloud..

Como configurar permissões

Para chamar a API Cloud Asset Inventory, primeiro você precisa configurar as permissões.

Como pesquisar recursos

  1. Para pesquisar metadados de recursos, execute o comando gcloud asset search-all-resources a seguir.

     gcloud asset search-all-resources \
        --scope SCOPE \
        --query QUERY \
        --asset-types ASSET_TYPES,… \
        --order-by ORDER_BY
    

    Em que todas as sinalizações a seguir são opcionais:

    • (Opcional) SCOPE: um escopo pode ser um projeto, uma pasta ou uma organização. A pesquisa é limitada aos recursos do Cloud dentro desse escopo. O autor da chamada precisa receber a permissão cloudasset.assets.searchAllResources no escopo pretendido. Se não for especificada, a propriedade do projeto configurada será usada. Para encontrar o projeto configurado, execute: gcloud config get-value project. Para alterar a configuração, execute: gcloud config set project PROJECT_ID.

      Os valores permitidos são:

      • projects/PROJECT_ID (ex., "projects/foo-bar")
      • projects/PROJECT_NUMBER (ex., "projects/12345678")
      • folders/FOLDER_NUMBER (ex., "folders/1234567")
      • organizations/ORGANIZATION_NUMBER (ex., "organizations/123456")
    • (Opcional) QUERY: a instrução de consulta. Veja como criar uma consulta para mais informações. Se não for especificado ou estiver vazio, ele pesquisará todos os recursos na scope especificada.

      Exemplos:

      • name:Important para encontrar recursos do Cloud em que o nome contém "Important" como uma palavra.
      • displayName:Impor* para encontrar recursos do Cloud em que o nome de exibição contém "Impor" como prefixo.
      • description:*por* para encontrar recursos do Cloud em que a descrição contém "por" como uma substring;
      • location:us-west* para encontrar recursos do Cloud em que o local seja prefixado com "us-west".
      • labels:prod para encontrar recursos do Cloud em que os rótulos contêm "prod" como chave ou valor.
      • labels.env:prod para encontrar recursos do Cloud que tenham um rótulo "env" e o valor dele seja "prod".
      • labels.env:* para encontrar recursos do Cloud que tenham o rótulo "env".
      • Important para encontrar recursos do Cloud que contenham "Importante" como uma palavra em qualquer um dos campos pesquisáveis.
      • Impor* para encontrar recursos do Cloud que contêm "Impor" como prefixo em qualquer um dos campos pesquisáveis.
      • *por* para encontrar recursos do Cloud que contenham "por" como uma substring em qualquer um dos campos pesquisáveis.
      • Important location:(us-west1 OR global) para encontrar recursos do Cloud que contenham "Important" como uma palavra em qualquer um dos campos pesquisáveis e também estão localizados na região "us-west1" ou no local "global".
    • (Opcional) ASSET_TYPES: uma lista de tipos de recurso para pesquisar. Se não for especificado ou estiver vazio, ele pesquisará todos os tipos de recursos pesquisáveis. Exemplo: "cloudresourcemanager.googleapis.com/Project,compute.googleapis.com/Instance" para pesquisar recursos de projeto e de instância de VM.

    • (Opcional) ORDER_BY: uma lista de campos separada por vírgulas que especifica a ordem de classificação dos resultados. A ordem padrão é crescente. Adicione " DESC" depois do nome do campo para indicar a ordem decrescente. Caracteres de espaço redundantes são ignorados. Exemplo: "location DESC, name". Somente os campos de string na resposta são classificáveis, incluindo name, displayName, description e location.

    Para saber mais sobre como pesquisar recursos, consulte Como pesquisar recursos.

  2. Para pesquisar as políticas do IAM, execute o seguinte comando do gcloud asset search-all-iam-policies.

     gcloud asset search-all-iam-policies \
        --scope SCOPE \
        --query QUERY \
    

    Em que:

    • (Opcional) SCOPE: um escopo pode ser um projeto, uma pasta ou uma organização. A pesquisa é limitada às políticas do IAM nesse escopo. O autor da chamada precisa receber a permissão cloudasset.assets.searchAllIamPolicies no escopo pretendido. Se não for especificada, a propriedade do projeto configurada será usada. Para encontrar o projeto configurado, execute: gcloud config get-value project. Para alterar a configuração, execute: gcloud config set project PROJECT_ID.

      Os valores permitidos são:

      • projects/PROJECT_ID (ex., "projects/foo-bar")
      • projects/PROJECT_NUMBER (ex., "projects/12345678")
      • folders/FOLDER_NUMBER (ex., "folders/1234567")
      • organizations/ORGANIZATION_NUMBER (ex., "organizations/123456")
    • (Opcional) QUERY: a instrução de consulta. Veja como criar uma consulta para mais informações. Se não for especificado ou estiver vazio, ele pesquisará todas as políticas de IAM no scope especificado. A string de consulta é comparada a cada vinculação de política do Cloud IAM, incluindo os membros, os papéis e as condições do Cloud IAM. As políticas do Cloud IAM retornadas conterão apenas as vinculações que correspondem à sua consulta. Para saber mais sobre a estrutura da política do IAM, consulte o documento de política do IAM.

      Exemplos:

      • policy:amy@gmail.com para encontrar vinculações de políticas do IAM que especifiquem o usuário "amy@gmail.com".
      • policy:roles/compute.admin para encontrar vinculações de políticas do IAM que especifiquem o papel de Administrador do Compute.
      • policy.role.permissions:storage.buckets.update para encontrar vinculações de políticas do Cloud IAM que especifiquem um papel que contenha a permissão "storage.buckets.update". Se os autores da chamada não tiverem acesso iam.roles.get às permissões incluídas em um papel, as vinculações de políticas que especificam esse papel serão removidas dos resultados da pesquisa.
      • resource:organizations/123456 para encontrar vinculações de políticas do IAM definidas em "organizations/123456".
      • Important para encontrar vinculações de políticas do IAM que contenham "Important" como uma palavra em qualquer um dos campos pesquisáveis (exceto as permissões incluídas).
      • *por* para encontrar vinculações de política do IAM que contenham "por" como uma substring em qualquer um dos campos pesquisáveis (exceto as permissões incluídas).
      • resource:(instance1 OR instance2) policy:amy para encontrar vinculações de políticas do IAM configuradas em recursos "instance1" ou "instance2" e também especificar o usuário "amy".

    Para saber mais sobre como pesquisar as 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 de recursos em um determinado carimbo de data/hora para um arquivo do Cloud Storage, conclua as etapas a seguir.

  1. Crie um novo bucket se o projeto não tiver um do Cloud Storage disponível para armazenar dados exportados.

  2. Para exportar metadados de recursos no seu projeto, execute o seguinte comando. Esse comando armazena o snapshot exportado em um bucket do Cloud Storage em gs://YOUR_BUCKET/NEW_FILE.

    gcloud asset export \
       --content-type resource \
       --project PROJECT_ID \
       --snapshot-time SNAPSHOT_TIME \
       --output-path "gs://YOUR_BUCKET/NEW_FILE"
    

    Em que:

    • PROJECT_ID: o ID do projeto que está tendo os metadados exportados. Pode ser o projeto em que a API Cloud Asset Inventory está ativada e a partir da qual você está executando a exportação ou um projeto diferente.
    • (Opcional) SNAPSHOT_TIME: o valor precisa ser a hora atual ou um horário no qual você quer capturar um snapshot dos seus recursos. Por padrão, um snapshot é capturado no horário atual. Consulte gcloud topic datetimes para informações sobre formatos de tempo.
  3. Para exportar os recursos de uma organização ou pasta, use uma das seguintes sinalizações no lugar da sinalização --project:

    • --organization=ORGANIZATION_ID
    • --folder=FOLDER_ID
  4. (Opcional) Para verificar o status da exportação, execute o seguinte comando. Ele é exibido na ferramenta gcloud após a execução do comando de exportação.

    gcloud asset operations describe projects/PROJECT_ID/operations/ExportAssets/CONTENT_TYPE/OPERATION_NUMBER
    

Como visualizar um instantâneo de um recurso

Para visualizar um snapshot de recurso depois de exportá-lo para o Cloud Storage, conclua as etapas a seguir.

  1. Acesse a página do Navegador do Cloud Storage.
    Abrir a página do Navegador do Cloud Storage

  2. Abra o arquivo para o qual você exportou seus metadados.

O arquivo de exportação lista os recursos e os nomes dos recursos.

A seguir