Los elementos son los recursos de Google Cloud de una organización, como las instancias de Compute Engine o los depósitos de Cloud Storage.
En esta guía, se muestra cómo usar las bibliotecas cliente de Security Command Center para acceder a los registros obsoletos que Security Command Center mantiene para los recursos de un proyecto o una organización.
Security Command Center guarda registros solo para un subconjunto de los recursos en Cloud Asset Inventory. Para obtener la lista más completa de recursos en tu entorno, usar Cloud Asset Inventory para crear una lista de recursos.
Para obtener más información, consulta lo siguiente:
- Servicio de lista de activos de Cloud Asset Inventory
- Tipos de recursos admitidos en Security Command Center
Niveles de otorgamiento para roles de IAM
Los roles de IAM para Security Command Center se pueden otorgar a nivel de la organización, a nivel de carpeta o proyecto. Tu capacidad para ver, editar, crear o actualizar resultados, recursos, y las fuentes de seguridad dependen del nivel al que se te otorgue acceso. Para obtener más información Para conocer los roles de Security Command Center, consulta Control de acceso.
Antes de comenzar
Antes de configurar una fuente, debes completar lo siguiente:
Tamaño de la página
Se paginan todas las API de listas del Security Command Center. Cada respuesta muestra una página de resultados y un token para mostrar la página siguiente. El tamaño de la página se puede configurar. El valor predeterminado de pageSize es 10 y se puede establecer en un mínimo de 1 y un máximo de 1,000.
Tipos de recursos
El atributo resourceType
en Security Command Center usa una convención de nombres diferente a la de Cloud Asset Inventory. Para obtener una lista de los formatos de tipos de recursos, consulta Tipos de elementos compatibles en Security Command Center.
Enumerar todos los recursos
En estos ejemplos, se muestra cómo enumerar todos los recursos:
gcloud
Para enumerar todos los recursos de un proyecto, una carpeta o una organización, ejecuta el siguiente comando: :
gcloud scc assets list PARENT_ID
Reemplaza PARENT_ID
por uno de los siguientes valores:
- Un ID de organización en el siguiente formato:
ORGANIZATION_ID
(solo el ID numérico) - Un ID de carpeta con el siguiente formato:
folders/FOLDER_ID
- Un ID de proyecto con el siguiente formato:
projects/PROJECT_ID
Para obtener más ejemplos, ejecuta lo siguiente:
gcloud scc assets list --help
Para ver ejemplos en la documentación, consulta la lista de recursos scc de gcloud.
Python
Java
Go
Node.js
El resultado de cada recurso es un objeto JSON que se parece al siguiente:
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
Un proyecto, una carpeta o una organización puede tener muchos recursos. La anterior ejemplo no usa ningún filtros, por lo que se devuelven todos los elementos. Security Command Center te permite usar filtros de elementos para obtener información sobre elementos específicos. Los filtros son como cláusulas “where” en las instrucciones de SQL, excepto en lugar de columnas, se aplican a los objetos que muestra la API.
El resultado de muestra del ejemplo anterior muestra algunos campos y subcampos, y sus propiedades, que se pueden usar en filtros de recursos. Security Command Center también admite arrays y objetos JSON completos como posibles tipos de propiedades. Puedes aplicar los siguientes filtros:
- Elementos de arreglo
- Objetos JSON completos con coincidencia parcial de strings dentro del objeto
- Subcampos de objetos JSON
Los subcampos deben ser números, strings o booleanos, y las expresiones de filtro deben usar los siguientes operadores de comparación:
- Strings:
- Igualdad completa
=
- Coincidencia de string parcial
:
- Igualdad completa
- Números
- Desigualdades
<
,>
,<=
,>=
- Igualdad
=
- Desigualdades
- Booleanos:
- Igualdad
=
- Igualdad
En los siguientes ejemplos, se filtran los recursos:
gcloud
Usa el siguiente comando para filtrar recursos:
gcloud scc assets list PARENT_ID --filter="FILTER"
Reemplaza lo siguiente:
FILTER
por el filtro que necesitas usar Por ejemplo: el siguiente filtro solo muestra los recursos del proyecto:--filter="security_center_properties.resource_type=\"google.cloud.resourcemanager.Project\""
PARENT_ID
con uno de los siguientes valores:- Un ID de la organización en el siguiente formato:
ORGANIZATION_ID
(solo el ID numérico) - Un ID de carpeta con el siguiente formato:
folders/FOLDER_ID
- Un ID de proyecto con el siguiente formato:
projects/PROJECT_ID
- Un ID de la organización en el siguiente formato:
Para obtener más ejemplos, ejecuta lo siguiente:
gcloud scc assets list --help
Para ver ejemplos en la documentación, consulta la lista de recursos scc de gcloud.
Python
Java
Go
Node.js
Crea una lista en un momento dado
En los ejemplos anteriores, se muestra cómo enumerar un conjunto actual de elementos. Security Command Center también te permite visualizar un resumen histórico de los recursos. Los siguientes ejemplos devuelven el estado de todos los recursos en un momento específico. Security Command Center admite resoluciones de tiempo en milisegundos.
gcloud
Usa el siguiente comando para enumerar los recursos a partir de un momento específico:
gcloud scc assets list PARENT_ID --read-time="READ_TIME"
Reemplaza lo siguiente:
READ_TIME
por la hora en la que se enumeran los recursos. Usa el siguiente formato:YYYY-MM-DDThh:mm:ss.ffffffZ
Por ejemplo:--read-time="2022-12-21T07:00:06.861Z"
PARENT_ID
con uno de los siguientes valores:- Un ID de organización en el siguiente formato:
ORGANIZATION_ID
(solo el ID numérico) - Un ID del proyecto en el siguiente formato:
projects/PROJECT_ID
- Un ID de carpeta con el siguiente formato:
folders/FOLDER_ID
- Un ID de organización en el siguiente formato:
Para obtener más ejemplos, ejecuta lo siguiente:
gcloud scc assets list --help
Para ver ejemplos en la documentación, consulta la lista de recursos scc de gcloud.
Python
Java
Go
Node.js
Enumera elementos con cambios de estado
Security Command Center te permite comparar un activo en dos puntos en el tiempo para identificar si se agregó, quitó o estuvo presente durante el período especificado. El
los siguientes ejemplos comparan proyectos que existen en READ_TIME
con un anterior
un momento determinado especificado por COMPARE_DURATION
. COMPARE_DURATION
se proporciona en segundos.
Cuando se configura COMPARE_DURATION
, el atributo stateChange
en los resultados de elementos de la lista se actualiza con uno de los siguientes valores:
ADDED
: El recurso no estaba presente al comienzo decompareDuration
, pero se presenta enreadTime
.REMOVED
: El recurso estaba presente al comienzo decompareDuration
, pero no. se presenta enreadTime
.ACTIVE
: El activo estaba presente al comienzo y al final del período definido porcompareDuration
yreadTime
.
gcloud
Usa el siguiente comando para comparar el estado de los recursos en dos puntos hora:
gcloud scc assets list PARENT_ID \ --filter="FILTER" \ --read-time=READ_TIME \ --compare-duration=COMPARE_DURATION
Reemplaza lo siguiente:
COMPARE_DURATION
por la cantidad de segundos que define un punto en el tiempo anterior al que se especifica en la--read-time
. Por ejemplo:--compare-duration=84600s
FILTER
por el filtro que necesitas usar Por ejemplo: el siguiente filtro solo muestra los recursos del proyecto:--filter="security_center_properties.resource_type=\"google.cloud.resourcemanager.Project\""
PARENT_ID
con uno de los siguientes valores:- Un ID de organización en el siguiente formato:
ORGANIZATION_ID
(solo el ID numérico) - Un ID del proyecto en el siguiente formato:
projects/PROJECT_ID
- Un ID de carpeta en el siguiente formato:
folders/FOLDER_ID
- Un ID de organización en el siguiente formato:
READ_TIME
por la hora en la que se enumeran los recursos. Usa el siguiente formato:YYYY-MM-DDThh:mm:ss.ffffffZ
Por ejemplo: Para ver más ejemplos, ejecuta el siguiente comando:--read-time="2022-12-21T07:00:06.861Z"
gcloud scc assets list --help
Para ver ejemplos en la documentación, consulta la lista de recursos scc de gcloud.
Python
Java
Go
Node.js
Filtra ejemplos
A continuación, se muestran otros filtros de recursos útiles. Puedes usar AND
y OR
en los filtros para combinar parámetros y expandir o definir mejor los resultados.
Busca un elemento del proyecto con un propietario específico
"security_center_properties.resource_type = \"google.cloud.resourcemanager.Project\" AND security_center_properties.resource_owners : \"$USER\""
Por lo general, $USER
tiene el formato user:someone@domain.com
. La comparación para user
usa el operador de substring :
y no es necesaria una coincidencia exacta.
Reglas de firewall que tienen puertos HTTP abiertos
"security_center_properties.resource_type = \"google.compute.Firewall\" AND resource_properties.name =\"default-allow-http\""
Recursos que pertenecen a proyectos específicos
"security_center_properties.resource_parent = \"$PROJECT_1_NAME\" OR security_center_properties.resource_parent = \"$PROJECT_2_NAME\""
$PROJECT_1_NAME
y $PROJECT_2_NAME
son identificadores de recursos con el formato //cloudresourcemanager.googleapis.com/projects/$PROJECT_ID
, en el que $PROJECT_ID
es el número del proyecto. Un ejemplo completo sería el siguiente: //cloudresourcemanager.googleapis.com/projects/100090906
Encuentra imágenes de Compute Engine cuyos nombres contengan una string específica
En este filtro, se muestran imágenes de Compute Engine que contienen la substring “Debía”:
"security_center_properties.resource_type = \"google.compute.Image\" AND resource_properties.name : \"Debia\""
Recursos cuyas propiedades contienen pares clave-valor
Este filtro muestra buckets de Cloud Storage en los que bucketPolicyOnly
está inhabilitado. El valor de resourceProperties.iamConfiguration
se codifica como una string. Usa el carácter \
para escapar caracteres especiales en strings, incluido el operador :
entre el nombre de la clave y el valor.
"resourceProperties.iamConfiguration:"\"bucketPolicyOnly\"\:{\"enabled\"\:false""
Encuentra elementos del proyecto creados a una hora específica o antes
Estos filtros de ejemplo coinciden con los elementos creados antes o a partir del 18 de julio de 2019 a las 8:26:21 p.m. GMT. Con el filtro create_time
, puedes expresar la hora con los siguientes formatos y tipos:
Tiempo Unix (en milisegundos) como literal de número entero
"create_time <= 1563481581000"
RFC 3339 como literal de string
"create_time <= \"2019-07-18T20:26:21+00:00\""
Excluye elementos de los resultados
Para excluir un recurso de los resultados, coloca el carácter -
en la negación
frente a un parámetro. La operación es similar a usar el operador NOT en una instrucción de SQL.
Este filtro muestra todos los recursos del proyecto, excepto Debia
:
"security_center_properties.resource_type = \"google.cloud.resourcemanager.Project\" AND -resource_properties.projectId = \"Debia\""
¿Qué sigue?
Obtén más información para acceder a Security Command Center con una biblioteca cliente.