Recursos são recursos do Google Cloud de uma organização, como instâncias do Compute Engine ou buckets do Cloud Storage.
Este guia mostra como usar as bibliotecas de cliente do Security Command Center para acessar os registros descontinuados que o Security Command Center mantém para os recursos de um projeto ou organização.
O Security Command Center mantém registros apenas para um subconjunto de recursos no Cloud Asset Inventory. Para ver a lista mais completa de recursos no seu ambiente, use o Inventário de recursos do Cloud para listar os recursos.
Para ver mais informações, consulte os seguintes tópicos:
- Serviço de lista de recursos do Inventário de recursos do Cloud
- Tipos de recursos compatíveis no Security Command Center
Níveis de concessão para papéis do IAM
Os papéis do IAM para o Security Command Center podem ser concedidos no nível da organização, da pasta ou do projeto. A capacidade de ver, editar, criar ou atualizar descobertas, recursos e fontes de segurança depende do nível a que você tem acesso. Para saber mais sobre os papéis do Security Command Center, consulte Controle de acesso.
Antes de começar
Antes de configurar uma fonte, faça o seguinte:
Tamanho da página
Todas as APIs de lista do Security Command Center são paginadas. Cada resposta retorna uma página de resultados e um token para retornar a próxima página. O tamanho da página é configurável. O pageSize padrão é 10, ele pode ser definido como no mínimo 1 e no máximo 1.000.
Tipos de recurso
O atributo resourceType
no Security Command Center usa uma convenção de nomenclatura diferente do Cloud Asset Inventory. Para
ver uma lista de formatos de tipo de recursos, consulte Tipos de recursos compatíveis no
Security Command Center.
Listar todos os recursos
Estes exemplos mostram como listar todos os recursos:
gcloud
Para listar todos os recursos de um projeto, uma pasta ou uma organização, execute o seguinte comando:
gcloud scc assets list PARENT_ID
Substitua PARENT_ID
por um dos seguintes valores:
- Um ID de organização no seguinte formato:
ORGANIZATION_ID
(apenas o ID numérico) - Um ID de pasta no seguinte formato:
folders/FOLDER_ID
- Um ID de projeto no seguinte formato:
projects/PROJECT_ID
Para mais exemplos, execute:
gcloud scc assets list --help
Para exemplos na documentação, consulte gcloud scc assets list.
Python
Java
Go
Node.js
A saída para cada recurso é um objeto JSON semelhante a este:
asset:
createTime: '2020-10-05T17:55:14.823Z'
iamPolicy:
policyBlob: '{"bindings":[{"role":"roles/owner","members":["serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com","user:USER_EMAIL@gmail.com"]}]}'
name: organizations/ORGANIZATION_ID/assets/ASSET_ID
resourceProperties:
createTime: '2020-10-05T17:36:17.915Z'
lifecycleState: ACTIVE
name: PROJECT_ID
parent: '{"id":"ORGANIZATION_ID","type":"organization"}'
projectId: PROJECT_ID
projectNumber: 'PROJECT_NUMBER'
securityCenterProperties:
resourceDisplayName: PROJECT_ID
resourceName: //cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER
resourceOwners:
- serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com
- user:USER_EMAIL@gmail.com
resourceParent: //cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID
resourceParentDisplayName: ORGANIZATION_NAME
resourceProject: //cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER
resourceProjectDisplayName: PROJECT_ID
resourceType: google.cloud.resourcemanager.Project
securityMarks:
name: organizations/ORGANIZATION_ID/assets/ASSET_ID/securityMarks
updateTime: '2020-10-05T17:55:14.823Z'
Filtrar recursos
Um projeto, uma pasta ou uma organização pode ter muitos recursos. O exemplo anterior não usa filtros, portanto, todos os recursos são retornados. O Security Command Center permite usar filtros de recursos para acessar informações sobre recursos específicos. Os filtros são como cláusulas "onde" nas instruções SQL, exceto em vez de colunas, eles se aplicam aos objetos retornados pela API.
O exemplo de saída no exemplo anterior mostra alguns campos e subcampos e as propriedades deles, que podem ser usados em filtros de recursos. O Security Command Center também é compatível com matrizes e objetos JSON completos como tipos de propriedade em potencial. É possível filtrar por:
- Elementos de matriz
- Objetos JSON completos com correspondência parcial de string no objeto
- Subcampos de objetos JSON
Os subcampos precisam ser números, strings ou booleanos, e as expressões de filtro precisam usar os seguintes operadores de comparação:
- Strings:
- Equalização completa
=
- String parcial correspondente a
:
- Equalização completa
- Números:
- Desigualdades
<
,>
,<=
,>=
- Equalização
=
- Desigualdades
- Booleanos:
- Equalização
=
- Equalização
Os exemplos a seguir filtram recursos:
gcloud
Use o seguinte comando para filtrar os recursos:
gcloud scc assets list PARENT_ID --filter="FILTER"
Substitua:
FILTER
pelo filtro que você precisa usar. Por exemplo, o filtro a seguir retorna apenas recursos de projeto:--filter="security_center_properties.resource_type=\"google.cloud.resourcemanager.Project\""
PARENT_ID
por um dos seguintes valores:- Um ID de organização no seguinte formato:
ORGANIZATION_ID
(apenas o ID numérico) - Um ID de pasta no seguinte formato:
folders/FOLDER_ID
- Um ID de projeto no seguinte formato:
projects/PROJECT_ID
- Um ID de organização no seguinte formato:
Para mais exemplos, execute:
gcloud scc assets list --help
Para exemplos na documentação, consulte gcloud scc assets list.
Python
Java
Go
Node.js
Listar em um momento específico
Os exemplos anteriores mostram como listar um conjunto atual de recursos. O Security Command Center também permite a visualização de um snapshot anterior de recursos. Os exemplos a seguir retornam o estado de todos os recursos em um momento específico. O Security Command Center é compatível com resoluções de tempo de milissegundos.
gcloud
Use o comando abaixo para listar os recursos a partir de um ponto específico no tempo:
gcloud scc assets list PARENT_ID --read-time="READ_TIME"
Substitua:
READ_TIME
pelo período de listagem dos recursos. Use o seguinte formato:YYYY-MM-DDThh:mm:ss.ffffffZ
. Exemplo:--read-time="2022-12-21T07:00:06.861Z"
PARENT_ID
por um dos seguintes valores:- Um ID de organização no seguinte formato:
ORGANIZATION_ID
(apenas o ID numérico) - Um ID de projeto no seguinte formato:
projects/PROJECT_ID
- Um ID de pasta no seguinte formato:
folders/FOLDER_ID
- Um ID de organização no seguinte formato:
Para mais exemplos, execute:
gcloud scc assets list --help
Para exemplos na documentação, consulte gcloud scc assets list.
Python
Java
Go
Node.js
Listar recursos com alterações de estado
O Security Command Center permite comparar um recurso em dois pontos no tempo para identificar se ele foi adicionado, removido ou presente durante o período especificado. Os
exemplos a seguir comparam projetos que existem em READ_TIME
com um ponto anterior
no tempo especificado por COMPARE_DURATION
. COMPARE_DURATION
é fornecido em segundos.
Quando COMPARE_DURATION
é definido, o atributo stateChange
nos resultados do recurso de lista é atualizado com um dos seguintes valores:
ADDED
: o recurso não estava presente no início decompareDuration
, mas presente emreadTime
.REMOVED
: o recurso estava presente no início decompareDuration
, mas não presente emreadTime
.ACTIVE
: o recurso estava presente no início e no final do período definido porcompareDuration
ereadTime
.
gcloud
Use o comando abaixo para comparar o estado dos recursos em dois pontos no tempo:
gcloud scc assets list PARENT_ID \ --filter="FILTER" \ --read-time=READ_TIME \ --compare-duration=COMPARE_DURATION
Substitua:
COMPARE_DURATION
por um número de segundos que define um período anterior ao período especificado na sinalização--read-time
. Exemplo:--compare-duration=84600s
FILTER
pelo filtro que você precisa usar. Por exemplo, o filtro a seguir retorna apenas recursos de projeto:--filter="security_center_properties.resource_type=\"google.cloud.resourcemanager.Project\""
PARENT_ID
por um dos seguintes valores:- Um ID de organização no seguinte formato:
ORGANIZATION_ID
(apenas o ID numérico) - Um ID de projeto no seguinte formato:
projects/PROJECT_ID
- Um ID de pasta no seguinte formato:
folders/FOLDER_ID
- Um ID de organização no seguinte formato:
READ_TIME
pelo período de listagem dos recursos. Use o seguinte formato:YYYY-MM-DDThh:mm:ss.ffffffZ
. Exemplo: Para mais exemplos, execute:--read-time="2022-12-21T07:00:06.861Z"
gcloud scc assets list --help
Para exemplos na documentação, consulte gcloud scc assets list.
Python
Java
Go
Node.js
Exemplos de filtros
Veja a seguir alguns outros filtros de recurso úteis. É possível usar AND
e OR
em filtros para combinar parâmetros e expandir ou refinar os resultados.
Encontrar um recurso de projeto com um proprietário específico
"security_center_properties.resource_type = \"google.cloud.resourcemanager.Project\" AND security_center_properties.resource_owners : \"$USER\""
$USER
normalmente está no formato user:someone@domain.com
. A comparação de
user
usa o operador de substring :
, e uma correspondência exata não é necessária.
Regras de firewall que têm portas HTTP abertas
"security_center_properties.resource_type = \"google.compute.Firewall\" AND resource_properties.name =\"default-allow-http\""
Recursos que pertencem a projetos específicos
"security_center_properties.resource_parent = \"$PROJECT_1_NAME\" OR security_center_properties.resource_parent = \"$PROJECT_2_NAME\""
$PROJECT_1_NAME
e $PROJECT_2_NAME
são identificadores de recursos na forma de
//cloudresourcemanager.googleapis.com/projects/$PROJECT_ID
, em que
$PROJECT_ID
é o número do projeto. Um exemplo completo seria algo como
//cloudresourcemanager.googleapis.com/projects/100090906
:
Como encontrar imagens do Compute Engine em que os nomes contêm uma string específica
Esse filtro retorna imagens do Compute Engine que contêm substring "Debia":
"security_center_properties.resource_type = \"google.compute.Image\" AND resource_properties.name : \"Debia\""
Recursos cujas propriedades contêm pares de chave-valor
Este filtro retorna buckets do Cloud Storage em que bucketPolicyOnly
está desativado. O valor de resourceProperties.iamConfiguration
é codificado como uma string. Você usa o caractere \
para escapar caracteres especiais em strings, incluindo o operador :
entre o nome e o valor da chave.
"resourceProperties.iamConfiguration:"\"bucketPolicyOnly\"\:{\"enabled\"\:false""
Como encontrar recursos do projeto criados antes ou em um horário específico
Estes filtros de exemplo correspondem a recursos criados a partir de 18 de julho de 2019,
às 20:26:21h GMT. Com o filtro create_time
, é possível expressar tempo usando os
seguintes formatos e tipos:
Tempo Unix (em milissegundos) como um literal inteiro
"create_time <= 1563481581000"
RFC 3339 como um literal de string
"create_time <= \"2019-07-18T20:26:21+00:00\""
Como excluir recursos dos resultados
Para excluir um recurso dos resultados, use a negação colocando um caractere -
na frente de um parâmetro. A operação é semelhante ao uso do operador NOT em uma instrução SQL.
Este filtro retorna todos os recursos do projeto, exceto Debia
:
"security_center_properties.resource_type = \"google.cloud.resourcemanager.Project\" AND -resource_properties.projectId = \"Debia\""
A seguir
Saiba mais sobre como acessar o Security Command Center usando uma biblioteca de cliente.