En esta guía, se describe cómo usar la API de Security Command Center para administrar las marcas de seguridad. Las marcas de seguridad, o “marcas”, son anotaciones personalizables sobre los elementos o resultados en Security Command Center que te permiten agregar tu propio contexto empresarial a estos objetos.
Puedes agregar o actualizar marcas de seguridad solo en los recursos compatibles con Security Command Center. Para obtener una lista de los recursos que admite Security Command Center, consulta Tipos de recursos admitidos en Security Command Center.
Antes de comenzar
Antes de poder trabajar con marcas de seguridad, debes configurar una cuenta de servicio y un SDK.
A fin de agregar o cambiar marcas de seguridad, debes tener una función de administración de identidades y accesos que incluya permisos para el tipo de marca que desees usar:
- Marcas del recurso: escritor de marcas de seguridad de recursos,
securitycenter.assetSecurityMarksWriter
- Marcas de los 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 Control de acceso. Si deseas obtener más información para usar las marcas de seguridad de manera eficaz, consulta Usa marcas de seguridad de Security Command Center.
Agrega o actualiza las marcas de seguridad de los activos
Cuando usas la API de Security Command Center, agregar y actualizar marcas de seguridad es la misma operación. En el siguiente ejemplo, se muestra cómo agregar marcas de seguridad para dos pares clave-valor (key_a, value_a)
y (key_b, value_b)
.
En el siguiente código, se usan máscaras de campo para garantizar que solo se actualicen esos valores. Si no se proporcionan máscaras de campo, todas las marcas de seguridad se borran antes de agregar las claves y los valores dados.
gcloud
gcloud scc assets update-marks ASSET_ID \ --PARENT=PARENT_ID \ --location=LOCATION \ --security-marks=SECURITY_MARKS \ --update-mask=UPDATE_MASK
Reemplaza lo siguiente:
ASSET_ID
: Es el recurso que se actualizará.PARENT
: Es el nivel de la jerarquía de recursos en el que se encuentra el activo. Usaorganization
,folder
oproject
.PARENT_ID
: El ID numérico de la organización, la carpeta o el proyecto superior, o el ID alfanumérico del proyecto superior.LOCATION
: Si la residencia de datos está habilitada, la ubicación de Security Command Center en la que se actualizará una marca de seguridad en un recurso. Si la residencia de datos no está habilitada, usa el valorglobal
.SECURITY_MARKS
: Son 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
: Es una lista separada por comas de los campos de marca de seguridad que se actualizarán para el activo, por ejemplo,marks.key_a,marks.key_b
.
Go
Python
Lee Administra políticas para obtener información sobre las marcas específicas de los recursos para los detectores de Security Health Analytics.
Elimina marcas de seguridad en elementos
La eliminación de las marcas de seguridad específicas se realiza de forma similar a fin de agregarlas o actualizarlas. En particular, llama a la actualización con una máscara de campo, pero sin cualquier valor correspondiente. En el siguiente ejemplo, se borran las marcas de seguridad con 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
: Es el recurso que se actualizará.PARENT
: Es el nivel de la jerarquía de recursos en el que se encuentra el activo. Usaorganization
,folder
oproject
.PARENT_ID
: El ID numérico de la organización, la carpeta o el proyecto superior, o el ID alfanumérico del proyecto superior.LOCATION
: Si la residencia de datos está habilitada, es la ubicación de Security Command Center en la que se debe borrar una marca de seguridad de un recurso. Si la residencia de datos no está habilitada, usa el valorglobal
.UPDATE_MASK
: Es una lista separada por comas de campos de marca de seguridad que se borrarán del recurso, por ejemplo,marks.key_a,marks.key_b
.
Node.js
Python
Agrega y borra marcas de seguridad en la misma solicitud
La técnica para agregar y actualizar las marcas de seguridad y borrar las marcas de seguridad se puede combinar en la misma solicitud. En el siguiente ejemplo, key_a
se actualiza mientras se borra key_b
.
gcloud
gcloud scc assets update-marks ASSET_ID \ --PARENT=PARENT_ID \ --location=LOCATION \ --update-mask=UPDATE_MASK
ASSET_ID
: Es el recurso que se actualizará.PARENT
: Es el nivel de la jerarquía de recursos en el que se encuentra el activo. Usaorganization
,folder
oproject
.PARENT_ID
: El ID numérico de la organización, la carpeta o el proyecto superior, o el ID alfanumérico del proyecto superior.LOCATION
: Si la residencia de datos está habilitada, es la ubicación de Security Command Center en la que se deben actualizar y borrar las marcas de seguridad de un recurso. Si la residencia de datos no está habilitada, usa el valorglobal
.SECURITY_MARKS
: Son pares clave-valor separados por comas que representan las marcas de seguridad que deseas actualizar, por ejemplo,key_a=value_a
. Omite las marcas de seguridad que deseas borrar.UPDATE_MASK
: Es una lista separada por comas de los campos de marca de seguridad que se actualizarán o borrarán, por ejemplo,marks.key_a,marks.key_b
.
Node.js
Python
Agrega marcas de seguridad a los resultados
Agregar, actualizar y borrar marcas de seguridad de los resultados sigue el mismo proceso que actualizar las marcas de seguridad en los elementos. El único cambio 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 búsqueda.
Por ejemplo, para actualizar las marcas de seguridad en un resultado, usa el siguiente código:
gcloud
gcloud scc findings update-marks \ PARENT/PARENT_ID/sources/SOURCE_ID/locations/LOCATION/findings/FINDING_NAME \ --security-marks=SECURITY_MARKS \ --update-mask=UPDATE_MASK
Reemplaza lo siguiente:
PARENT
: Es 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 superior, o el ID alfanumérico del proyecto superior.SOURCE_ID
: Es el ID de origen.LOCATION
: Si la residencia de datos está habilitada, es la ubicación de Security Command Center en la que se debe actualizar una marca de seguridad en un resultado. Si la residencia de datos no está habilitada, usa el valorglobal
.FINDING_NAME
: Es el hallazgo que se actualizará.SECURITY_MARKS
: Son 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
: Es una lista separada por comas de los campos de marca de seguridad que se actualizarán para el activo, 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 por día) y no en tiempo real. Puede haber un retraso de 12 a 24 horas antes de que se procesen las marcas de seguridad y se apliquen las políticas de aplicación que resuelven o vuelven a abrir los resultados.
Enumera elementos con filtros de marcas de seguridad
Después de establecer las marcas de seguridad en un recurso, se pueden usar en el argumento del filtro para la llamada a la API ListAssets
. Por ejemplo, para consultar todos los elementos en los que 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
Enumera los resultados con los filtros de marcas de seguridad
Después de establecer las marcas de seguridad en un resultado, se pueden usar en el argumento del filtro a la llamada a la API ListFindings
. Por ejemplo, para consultar todos los elementos 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
: Es 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 superior, o el ID alfanumérico del proyecto superior.LOCATION
: Si la residencia de datos está habilitada, la ubicación de Security Command Center en la que se enumerarán los resultados. Si la residencia de datos no está habilitada, usa el valorglobal
.SOURCE_ID
: Es el ID de origen.FILTER
: Es el filtro que se 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
¿Qué sigue?
- Obtén más información sobre cómo enumerar resultados y cómo enumerar recursos.