Use a API – Estatísticas
Esta página explica como ver e gerir
estatísticas no Recommender através de
comandos gcloud
ou da
API REST.
Uma interação típica com estatísticas da API Recommender é:
- Liste as estatísticas de um projeto específico
- Marque uma estatística sobre a qual pretende tomar medidas como aceite
Para obter informações sobre como alterar o estado das estatísticas na Google Cloud consola, consulte a documentação do centro de recomendações ou do tipo de estatísticas adequado.
Defina o projeto predefinido
Defina o projeto predefinido, caso ainda não o tenha feito:
gcloud config set project PROJECT_ID
onde PROJECT_ID é o ID do seu projeto.
Defina variáveis de ambiente
Defina variáveis de ambiente para interações do Recommender:
PROJECT=TARGET_PROJECT_ID LOCATION=LOCATION_ID INSIGHT_TYPE=INSIGHT_TYPE_ID
where:
TARGET_PROJECT_ID é o projeto cujas estatísticas quer listar. Este pode ser um projeto diferente do seu projeto atual.
- Para comandos
gcloud
, tem de usar o ID do projeto - Para pedidos de API, pode usar o número do projeto ou o ID do projeto. Recomendamos que indique o número do projeto.
O número do projeto é devolvido nas respostas da API e dos
gcloud
comandos.- Para comandos
LOCATION_ID é a Google Cloud localização onde se encontram os recursos associados às estatísticas (por exemplo,
global
ouus-central1-a
).INSIGHT_TYPE_ID é o ID do tipo de estatísticas totalmente qualificado (por exemplo,
google.iam.policy.Insight
).
Consulte o artigo Tipos de estatísticas para ver uma tabela de links para informações sobre cada tipo de estatísticas, incluindo localizações suportadas e IDs de tipos de estatísticas.
Defina autorizações
Tem de ter autorizações para aceder às estatísticas no projeto de destino.
- Para requerentes que incluam um projeto de faturação no respetivo pedido. O projeto usado no pedido tem de estar em conformidade, e o utilizador tem de ter uma função no projeto que contenha a autorização
serviceusage.services.use
. A função Consumidor de utilização de serviços contém a autorização necessária. - Cada tipo de estatística requer autorizações específicas. Consulte Tipos de estatísticas para ver uma tabela de links para informações sobre cada tipo de estatísticas, incluindo as autorizações necessárias.
userProject
Apresente estatísticas
Conforme mostrado no separador gcloud Beta, pode listar todas as estatísticas do seu projeto sem ter de especificar uma localização e um recomendador. Esta funcionalidade está em pré-visualização.
A funcionalidade de IA generativa requer que especifique um projeto, uma localização e um motor de recomendações. Para ver detalhes, consulte o separador gcloud.
gcloud Beta
Introduza os seguintes dados:
gcloud beta recommender insights list \ --project=${PROJECT} \ --format=FORMAT
onde FORMAT é um Google Cloud CLI
formato de saída suportado, como
json
.
Por exemplo:
gcloud beta recommender insights list \ --project=example-project \ --format=json
gcloud
Introduza os seguintes dados:
gcloud recommender insights list \ --project=${PROJECT} \ --location=${LOCATION} \ --insight-type=${INSIGHT_TYPE} \ --format=FORMAT
onde FORMAT é um gcloud
formato de saída suportado (por exemplo,
json
).
Por exemplo:
gcloud recommender insights list \ --project=example-project \ --location=global \ --insight-type=google.iam.policy.Insight \ --format=json
REST
Introduza os seguintes dados:
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-user-project: ${PROJECT}" \ "https://recommender.googleapis.com/v1/projects/${PROJECT}/locations/${LOCATION}/insightTypes/${INSIGHT_TYPE}/insights"
Por exemplo:
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-user-project: example-project" \ "https://recommender.googleapis.com/v1/projects/example-project/locations/us-central1-a/insightTypes/google.iam.policy.Insight/insights"
Esta operação gera as estatísticas da política de IAM atual no projeto de destino como uma lista de entidades Insight
no formato especificado.
O resultado é semelhante ao seguinte:
[ { "category": "SECURITY", "content": { "condition": { "description": "", "expression": "", "location": "", "title": "" }, "exercisedPermissions": [], "inferredPermissions": [], "member": "user:my-service-account@example-project.iam.gserviceaccount.com", "role": "roles/iam.securityReviewer" }, "description": "0 permission checks were authorized by this policy binding tuple.", "etag": "\"45f4e2c63f6952e8\"", "insightSubtype": "PERMISSIONS_USAGE", "lastRefreshTime": "2020-03-06T08:00:00Z", "name": "projects/32428390823/locations/global/insightTypes/google.iam.policy.Insight/insights/a523ff7e-ed03-4143-a3a5-5b396b99cba9", "observationPeriod": "7776000s", "stateInfo": { "state": "ACTIVE", }, "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/32428390823" ], } ]
Tenha em atenção que as estatísticas devolvidas incluem os seguintes campos:
Um campo
name
no seguinte formato:projects/PROJECT_ID/locations/LOCATION/insightTypes/INSIGHT_TYPE_ID/insights/INSIGHT_ID
em que INSIGHT_ID identifica de forma exclusiva a estatística
Um campo
etag
associado ao estado atual das estatísticas.
Quando faz referência a uma estatística com comandos gcloud
subsequentes ou chamadas API REST, faz referência ao ID da estatística e ao etag, o que garante que as operações só são realizadas se a estatística não tiver sido modificada desde a última vez que a obteve.
Marque uma estatística como aceite
Pode marcar uma estatística como aceite para indicar que pretende tomar ou tomou uma ação num recurso associado com base nas informações fornecidas na estatística. Quando uma estatística é aceite, o seu nome de utilizador é atribuído como o autor da estatística, e o Recomendador não atualiza a estatística com conteúdo mais recente.
Para marcar uma estatística como aceite:
gcloud
Introduza os seguintes dados:
gcloud recommender insights mark-accepted \ INSIGHT_ID \ --project=${PROJECT} \ --location=${LOCATION} \ --insight-type=${INSIGHT_TYPE} \ --etag=etag \ --state-metadata=STATE_METADATA --format=FORMAT
where:
- INSIGHT_ID é o ID de uma estatística obtida a partir de uma chamada anterior para listar estatísticas
- etag é a etag devolvida que representa o estado da estatística
- STATE_METADATA são metadados opcionais sobre a operação. Especifique os metadados como uma lista separada por vírgulas de pares KEY=VALUE.
Por exemplo:
gcloud recommender insights mark-accepted \ a523ff7e-ed03-4143-a3a5-5b396b99cba9 \ --project=example-project \ --location=global \ --insight-type=google.iam.policy.Insight \ --etag='"280b34810bba8a1a"' \ --state-metadata=priority=high,tracking_number=12345 --format=json
REST
Introduza os seguintes dados:
curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-user-project: ${PROJECT}" \ --data-binary @- \ https://recommender.googleapis.com/v1/projects/${PROJECT}/locations/${LOCATION}/insightTypes/${INSIGHT_TYPE}/insights/INSIGHT_ID:markAccepted \ << EOM { "etag": "etag", "stateMetadata": STATE_METADATA } EOM
where:
- INSIGHT_ID é o ID de uma estatística obtida a partir de uma chamada anterior para listar estatísticas
- etag é a etag devolvida que representa o estado da estatística
- STATE_METADATA é um campo opcional com metadados adicionais
acerca da operação. Especifique os metadados como pares
key:value
.
Por exemplo:
curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-user-project: example-project" \ --data-binary @- \ https://recommender.googleapis.com/v1/projects/example-project/locations/global/insightTypes/google.iam.policy.Insight/insights/a523ff7e-ed03-4143-a3a5-5b396b99cba9:markAccepted \ << EOM { "etag": "\"280b34810bba8a1a\"" "stateMetadata": { "priority" : "high", "tracking_number": "12345" } } EOM
Esta operação devolve a entidade Insight
no formato especificado após a operação.
O resultado é semelhante ao seguinte:
{ "category": "SECURITY", "content": { ... }, "description": "0 permission checks were authorized by this policy binding tuple.", "etag": "\"356ae51165729f38\"", "insightSubtype": "PERMISSIONS_USAGE", "lastModifiedUser": "admin123@example-project.iam.gserviceaccount.com", "lastRefreshTime": "2020-03-06T08:00:00Z", "name": "projects/32428390823/locations/global/insightTypes/google.iam.policy.Insight/insights/a523ff7e-ed03-4143-a3a5-5b396b99cba9", "observationPeriod": "7776000s", "stateInfo": { "state": "ACCEPTED", "stateMetadata": { "priority" : "high", "tracking_number": "12345" } }, "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/32428390823" ], "userLastUpdateTime": "2020-03-31T20:57:50.509855Z" }
Tenha em atenção que o valor do campo state
foi alterado para ACCEPTED
.