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 mantiene registros solo de un subconjunto de los activos en Cloud Asset Inventory. Para obtener la lista más completa de los recursos de tu entorno, usa Cloud Asset Inventory.
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 de Security Command Center se pueden otorgar a nivel de organización, carpeta o proyecto. Tu capacidad para ver, editar, crear o actualizar resultados, recursos y fuentes de seguridad depende del nivel al que se te otorga acceso. Para obtener más información sobre 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.
Enumera todos los recursos
En estos ejemplos, se muestra cómo enumerar todos los recursos:
gcloud
Para mostrar una lista de 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 con el siguiente formato:
ORGANIZATION_ID
(solo el ID numérico) - Un ID de carpeta con el siguiente formato:
folders/FOLDER_ID
- Un ID del 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 gcloud scc assets list.
Python
Java
Go
Node.js
El resultado de cada recurso es un objeto JSON que se ve de la siguiente manera:
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 pueden tener muchos recursos. En el ejemplo anterior, no se usan filtros, por lo que se muestran todos los recursos. 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 los recursos:
gcloud scc assets list PARENT_ID --filter="FILTER"
Reemplaza lo siguiente:
FILTER
con el filtro que debes usar. Por ejemplo, el siguiente filtro muestra solo los recursos del proyecto:--filter="security_center_properties.resource_type=\"google.cloud.resourcemanager.Project\""
PARENT_ID
por uno de los siguientes valores:- Un ID de organización con el siguiente formato:
ORGANIZATION_ID
(solo el ID numérico) - Un ID de carpeta con el siguiente formato:
folders/FOLDER_ID
- Un ID del proyecto con el siguiente formato:
projects/PROJECT_ID
- Un ID de organización con el siguiente formato:
Para obtener más ejemplos, ejecuta lo siguiente:
gcloud scc assets list --help
Para ver ejemplos en la documentación, consulta gcloud scc assets list.
Python
Java
Go
Node.js
Crea una lista en un momento determinado
En los ejemplos anteriores, se muestra cómo enumerar un conjunto actual de recursos. Security Command Center también te permite ver una instantánea histórica de los recursos. En los siguientes ejemplos, se muestra el estado de todos los activos 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
con la hora en la que se deben enumerar los activos. Usa el siguiente formato:YYYY-MM-DDThh:mm:ss.ffffffZ
. Por ejemplo:--read-time="2022-12-21T07:00:06.861Z"
PARENT_ID
por uno de los siguientes valores:- Un ID de organización con el siguiente formato:
ORGANIZATION_ID
(solo el ID numérico) - Un ID del proyecto con el siguiente formato:
projects/PROJECT_ID
- Un ID de carpeta con el siguiente formato:
folders/FOLDER_ID
- Un ID de organización con el siguiente formato:
Para obtener más ejemplos, ejecuta lo siguiente:
gcloud scc assets list --help
Para ver ejemplos en la documentación, consulta gcloud scc assets list.
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. En los siguientes ejemplos, se comparan proyectos que existen en READ_TIME
con un momento anterior 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 activo no estaba presente al comienzo decompareDuration
, pero sí enreadTime
.REMOVED
: El activo estaba presente al comienzo decompareDuration
, pero no 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 en el tiempo:
gcloud scc assets list PARENT_ID \ --filter="FILTER" \ --read-time=READ_TIME \ --compare-duration=COMPARE_DURATION
Reemplaza lo siguiente:
COMPARE_DURATION
con una cantidad de segundos que define un punto en el tiempo anterior a la hora especificada en la marca--read-time
. Por ejemplo:--compare-duration=84600s
FILTER
con el filtro que debes usar. Por ejemplo, el siguiente filtro muestra solo los recursos del proyecto:--filter="security_center_properties.resource_type=\"google.cloud.resourcemanager.Project\""
PARENT_ID
por uno de los siguientes valores:- Un ID de organización con el siguiente formato:
ORGANIZATION_ID
(solo el ID numérico) - Un ID del proyecto con el siguiente formato:
projects/PROJECT_ID
- Un ID de carpeta con el siguiente formato:
folders/FOLDER_ID
- Un ID de organización con el siguiente formato:
READ_TIME
con la hora en la que se deben enumerar los activos. Usa el siguiente formato:YYYY-MM-DDThh:mm:ss.ffffffZ
. Por ejemplo: Para obtener más ejemplos, ejecuta lo siguiente:--read-time="2022-12-21T07:00:06.861Z"
gcloud scc assets list --help
Para ver ejemplos en la documentación, consulta gcloud scc assets list.
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, usa la negación colocando un carácter -
antes de 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.