Nesta página, mostramos como usar o serviço de lista de recursos do Inventário de recursos do Cloud. Use a API Cloud Asset Inventory para visualizar uma lista paginada dos recursos em um determinado carimbo de data/hora.
Antes de começar
gcloud
- Ative a API Cloud Asset antes de usar a ferramenta de linha de comando
gcloud
para acessar o Inventário de recursos do Cloud. Observe que a API só precisa estar ativada no projeto do qual você executará os comandos da API do Cloud Asset.
Ativar a API Cloud Asset Inventory - Instale o SDK do Cloud no cliente local.
API
- Instale o oauth2l na sua máquina local para acessar o sistema do Google OAuth.
- Confirme se você tem acesso ao comando
curl
do Unix. - Certifique-se de que a conta tenha um dos papéis a seguir no projeto ou
na organização de que você pretende listar recursos.
roles/cloudasset.viewer
roles/cloudasset.owner
Configurar uma conta
Para chamar a API Cloud Asset, sua conta precisa receber a permissão
cloudasset.assets.listResource
para listar recursos ou
cloudasset.assets.listIamPolicy
para listar políticas de IAM no recurso raiz (pai),
que é uma projeto ou organização que contém os recursos que você quer
listar.
Se sua conta tiver recebido os papéis de Visualizador do Cloud Asset
(roles/cloudasset.viewer
), Proprietário do Cloud Asset
(roles/cloudasset.owner
) ou o papel básico de Proprietário (roles/owner
) na
raiz de recursos, ela já terá permissões suficientes para chamar a API Cloud Asset.
Caso contrário, siga as etapas na
página Como configurar permissões.
Listar recursos
Para listar os recursos em um projeto em um determinado período usando a API Cloud Asset, siga as etapas abaixo.
gcloud
Os comandos mostrados nesta seção listam recursos em um projeto. Para listar recursos
em uma organização, use a sinalização --organization=ORGANIZATION_ID
no seu comando.
O exemplo a seguir lista os recursos em um projeto.
Observe que o start-time
mais recente possível de um período é
o tempo atual menos 35 dias (inclusive).
- Verifique se é possível chamar a API do Cloud Asset seguindo a etapa Configurar uma conta.
- Determine os tipos de recurso dos recursos que você quer listar. Esta é a variável asset-types nos exemplos abaixo.
- Determine o momento em que você quer listar os recursos. Este é o snapshot-time no comando gcloud, no formato RFC 3339 UTC.
É possível especificar o projeto de faturamento com a sinalização --billing-project
, que é o projeto usado para enviar a solicitação. É possível especificar o projeto de destino que você quer listar com a sinalização --project
ao listar os recursos de um projeto.
Para ver uma lista completa de sinalizações e opções, execute gcloud alpha asset list
--help
.
Liste os recursos em um projeto, incluindo todos os metadados de recursos:
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud beta asset list --project='PROJECT_ID' \ --billing-project='BILLING_PROJECT_ID' \ --asset-types='compute.googleapis.com/Instance' \ --snapshot-time=$NOW \ --content-type='resource'
Liste os recursos em um projeto sem metadados do recurso:
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud beta asset list --project='PROJECT_ID' \ --billing-project='BILLING_PROJECT_ID' \ --asset-types='compute.googleapis.com/Instance' \ --snapshot-time=$NOW
API
Os comandos mostrados nesta seção listam recursos de um projeto. Para listar recursos
de uma organização, use o método REST https://cloudasset.googleapis.com/v1p5beta1/organizations/ORGANIZATION_NUMBER/assets
no comando gcurl
.
- Verifique se é possível chamar a API do Cloud Asset seguindo a etapa Configurar uma conta.
- Determine o momento em que você quer listar os recursos. Este é o parâmetro readTime no comando a seguir, no formato RFC 3339 UTC.
- Determine os tipos de recurso
do recurso que você quer listar. O exemplo a seguir usa
compute.googleapis.com/Instance
.
Definir Token
Var
Para conseguir o token de acesso, execute o seguinte comando com o arquivo ~/credentials.json
.
oauth2l header --json ~/credentials.json cloud-platform
Você verá uma saída semelhante à seguinte, com y29.xxxxxx
como
token de acesso:
Authorization: Bearer y29.xxxxxxx
Defina a variável Token
como o token de acesso:
Token=y29.xxxxxxx
Listar recursos em um projeto, incluindo todos os metadados de recursos
O parâmetro pageToken
não pode ser definido para a primeira página e precisa ser definido
como o valor do token da página em resposta à solicitação de página anterior.
Observe que
pageToken
é diferente do Token
mencionado acima.
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") curl -X POST -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $Token" -H "Content-Type: application/json" \ -d '{"contentType":"RESOURCE", \ "assetTypes": "compute.googleapis.com/Instance", \ "readTime": "'$NOW'", \ "pageToken": "PAGE_TOKEN_FROM_PREVIOUS_PAGE_RESPONSE"}' \ https://cloudasset.googleapis.com/v1p5beta1/projects/PROJECT_NUMBER/assets
Listar recursos em um projeto, sem metadados de recursos
O parâmetro pageToken não pode ser definido para a primeira página, nem o valor do token de página em resposta à solicitação de página anterior.
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") curl -X POST -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $Token" -H "Content-Type: application/json" \ -d '{"assetTypes": "compute.googleapis.com/Instance", \ "readTime": "'$NOW'", \ "pageToken": "PAGE_TOKEN_FROM_PREVIOUS_PAGE_RESPONSE"}' \ https://cloudasset.googleapis.com/v1p5beta1/projects/PROJECT_NUMBER/assets