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.
Solo puedes agregar o actualizar marcas de seguridad en los recursos compatibles con Security Command Center. Para obtener una lista de los activos que admite Security Command Center, consulta Tipos de activos 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. Para obtener información sobre cómo 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 ejemplo, se muestra cómo agregar marcas de seguridad para los 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
: Es el ID numérico de la organización, la carpeta o el proyecto principal, o bien el ID alfanumérico del proyecto principal.LOCATION
: Es la ubicación de Security Command Center en la que se actualizará una marca de seguridad en un activo. Si la residencia de datos está habilitada, usaeu
,ksa
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
: 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
Consulta 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 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
: Es el ID numérico de la organización, la carpeta o el proyecto principal, o bien el ID alfanumérico del proyecto principal.LOCATION
: Ubicación de Security Command Center en la que se borrará una marca de seguridad de un activo. Si la residencia de datos está habilitada, usaeu
,ksa
ous
. De lo contrario, usa el valorglobal
.UPDATE_MASK
: Es una lista separada por comas de los campos de marca de seguridad que se borrarán del activo, 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 ejemplo, key_a
se actualiza y key_b
se borra.
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
: Es el ID numérico de la organización, la carpeta o el proyecto principal, o bien el ID alfanumérico del proyecto principal.LOCATION
: Ubicación de Security Command Center en la que se actualizarán y borrarán las marcas de seguridad de un activo. Si la residencia de datos está habilitada, usaeu
,ksa
ous
. De lo contrario, usa el valorglobal
.SECURITY_MARKS
: 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
Cómo agregar 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 FINDING_NAME \ --PARENT=PARENT_ID \ --location=LOCATION \ --source=SOURCE_ID \ --security-marks=SECURITY_MARKS \ --update-mask=UPDATE_MASK
Reemplaza lo siguiente:
FINDING_NAME
: Es el hallazgo que se actualizará.PARENT
: Es el nivel de la jerarquía de recursos en el que se encuentra el hallazgo. Usaorganization
,folder
oproject
.PARENT_ID
: Es el ID numérico de la organización, la carpeta o el proyecto principal, o bien el ID alfanumérico del proyecto principal.LOCATION
: la ubicación de Security Command Center en la que se actualizará una marca de seguridad en un hallazgo. Si la residencia de datos está habilitada, usaeu
,ksa
ous
. De lo contrario, usa el valorglobal
.SOURCE_ID
: Es el ID de origen.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
: 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
: Es el ID numérico de la organización, la carpeta o el proyecto principal, o bien el ID alfanumérico del proyecto principal.LOCATION
: Es la ubicación de Security Command Center en la que se enumerarán los hallazgos. Si la residencia de datos está habilitada, usaeu
,ksa
ous
. De lo contrario, 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 para enumerar resultados y enumerar recursos.