Integra Cloud Asset Inventory con Google SecOps
En este documento, se explica cómo integrar Cloud Asset Inventory con Google Security Operations (Google SecOps).
Versión de integración: 12.0
En la plataforma de SecOps de Google, la integración de Cloud Asset Inventory se llama Google Cloud Asset Inventory.
Antes de comenzar
Para usar la integración, necesitas un rol de Identity and Access Management (IAM) y unaGoogle Cloud cuenta de servicio.
Crea y configura un rol de IAM personalizado
Para crear un rol de IAM personalizado y configurar un permiso específico para él, completa los siguientes pasos:
En la consola de Google Cloud , ve a la página Roles de IAM.
Haz clic en Crear rol para crear un rol personalizado con los permisos necesarios para la integración.
Para un nuevo rol personalizado, proporciona el Título, la Descripción y un ID único.
Establece la etapa de lanzamiento del rol en Disponibilidad general.
Agrega el siguiente permiso al rol creado:
cloudasset.assets.searchAllResources
Crea y configura una cuenta de servicio
Para integrar Cloud Asset Inventory con Google SecOps, puedes usar una cuenta de servicio existente o crear una nueva. Para obtener orientación sobre cómo crear una cuenta de servicio, consulta Crea cuentas de servicio.
La integración de Cloud Asset Inventory requiere que le otorgues a tu cuenta de servicio el rol personalizado que creaste en la sección anterior y el rol Cloud Asset Viewer
.
Si no usas un correo electrónico de identidad de cargas de trabajo para configurar la integración, crea una clave de cuenta de servicio en JSON después de crear una cuenta de servicio. Cuando configures los parámetros de integración, deberás proporcionar el contenido completo del archivo de claves JSON descargado.
Por motivos de seguridad, te recomendamos que uses direcciones de correo electrónico de identidades para cargas de trabajo en lugar de claves JSON de cuentas de servicio. Para obtener más información sobre las identidades para cargas de trabajo, consulta Identidades para cargas de trabajo.
Otorga un rol personalizado a una principal existente
Después de otorgar tu nueva función personalizada a un principal seleccionado, este podrá cambiar los permisos de cualquier usuario de tu organización.
Para otorgar el rol personalizado a una principal existente, completa los siguientes pasos:
En la consola de Google Cloud , ve a la página IAM.
En el campo Filtro, pega el valor de Correo electrónico de Workload Identity que usas para la integración de Cloud Asset Inventory y busca la principal existente.
Haz clic en
Editar principal. Se abrirá el cuadro de diálogo Editar acceso a “PROJECT”.En Asignar roles, haz clic en
Agregar otro rol.Selecciona los roles predefinidos para Cloud Asset Inventory.
Haz clic en Guardar.
Parámetros de integración
La integración de Cloud Asset Inventory requiere los siguientes parámetros:
Parámetro | Descripción |
---|---|
API Root |
Obligatorio
Es la raíz de la API de la instancia de Cloud Asset Inventory. El valor predeterminado es |
Organization ID |
Optional
Es el ID de la organización que se usará en la integración de Cloud Asset Inventory. |
Project ID |
Optional Es el ID del proyecto que se usará para la integración de Cloud Asset Inventory. Si no estableces un valor para este parámetro, la integración recupera el ID del proyecto del contenido del archivo JSON proporcionado en el parámetro |
User's Service Account |
Obligatorio
Es el contenido del archivo JSON de la clave de la cuenta de servicio. Puedes configurar este parámetro o el parámetro Para configurar este parámetro, proporciona el contenido completo del archivo JSON de la clave de la cuenta de servicio que descargaste cuando creaste una cuenta de servicio. |
Quota Project ID |
Optional El ID del proyecto Google Cloud que usas para las APIs y la facturación. Google Cloud Este parámetro requiere que otorgues el rol Si no configuras ningún valor para este parámetro, la integración recupera el ID del proyecto de tu cuenta de servicio Google Cloud . |
Workload Identity Email |
Optional Es la dirección de correo electrónico del cliente de tu cuenta de servicio. Puedes configurar este parámetro o el parámetro Para actuar como cuentas de servicio con la federación de identidades para cargas de trabajo, otorga el rol de |
Verify SSL |
Obligatorio
Si se selecciona esta opción, la integración verifica que el certificado SSL para conectarse al servidor de Cloud Asset Inventory sea válido. Esta opción se selecciona de forma predeterminada. |
Si quieres obtener instrucciones detalladas para configurar una integración en Google SecOps, consulta Configura integraciones.
Si es necesario, puedes hacer cambios más adelante. Después de configurar una instancia de integración, puedes usarla en las guías. Para obtener más información sobre cómo configurar y admitir varias instancias, consulta Compatibilidad con varias instancias.
Acciones
Para obtener más información sobre las acciones, consulta Cómo responder a las acciones pendientes de Tu Workdesk y Cómo realizar una acción manual.
Enriquece el recurso
Usa la acción Enrich Resource para enriquecer la información sobre un recurso Google Cloudcon Cloud Asset Inventory.
La acción no se ejecuta en las entidades de Google SecOps.
Entradas de acción
Para configurar la acción Enrich Resource, usa los siguientes parámetros:
Parámetro | Descripción |
---|---|
Resource Names |
Obligatorio
Es una lista separada por comas que contiene los nombres de los recursos para los que se recuperarán los detalles. Para configurar este parámetro, ingresa el nombre completo del recurso de metadatos en el siguiente formato: |
Fields To Return |
Optional
Es una lista de campos separados por comas que se devolverán. El valor predeterminado es Estos son algunos ejemplos de valores:
La acción siempre devuelve el campo También hay una opción para configurar filtros avanzados. Por ejemplo, para devolver una clave específica de |
Resultados de la acción
La acción Enrich Resource proporciona los siguientes resultados:
Tipo de salida de la acción | Disponibilidad |
---|---|
Adjunto del muro de casos | No disponible |
Vínculo al muro de casos | No disponible |
Tabla del muro de casos | No disponible |
Tabla de enriquecimiento | No disponible |
Resultado de JSON | Disponible |
Mensajes de salida | Disponible |
Resultado de secuencia de comandos | Disponible |
Resultado de JSON
En el siguiente ejemplo, se muestra el resultado JSON que se recibe cuando se usa la acción Enrich Resource:
[
{
"Entity": "//iam.googleapis.com/projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT/keys/KEY_ID",
"EntityResult": {
"additionalAttributes": {
"email": "email@example.iam.gserviceaccount.com",
"uniqueId": 123456789
},
"name": "//iam.googleapis.com/projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT/keys/KEY_ID",
"assetType": "iam.googleapis.com/ServiceAccountKey",
"project": "projects/PROJECT",
"displayName": "projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT@PROJECT.iam.gserviceaccount.com/keys/KEY_ID",
"createTime": "2022-05-26T17:35:07Z",
"versionedResources": [
{
"version": "v1",
"resource": {
"keyAlgorithm": "KEY_ALG_RSA_2048",
"keyOrigin": "GOOGLE_PROVIDED",
"keyType": "USER_MANAGED",
"name": "projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT@PROJECT.iam.gserviceaccount.com/keys/KEY_ID",
"validAfterTime": "2022-05-26T17:35:07Z",
"validBeforeTime": "9999-12-31T23:59:59Z"
}
}
],
"organization": "organizations/ORGANIZATION",
"parentFullResourceName": "//iam.googleapis.com/projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT@PROJECT.iam.gserviceaccount.com",
"parentAssetType": "iam.googleapis.com/ServiceAccount"
}
}
]
Mensajes de salida
La acción Enrich Resource puede devolver los siguientes mensajes de salida:
Mensaje de salida | Descripción del mensaje |
---|---|
|
La acción se completó correctamente. |
Error executing action "Enrich resources". Reason:
ERROR_REASON |
No se pudo realizar la acción. Verifica la conexión al servidor, los parámetros de entrada o las credenciales. |
Resultado de secuencia de comandos
En la siguiente tabla, se muestra el valor del resultado de la secuencia de comandos cuando se usa la acción Enrich Resource:
Nombre del resultado de la secuencia de comandos | Valor |
---|---|
is_success |
True o False |
Obtén una instantánea del recurso
Usa la acción Get Resource Snapshot para obtener información sobre el recurso con Cloud Asset Inventory.
Esta acción no se ejecuta en las entidades de Google SecOps.
Entradas de acción
Para configurar la acción Get Resource Snapshot, usa los siguientes parámetros:
Parámetro | Descripción |
---|---|
Resource Names |
Obligatorio Es una lista de recursos separados por comas para los que se recuperarán detalles. Para configurar este parámetro, ingresa el nombre completo del recurso de metadatos en el siguiente formato: |
Fields To Return |
Optional Es una lista de campos separados por comas que se devolverán. Ingresa cada campo en el siguiente formato: assets.FIELD
Estos son algunos ejemplos de valores: La acción siempre devuelve el campo El valor predeterminado es |
Resultados de la acción
La acción Get Resource Snapshot proporciona los siguientes resultados:
Tipo de salida de la acción | Disponibilidad |
---|---|
Adjunto del muro de casos | No disponible |
Vínculo al muro de casos | No disponible |
Tabla del muro de casos | No disponible |
Tabla de enriquecimiento | No disponible |
Resultado de JSON | Disponible |
Mensajes de salida | Disponible |
Resultado de secuencia de comandos | Disponible |
Resultado de JSON
En los siguientes ejemplos, se muestran los resultados JSON que se reciben cuando se usa la acción Get Resource Snapshot:
Resultado de JSON para Google Cloud
[ { "Entity": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/example-instance", "EntityResult": { "window": { "startTime": "2023-08-14T19:43:41.805828Z", "endTime": "2262-04-11T23:47:16.854775807Z" }, "asset": { "name": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/example-instance", "assetType": "compute.googleapis.com/Instance", "resource": { "version": "v1", "discoveryDocumentUri": "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest", "discoveryName": "Instance", "parent": "//cloudresourcemanager.googleapis.com/projects/example-project-id", "data": { "description": "", "serviceAccounts": [ { "email": "user@example.com", "scopes": [ "https://www.googleapis.com/auth/devstorage.read_only", "https://www.googleapis.com/auth/logging.write", "https://www.googleapis.com/auth/monitoring.write", "https://www.googleapis.com/auth/servicecontrol", "https://www.googleapis.com/auth/service.management.readonly", "https://www.googleapis.com/auth/trace.append" ] } ], "lastStartTimestamp": "2022-05-26T01:44:52.756-07:00", "deletionProtection": false, "name": "example-name", "keyRevocationActionType": "NONE_ON_KEY_REVOCATION", "canIpForward": false, "shieldedInstanceIntegrityPolicy": { "updateAutoLearnPolicy": true }, "zone": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a", "resourceStatus": {}, "scheduling": { "onHostMaintenance": "MIGRATE", "preemptible": false, "provisioningModel": "STANDARD", "automaticRestart": true }, "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/machineTypes/e2-micro", "confidentialInstanceConfig": { "enableConfidentialCompute": false }, "selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance", "id": "example-id", "fingerprint": "example-fingerprint", "startRestricted": false, "networkInterfaces": [ { "network": "https://www.googleapis.com/compute/v1/projects/example-project/global/networks/example-network", "stackType": "IPV4_ONLY", "name": "example", "subnetwork": "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/subnetworks/example-network-subnet", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "External NAT", "natIP": "192.0.2.1", "networkTier": "PREMIUM" } ], "fingerprint": "example-fingerprint", "networkIP": "203.0.113.2" } ], "allocationAffinity": { "consumeAllocationType": "ANY_ALLOCATION" }, "labelFingerprint": "example-label", "shieldedInstanceConfig": { "enableSecureBoot": false, "enableVtpm": true, "enableIntegrityMonitoring": true }, "cpuPlatform": "Intel Broadwell", "creationTimestamp": "2022-05-26T01:44:40.323-07:00", "status": "RUNNING", "disks": [ { "guestOsFeatures": [ { "type": "VIRTIO_SCSI_MULTIQUEUE" }, { "type": "SEV_CAPABLE" }, { "type": "UEFI_COMPATIBLE" }, { "type": "GVNIC" } ], "interface": "SCSI", "shieldedInstanceInitialState": { "dbxs": [ { "content": "2gcDBhMRFQAAAAAAAAAAABENAAAAAvEOndK", "fileType": "BIN" } ], "dbx": [ { "fileType": "BIN", "content": "2gcDBhMRFQAAAAAAAAAAABENAAAAAvEOndK" } ] }, "diskSizeGb": "10", "deviceName": "example-device-name", "type": "PERSISTENT", "source": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/disks/example-instance", "boot": true, "licenses": [ "https://www.googleapis.com/compute/v1/projects/example-project/global/licenses" ], "index": 0, "autoDelete": true, "mode": "READ_WRITE" } ], "tags": { "items": [ "http-server" ], "fingerprint": "example-fingerprint" }, "displayDevice": { "enableDisplay": false }, "reservationAffinity": { "consumeReservationType": "ANY_ALLOCATION" } }, "location": "us-central1-a" }, "ancestors": [ "projects/example-project-id", "organizations/example-org-id" ], "updateTime": "2023-08-14T19:43:41.805828Z" } } }, { "Entity": "//iam.googleapis.com/projects/example-project/serviceAccounts/example-account-id", "EntityResult": { "window": { "startTime": "2023-12-22T13:37:50Z", "endTime": "2262-04-11T23:47:16.854775807Z" }, "asset": { "name": "//iam.googleapis.com/projects/example-project/serviceAccounts/example-account-id", "assetType": "iam.googleapis.com/ServiceAccount", "resource": { "version": "v1", "discoveryDocumentUri": "https://iam.googleapis.com/$discovery/rest", "discoveryName": "ServiceAccount", "parent": "//cloudresourcemanager.googleapis.com/projects/example-project-id", "data": { "name": "projects/example-project/serviceAccounts/cloud-asset-inventory-auto@example-project.iam.gserviceaccount.com", "projectId": "example-project", "email": "cloud-asset-inventory-auto@example-project.iam.gserviceaccount.com", "uniqueId": "example-account-id", "displayName": "Cloud Asset Inventory Automation", "oauth2ClientId": "example-account-id" } }, "ancestors": [ "projects/example-project-id", "organizations/example-org-id" ], "updateTime": "2023-12-22T13:37:50Z" } } } ]
Resultado de JSON para AWS
[ { "Entity": "//cloudasset.googleapis.com/organizations/example-org-id/otherCloudConnections/aws/arn:aws:s3:::aps-max-test-bucket", "EntityResult": { "assets": [ { "window": { "startTime": "2024-01-24T17:51:03.412233028Z", "endTime": "2262-04-11T23:47:16.854775807Z" }, "asset": { "name": "//cloudasset.googleapis.com/organizations/example-org-id/otherCloudConnections/aws/arn:aws:s3:::aps-max-test-bucket", "assetType": "cloudasset.googleapis.com/AWS::S3::Bucket", "resource": { "version": "v1", "discoveryDocumentUri": "n/a", "discoveryName": "n/a", "data": { "dataSourceProvider": "AMAZON_WEB_SERVICES", "supplementaryConfigurations": { "PublicAccessBlockConfiguration": { "BlockPublicPolicy": true, "RestrictPublicBuckets": true, "BlockPublicAcls": true, "IgnorePublicAcls": true }, "TagSet": [ { "Key": "my-key2", "Value": "my-value2" }, { "Key": "my-key1", "Value": "my-value1" } ], "ServerSideEncryptionConfiguration": { "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" }, "BucketKeyEnabled": true } ] }, "AccessControlPolicy": { "Grants": [ { "Grantee": { "DisplayName": "example", "ID": "example-id", "Type": "CanonicalUser" }, "Permission": "FULL_CONTROL" } ], "Owner": { "DisplayName": "example", "ID": "example-id" } } }, "configuration": { "Name": "aps-max-test-bucket", "CreationDate": "2023-12-04T15:29:50+00:00" }, "tags": { "my-key2": "my-value2", "my-key1": "my-value1" }, "originalResourceName": "arn:aws:s3:::aps-max-test-bucket", "awsAccount": "arn:aws:organizations::example-id:account/example-account/example-account-id" }, "location": "global" }, "ancestors": [ "organizations/example-org-id" ], "updateTime": "2024-01-24T17:51:03.412233028Z" } } ] } } ]
Mensajes de salida
La acción Get Resource Snapshot puede devolver los siguientes mensajes de salida:
Mensaje de salida | Descripción del mensaje |
---|---|
Successfully returned information about the following resources
using Google Cloud Asset Inventory:
ASSET_IDENTIFIER
|
La acción se completó correctamente. |
Error executing action "Get Resource Snapshot". Reason:
ERROR_REASON |
No se pudo realizar la acción. Verifica la conexión al servidor, los parámetros de entrada o las credenciales. |
Resultado de secuencia de comandos
En la siguiente tabla, se muestra el valor del resultado de la secuencia de comandos cuando se usa la acción Get Resource Snapshot:
Nombre del resultado de la secuencia de comandos | Valor |
---|---|
is_success |
True o False |
Enumera los roles de la cuenta de servicio
Usa la acción List Service Account Roles para enumerar los roles relacionados con la cuenta de servicio Google Cloud con Cloud Asset Inventory.
Esta acción no se ejecuta en las entidades de Google SecOps.
Entradas de acción
Para configurar la acción List Service Account Roles, usa los siguientes parámetros:
Parámetro | Descripción |
---|---|
Service Accounts |
Obligatorio Es una lista separada por comas de las cuentas de servicio para las que se recuperarán detalles. |
Check Roles |
Optional Lista de roles separados por comas que se deben verificar en relación con la cuenta de servicio, como |
Check Permissions |
Optional Lista separada por comas de permisos para verificar en relación con la cuenta de servicio, como |
Expand Permissions |
Optional Si se selecciona, la acción devuelve información sobre todos los permisos únicos relacionados con el recurso. No está seleccionada de forma predeterminada. |
Max Roles To Return |
Obligatorio Es la cantidad de roles relacionados con la cuenta de servicio que se devolverán. El valor predeterminado es 100. |
Max Permissions To Return |
Obligatorio Es la cantidad de permisos relacionados con la cuenta de servicio que se devolverán. |
Resultados de la acción
La acción List Service Account Roles proporciona los siguientes resultados:
Tipo de salida de la acción | Disponibilidad |
---|---|
Adjunto del muro de casos | No disponible |
Vínculo al muro de casos | No disponible |
Tabla del muro de casos | No disponible |
Tabla de enriquecimiento | No disponible |
Resultado de JSON | Disponible |
Mensajes de salida | Disponible |
Resultado de secuencia de comandos | Disponible |
Resultado de JSON
En el siguiente ejemplo, se muestra el resultado JSON que se recibe cuando se usa la acción List Service Account Roles:
{
"roles": ["role1", "role2"],
"unique_permissions": ["permission1", "permission2"]
}
Mensajes de salida
La acción List Service Account Roles puede devolver los siguientes mensajes de salida:
Mensaje de salida | Descripción del mensaje |
---|---|
|
La acción se completó correctamente. |
Error executing action "List Service Account Roles". Reason:
ERROR_REASON |
No se pudo realizar la acción. Verifica la conexión al servidor, los parámetros de entrada o las credenciales. |
Ping
Usa la acción Ping para probar la conectividad a Cloud Asset Inventory.
La acción no se ejecuta en las entidades de Google SecOps.
Entradas de acción
Ninguno
Resultados de la acción
La acción Ping proporciona los siguientes resultados:
Tipo de salida de la acción | Disponibilidad |
---|---|
Adjunto del muro de casos | No disponible |
Vínculo al muro de casos | No disponible |
Tabla del muro de casos | No disponible |
Tabla de enriquecimiento | No disponible |
Resultado de JSON | No disponible |
Mensajes de salida | Disponible |
Resultado de secuencia de comandos | Disponible |
Mensajes de salida
La acción Ping puede devolver los siguientes mensajes de salida:
Mensaje de salida | Descripción del mensaje |
---|---|
Successfully connected to the Google Cloud Asset Inventory
server with the provided connection parameters! |
La acción se completó correctamente. |
Failed to connect to the Google Cloud Asset Inventory server!
|
No se pudo realizar la acción. |
Resultado de secuencia de comandos
En la siguiente tabla, se indica el valor del resultado de la secuencia de comandos cuando se usa la acción Ping:
Nombre del resultado de la secuencia de comandos | Valor |
---|---|
is_success |
True o False |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.