En esta guía se describe cómo usar la API de Security Command Center para gestionar marcas de seguridad. Las marcas de seguridad son anotaciones personalizables de los recursos o resultados de Security Command Center que te permiten añadir tu propio contexto empresarial a estos objetos.
Solo puede añadir o actualizar marcas de seguridad en recursos compatibles con Security Command Center. Para ver una lista de los recursos que admite Security Command Center, consulte Tipos de recursos admitidos en Security Command Center.
Antes de empezar
Antes de poder trabajar con marcas de seguridad, debes configurar una cuenta de servicio y un SDK.
Para añadir o cambiar marcas de seguridad, debes tener un rol de gestión de identidades y accesos que incluya permisos para el tipo de marca que quieras usar:
- Marcas de recursos: Escritor de marcas de seguridad de recursos,
securitycenter.assetSecurityMarksWriter
- Marcas de resultados: Escritor de marcas de seguridad de resultados
securitycenter.findingSecurityMarksWriter
Para obtener más información sobre los roles de IAM en Security Command Center, consulta el artículo sobre control de acceso. Para saber cómo usar las marcas de seguridad de forma eficaz, consulta el artículo Usar marcas de seguridad de Security Command Center.
Añadir o actualizar marcas de seguridad en recursos
Cuando se usa la API de Security Command Center, añadir y actualizar marcas de seguridad es la misma operación. En el ejemplo se muestra cómo añadir marcas de seguridad a los pares clave-valor (key_a, value_a)
y (key_b, value_b)
.
El siguiente código usa máscaras de campo para asegurarse de que solo se actualicen esos valores. Si no se proporcionan máscaras de campo, se borran todas las marcas de seguridad antes de añadir las claves y los valores proporcionados.
gcloud
gcloud scc assets update-marks ASSET_ID \ --PARENT=PARENT_ID \ --location=LOCATION \ --security-marks=SECURITY_MARKS \ --update-mask=UPDATE_MASK
Haz los cambios siguientes:
ASSET_ID
: el recurso que se va a actualizar.PARENT
: el nivel de la jerarquía de recursos en el que se encuentra el recurso. Usaorganization
,folder
oproject
.PARENT_ID
: el ID numérico de la organización, la carpeta o el proyecto principal, o el ID alfanumérico del proyecto principal.LOCATION
: la ubicación de Security Command Center en la que se va a actualizar una marca de seguridad de un recurso. Si la residencia de datos está habilitada, usaeu
,sa
ous
. De lo contrario, usa el valorglobal
.SECURITY_MARKS
: pares clave-valor separados por comas que representan marcas de seguridad y sus valores. Por ejemplo,key_a=value_a,key_b=value_b
.UPDATE_MASK
: lista de campos de marcas de seguridad separados por comas que se van a actualizar en el recurso. Por ejemplo,marks.key_a,marks.key_b
.
Go
Python
Consulta Gestionar políticas para obtener información sobre las marcas de recursos dedicadas para los detectores de Security Health Analytics.
Eliminar marcas de seguridad de recursos
Para eliminar marcas de seguridad específicas, se sigue un proceso similar al de añadir o actualizar marcas. En concreto, se llama a la función de actualización con una máscara de campo, pero sin ningún valor correspondiente. En el ejemplo, se eliminan las marcas de seguridad con las claves key_a
y key_b
.
gcloud
gcloud scc assets update-marks ASSET_ID \ --PARENT=PARENT_ID \ --location=LOCATION \ --update-mask=UPDATE_MASK
ASSET_ID
: el recurso que se va a actualizar.PARENT
: el nivel de la jerarquía de recursos en el que se encuentra el recurso. Usaorganization
,folder
oproject
.PARENT_ID
: el ID numérico de la organización, la carpeta o el proyecto principal, o el ID alfanumérico del proyecto principal.LOCATION
: la ubicación de Security Command Centeren la que se va a eliminar una marca de seguridad de un recurso. Si la residencia de datos está habilitada, usaeu
,sa
ous
. De lo contrario, usa el valorglobal
.UPDATE_MASK
: lista de campos de marcas de seguridad separados por comas que se van a eliminar del recurso. Por ejemplo,marks.key_a,marks.key_b
.
Node.js
Python
Añadir y eliminar marcas de seguridad en la misma solicitud
Las técnicas para añadir y actualizar marcas de seguridad, así como para eliminar marcas de seguridad, se pueden combinar en la misma solicitud. En el ejemplo, key_a
se actualiza y key_b
se elimina.
gcloud
gcloud scc assets update-marks ASSET_ID \ --PARENT=PARENT_ID \ --location=LOCATION \ --update-mask=UPDATE_MASK
ASSET_ID
: el recurso que se va a actualizar.PARENT
: el nivel de la jerarquía de recursos en el que se encuentra el recurso. Usaorganization
,folder
oproject
.PARENT_ID
: el ID numérico de la organización, la carpeta o el proyecto principal, o el ID alfanumérico del proyecto principal.LOCATION
: la ubicación de Security Command Center en la que se actualizarán y eliminarán las marcas de seguridad de un recurso. Si la residencia de datos está habilitada, usaeu
,sa
ous
. De lo contrario, usa el valorglobal
.SECURITY_MARKS
: pares clave-valor separados por comas que representan las marcas de seguridad que quieres actualizar; por ejemplo,key_a=value_a
. Omite las marcas de seguridad que quieras eliminar.UPDATE_MASK
: lista separada por comas de campos de marcas de seguridad que se van a actualizar o eliminar. Por ejemplo,marks.key_a,marks.key_b
.
Node.js
Python
Añadir marcas de seguridad a los resultados
El proceso para añadir, actualizar y eliminar marcas de seguridad en los resultados es el mismo que para actualizar las marcas de seguridad en los recursos. Lo único que cambia es el nombre del recurso que se usa en la llamada a la API. En lugar de un recurso de elemento, debes proporcionar un nombre de recurso de detección.
Por ejemplo, para actualizar las marcas de seguridad de un resultado, utilice el siguiente código:
gcloud
gcloud scc findings update-marks FINDING_NAME \ --PARENT=PARENT_ID \ --location=LOCATION \ --source=SOURCE_ID \ --security-marks=SECURITY_MARKS \ --update-mask=UPDATE_MASK
Haz los cambios siguientes:
FINDING_NAME
: el resultado que se va a actualizar.PARENT
: el nivel de la jerarquía de recursos en el que se encuentra el hallazgo. Usaorganization
,folder
oproject
.PARENT_ID
: el ID numérico de la organización, la carpeta o el proyecto principal, o el ID alfanumérico del proyecto principal.LOCATION
: the Security Command Center location in which to update a security mark on a finding; if data residency is enabled, useeu
,sa
, orus
; otherwise, use the valueglobal
.SOURCE_ID
: el ID de la fuente.SECURITY_MARKS
: pares clave-valor separados por comas que representan marcas de seguridad y sus valores. Por ejemplo,key_a=value_a,key_b=value_b
.UPDATE_MASK
: lista de campos de marcas de seguridad separados por comas que se van a actualizar en el recurso. Por ejemplo,marks.key_a,marks.key_b
.
Java
Node.js
Python
Las marcas de seguridad se procesan durante los análisis por lotes, que se ejecutan dos veces al día, y no en tiempo real. Puede haber un retraso de entre 12 y 24 horas antes de que se procesen las marcas de seguridad y se apliquen las políticas de implementación que resuelvan o vuelvan a abrir las detecciones.
Mostrar recursos con filtros de marcas de seguridad
Una vez que se han definido las marcas de seguridad en un recurso, se pueden usar en el argumento de filtro de la llamada a la API ListAssets
. Por ejemplo, para consultar todos los recursos donde key_a = value_a
, usa el siguiente código:
gcloud
# ORGANIZATION=12344321 FILTER="security_marks.marks.key_a = \"value_a\"" gcloud scc assets list $ORGANIZATION \ --filter="$FILTER"
Go
Java
Node.js
Python
Mostrar resultados con filtros de marcas de seguridad
Una vez que se han definido las marcas de seguridad en un resultado, se pueden usar en el argumento de filtro de la llamada a la API ListFindings
. Por ejemplo, para consultar todos los recursos en los que
key_a != value_a
, usa el siguiente código:
gcloud
gcloud scc findings list PARENT/PARENT_ID \ --location=LOCATION \ --source=SOURCE_ID \ --filter=FILTER
PARENT
: el nivel de la jerarquía de recursos en el que se encuentra el hallazgo. Usaorganizations
,folders
oprojects
.PARENT_ID
: el ID numérico de la organización, la carpeta o el proyecto principal, o el ID alfanumérico del proyecto principal.LOCATION
: la ubicación de Security Command Center en la que se deben enumerar las detecciones. Si la residencia de datos está habilitada, usaeu
,sa
ous
. De lo contrario, usa el valorglobal
.SOURCE_ID
: el ID de la fuente.FILTER
: el filtro que se va a aplicar a los resultados. Por ejemplo, para excluir los resultados con la marca de seguridadkey_a=value_a
, usa"NOT security_marks.marks.key_a=\"value_a\""
.
Go
Java
Node.js
Python
Siguientes pasos
- Consulta más información sobre los resultados de las fichas y los recursos de las fichas.