Os recursos são os Google Cloud recursos de uma organização, como instâncias do Compute Engine ou contentores do Cloud Storage.
Este guia mostra como usar as bibliotecas de cliente do Security Command Center para aceder aos registos descontinuados que o Security Command Center mantém para os recursos num projeto ou numa organização.
O Security Command Center mantém registos apenas para um subconjunto dos recursos no Cloud Asset Inventory. Para ver a lista mais completa de recursos no seu ambiente, use o Cloud Asset Inventory para listar recursos.
Para mais informações, consulte o seguinte:
- Serviço de lista de recursos do Cloud Asset Inventory
- Tipos de recursos suportados no Security Command Center
Níveis de concessão para funções de IAM
As funções do IAM para o Security Command Center podem ser concedidas ao nível da organização, da pasta ou do projeto. A sua capacidade de ver, editar, criar ou atualizar resultados, recursos e origens de segurança depende do nível para o qual lhe é concedido acesso. Para saber mais sobre as funções do Security Command Center, consulte o artigo Controlo de acesso.
Antes de começar
Antes de configurar uma origem, tem de concluir o seguinte:
Tamanho da página
Todas as APIs de listas do Security Command Center são paginadas. Cada resposta devolve uma página de resultados e um token para devolver a página seguinte. O tamanho da página é configurável. O pageSize predefinido é 10, podendo ser definido para um mínimo de 1 e um máximo de 1000.
Tipos de recursos
O atributo resourceType
no Security Command Center usa uma convenção de nomenclatura diferente da do Cloud Asset Inventory. Para ver uma lista dos formatos de tipos de recursos, consulte o artigo Tipos de recursos suportados no
Security Command Center.
Apresente todos os recursos
Estes exemplos mostram como listar todos os recursos:
gcloud
Para apresentar uma lista de todos os recursos num projeto, numa pasta ou numa organização, execute o seguinte comando:
gcloud scc assets list PARENT_ID
Substitua PARENT_ID
por um dos seguintes valores:
- Um ID da organização no seguinte formato:
ORGANIZATION_ID
(apenas o ID numérico) - Um ID da pasta no seguinte formato:
folders/FOLDER_ID
- Um ID do projeto no seguinte formato:
projects/PROJECT_ID
Para ver mais exemplos, execute o seguinte comando:
gcloud scc assets list --help
Para ver exemplos na documentação, consulte gcloud scc assets list.
Python
Java
Ir
Node.js
O resultado de cada recurso é um objeto JSON semelhante ao seguinte:
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'
Filtre recursos
Um projeto, uma pasta ou uma organização podem ter muitos recursos. O exemplo anterior não usa filtros, pelo que são devolvidos todos os recursos. O Security Command Center permite-lhe usar filtros de recursos para obter informações sobre recursos específicos. Os filtros são semelhantes às cláusulas "where" nas declarações SQL, exceto que, em vez de colunas, aplicam-se aos objetos devolvidos pela API.
O exemplo de saída no exemplo anterior mostra alguns campos e subcampos, e as respetivas propriedades, que podem ser usados em filtros de recursos. O Security Command Center suporta matrizes e objetos JSON completos como potenciais tipos de propriedades. Pode filtrar por:
- Elementos da matriz
- Objetos JSON completos com correspondência parcial de strings no objeto
- Subcampos de objetos JSON
Os subcampos têm de ser números, strings ou booleanos, e as expressões de filtro têm de usar os seguintes operadores de comparação:
- Strings:
- Igualdade total
=
- Correspondência parcial de strings
:
- Igualdade total
- Números:
- Desigualdades
<
,>
,<=
,>=
- Igualdade
=
- Desigualdades
- Booleanos:
- Igualdade
=
- Igualdade
Os exemplos seguintes filtram recursos:
gcloud
Use o seguinte comando para filtrar recursos:
gcloud scc assets list PARENT_ID --filter="FILTER"
Substitua o seguinte:
FILTER
com o filtro que precisa de usar. Por exemplo, o filtro seguinte devolve apenas recursos de projetos:--filter="security_center_properties.resource_type=\"google.cloud.resourcemanager.Project\""
PARENT_ID
com um dos seguintes valores:- Um ID da organização no seguinte formato:
ORGANIZATION_ID
(apenas o ID numérico) - Um ID da pasta no seguinte formato:
folders/FOLDER_ID
- Um ID do projeto no seguinte formato:
projects/PROJECT_ID
- Um ID da organização no seguinte formato:
Para ver mais exemplos, execute o seguinte comando:
gcloud scc assets list --help
Para ver exemplos na documentação, consulte gcloud scc assets list.
Python
Java
Ir
Node.js
Lista num determinado momento
Os exemplos anteriores mostram como listar um conjunto atual de recursos. O Security Command Center também lhe permite ver uma captura instantânea histórica dos recursos. Os exemplos seguintes devolvem o estado de todos os recursos num ponto específico no tempo. O Security Command Center suporta resoluções de tempo de milissegundos.
gcloud
Use o seguinte comando para listar recursos a partir de um ponto específico no tempo:
gcloud scc assets list PARENT_ID --read-time="READ_TIME"
Substitua o seguinte:
READ_TIME
com a hora em que os recursos devem ser apresentados. Use o seguinte formato:YYYY-MM-DDThh:mm:ss.ffffffZ
. Por exemplo:--read-time="2022-12-21T07:00:06.861Z"
PARENT_ID
com um dos seguintes valores:- Um ID da organização no seguinte formato:
ORGANIZATION_ID
(apenas o ID numérico) - Um ID do projeto no seguinte formato:
projects/PROJECT_ID
- Um ID da pasta no seguinte formato:
folders/FOLDER_ID
- Um ID da organização no seguinte formato:
Para ver mais exemplos, execute o seguinte comando:
gcloud scc assets list --help
Para ver exemplos na documentação, consulte gcloud scc assets list.
Python
Java
Ir
Node.js
Apresente recursos com alterações de estado
O Security Command Center permite-lhe comparar um recurso em dois momentos para identificar se foi adicionado, removido ou estava presente durante o período especificado. Os exemplos seguintes 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
está 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 estava presente emreadTime
.REMOVED
: o recurso estava presente no início decompareDuration
, mas não estava presente emreadTime
.ACTIVE
: o recurso estava presente no início e no fim do período definido porcompareDuration
ereadTime
.
gcloud
Use o seguinte comando 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 o seguinte:
COMPARE_DURATION
com um número de segundos que define um ponto no tempo anterior ao tempo especificado na flag--read-time
. Por exemplo:--compare-duration=84600s
FILTER
com o filtro que precisa de usar. Por exemplo, o filtro seguinte devolve apenas recursos de projetos:--filter="security_center_properties.resource_type=\"google.cloud.resourcemanager.Project\""
PARENT_ID
com um dos seguintes valores:- Um ID da organização no seguinte formato:
ORGANIZATION_ID
(apenas o ID numérico) - Um ID do projeto no seguinte formato:
projects/PROJECT_ID
- Um ID da pasta no seguinte formato:
folders/FOLDER_ID
- Um ID da organização no seguinte formato:
READ_TIME
com a hora em que os recursos devem ser apresentados. Use o seguinte formato:YYYY-MM-DDThh:mm:ss.ffffffZ
. Por exemplo: Para ver mais exemplos, execute o seguinte comando:--read-time="2022-12-21T07:00:06.861Z"
gcloud scc assets list --help
Para ver exemplos na documentação, consulte gcloud scc assets list.
Python
Java
Ir
Node.js
Exemplos de filtros
Seguem-se alguns outros filtros de recursos úteis. Pode usar AND
e OR
em filtros para combinar parâmetros e expandir ou refinar os resultados.
Encontre um recurso do projeto com um proprietário específico
"security_center_properties.resource_type = \"google.cloud.resourcemanager.Project\" AND security_center_properties.resource_owners : \"$USER\""
Normalmente, $USER
está no formato user:someone@domain.com
. A comparação
para user
usa o operador de substring :
e não é necessária uma correspondência exata.
Regras de firewall com 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 no formato
//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
Encontrar imagens do Compute Engine cujos nomes contêm uma string específica
Este filtro devolve imagens do Compute Engine que contêm a 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 devolve contentores do Cloud Storage onde bucketPolicyOnly
está desativado. O valor de resourceProperties.iamConfiguration
é codificado como uma string. Use o caráter \
para aplicar o caráter de escape a carateres especiais em strings, incluindo o operador :
entre o nome da chave e o valor.
"resourceProperties.iamConfiguration:"\"bucketPolicyOnly\"\:{\"enabled\"\:false""
Encontrar recursos de projetos criados a uma hora específica ou antes
Estes filtros de exemplo correspondem a recursos criados a 18 de julho de 2019 ou antes às 20:26:21 GMT. Com o filtro create_time
, pode expressar o tempo através dos 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\""
Excluir recursos dos resultados
Para excluir um recurso dos resultados, use a negação colocando um caráter -
antes de um parâmetro. A operação é semelhante à utilização do operador NOT numa declaração SQL.
Este filtro devolve todos os recursos do projeto, exceto Debia
:
"security_center_properties.resource_type = \"google.cloud.resourcemanager.Project\" AND -resource_properties.projectId = \"Debia\""
O que se segue?
Saiba como aceder ao Security Command Center através de uma biblioteca de cliente.