Intercala y enruta los registros a nivel de organización y carpeta a destinos compatibles

En este documento, se describe cómo crear receptores agregados. Los receptores agregados te permiten combinar y enrutar los registros que generan los recursos de Google Cloud en tu organización o carpeta a una ubicación centralizada.

Descripción general

Los receptores agregados combinan y enrutan las entradas de registro de los recursos contenidos por una organización o carpeta a un destino.

Si quieres controlar qué registros se pueden consultar en estos recursos o enrutar a través de los receptores de estos recursos, puedes configurar un receptor agregado para que no intercepte ni intercepte:

  • Un receptor agregado sin interceptar enruta los registros a través de receptores en recursos secundarios. Con este receptor, mantienes la visibilidad de los registros en los recursos en los que se generaron. Los receptores que no intercepten no son visibles para los recursos secundarios.

    Por ejemplo, puedes crear un receptor agregado sin intercepción que enrute todas las entradas de registro generadas a partir de las carpetas que contiene una organización a un bucket central de Cloud Storage. Los registros se almacenan en el bucket central de Cloud Storage, así como en los recursos en los que se generaron los registros.

  • Un receptor agregado de intercepción evita que los registros se enruten mediante receptores en recursos secundarios, excepto los receptores de _Required. Este receptor puede ser útil para evitar que se almacenen copias duplicadas de los registros en varios lugares.

    Por ejemplo, considera los registros de auditoría de acceso a los datos, que pueden tener un gran volumen y almacenar varias copias de manera costosa. Si habilitaste los registros de auditoría de acceso a los datos, puedes crear un receptor de interceptación a nivel de carpeta que enrute todos los registros de auditoría de acceso a los datos a un proyecto central para su análisis. Este receptor interceptor también evita que los receptores de recursos secundarios enruten copias de los registros a otros lugares.

    Interceptar los receptores evita que los registros se pasen a través del enrutador de registros de los recursos secundarios, a menos que los registros también coincidan con el receptor _Required. Debido a que los registros se interceptan, los registros no cuentan para métricas basadas en registros ni alertas basadas en registros en los recursos secundarios. Puedes ver los receptores de interceptación en la página Enrutador de registros de los recursos secundarios.

Para obtener información sobre la administración de receptores, consulta Enruta registros a destinos compatibles: Administra receptores.

Puedes crear hasta 200 receptores por organización o carpeta.

Destinos admitidos

Puedes usar receptores agregados sin interceptar para enrutar los registros dentro de las mismas organizaciones y carpetas o entre ellas a los siguientes destinos:

  • Bucket de Cloud Logging: Proporciona almacenamiento en Cloud Logging. Un bucket de registros puede almacenar entradas de registro que reciben varios proyectos de Google Cloud. Puedes combinar tus datos de Cloud Logging con otros si actualizas un bucket de registros para usar el Análisis de registros y, luego, crees un conjunto de datos de BigQuery vinculado. Para obtener información sobre cómo ver las entradas de registro almacenadas en buckets de registros, consulta Descripción general de consultas y vistas de registros y Visualiza los registros enrutados a buckets de Cloud Logging.
  • Conjunto de datos de BigQuery: proporciona almacenamiento de entradas de registro en conjuntos de datos de BigQuery. Puedes usar las capacidades de análisis de macrodatos en las entradas de registro almacenadas. Para combinar tus datos de Cloud Logging con otras fuentes de datos, te recomendamos que actualices tus buckets de registros para usar el Análisis de registros y, luego, crees un conjunto de datos de BigQuery vinculado. Para obtener información sobre cómo ver las entradas de registro enrutadas a BigQuery, consulta Visualiza los registros enrutados a BigQuery.
  • Bucket de Cloud Storage: Ofrece almacenamiento de entradas de registro en Cloud Storage. Las entradas de registro se almacenan como archivos JSON. Para obtener información sobre cómo ver las entradas de registro enrutadas a Cloud Storage, consulta Visualiza los registros enrutados a Cloud Storage.
  • Tema de Pub/Sub: Proporciona compatibilidad con integraciones de terceros. Las entradas de registro se formatean en JSON y, luego, se enrutan a un tema de Pub/Sub. Para obtener información sobre cómo ver las entradas de registro enrutadas a Pub/Sub, consulta Visualiza los registros enrutados a Pub/Sub.
  • Splunk: Proporciona compatibilidad con Splunk. Debes enrutar tus entradas de registro a un tema de Pub/Sub y, luego, suscribirte a ese tema mediante Splunk.
  • Proyecto de Google Cloud: Enruta las entradas de registro a un proyecto de Google Cloud diferente. Cuando enrutas entradas de registro a un proyecto de Google Cloud diferente, el enrutador de registros del proyecto de destino recibe las entradas de registro y las procesa. Los receptores en el proyecto de destino determinan cómo se enrutan las entradas de registro recibidas. Error Reporting puede analizar entradas de registro cuando el proyecto de destino las enruta a un bucket de registros que pertenece al proyecto de destino.
  • Otros recursos: Enruta tus entradas de registro a un destino admitido en un proyecto diferente. Para obtener información sobre las rutas que se deben usar, consulta Formatos de rutas de destino.

Prácticas recomendadas para interceptar receptores

Cuando crees un receptor interceptor, te recomendamos que hagas lo siguiente:

  • Considera si los recursos secundarios necesitan un control independiente del enrutamiento de sus registros. Si un recurso secundario necesita control independiente de ciertos registros, asegúrate de que el receptor interceptor no enrute esos registros.

  • Agrega información de contacto a la descripción del receptor interceptor. Esto puede ser útil si los que administran el receptor interceptor son diferentes de aquellos que administran los proyectos cuyos registros se interceptan.

  • Para probar la configuración del receptor, primero crea un receptor agregado sin interceptar para asegurarte de que se enruten los registros correctos.

Receptores agregados y Controles del servicio de VPC

Las siguientes limitaciones se aplican cuando usas receptores agregados y Controles del servicio de VPC:

  • Los receptores agregados pueden acceder a los datos de los proyectos dentro de un perímetro de servicio. A fin de restringir el acceso de los receptores agregados a los datos dentro de un perímetro, recomendamos usar IAM para administrar los permisos de Logging.

  • Los Controles del servicio de VPC no admiten agregar recursos de carpetas o de organizaciones a los perímetros de servicio. Por lo tanto, no puedes usar los Controles del servicio de VPC para proteger los registros a nivel de carpeta y de organización, incluidos los registros agregados. Para administrar los permisos de Logging a nivel de la organización o de la carpeta, te recomendamos que uses IAM.

  • Si enrutas los registros mediante un receptor a nivel de carpeta o de organización a un recurso que protege un perímetro de servicio, debes agregar una regla de entrada al perímetro de servicio. La regla de entrada debe permitir el acceso al recurso desde la cuenta de servicio que usa el receptor agregado. Para obtener más información, consulta las siguientes páginas:

  • Cuando especificas una política de entrada o salida para un perímetro de servicio, no puedes usar ANY_SERVICE_ACCOUNT ni ANY_USER_ACCOUNT como tipo de identidad cuando usas un receptor de registros para enrutar registros a recursos de Cloud Storage. Sin embargo, puedes usar ANY_IDENTITY como el tipo de identidad.

Antes de comenzar

Antes de crear un receptor, asegúrate de lo siguiente:

  • Tienes una organización o carpeta de Google Cloud con registros que puedes ver en el Explorador de registros.

  • Tienes una de las siguientes funciones de IAM para la organización o carpeta de Google Cloud desde la que enrutas los registros.

    • Propietario (roles/owner)
    • Administrador de Logging (roles/logging.admin)
    • Escritor de configuración de registros (roles/logging.configWriter)

    Los permisos contenidos en estos roles te permiten crear, borrar o modificar receptores. Para obtener información sobre cómo configurar las funciones de IAM, consulta la Guía de control de acceso de Logging.

  • Tienes un recurso en un destino admitido o tienes la capacidad de crear uno.

    El destino de enrutamiento debe crearse antes que el receptor mediante la CLI de Google Cloud, la consola de Google Cloud o las APIs de Google Cloud. Puedes crear el destino en cualquier proyecto de Google Cloud de cualquier organización, pero debes asegurarte de que la cuenta de servicio del receptor tenga permisos para escribir en el destino.

Crea un receptor agregado

Para crear un receptor agregado sin interceptar, crea un receptor en una organización o carpeta de Google Cloud y establece el parámetro includeChildren del receptor como True. Cuando estableces el parámetro includeChildren, el receptor enruta las entradas de registro de la organización o carpeta y (de forma recurrente) desde cualquier carpeta, cuenta de facturación o proyecto de Google Cloud contenido. Para crear un receptor de interceptación, establece los parámetros includeChildren y interceptChildren en True.

Para especificar las entradas de registro que deseas enrutar a tu destino, configura los filtros de inclusión y exclusión del receptor.

A fin de crear un receptor agregado para tu organización o carpeta, haz lo siguiente:

Console

  1. En el panel de navegación de la consola de Google Cloud, selecciona Logging y, luego, Enrutador de registros:

    Ir a Enrutador de registros

  2. Selecciona una organización o carpeta existente.

  3. Selecciona Crear receptor.

  4. En el panel Detalles del receptor, ingresa los detalles siguientes:

    • Nombre del receptor: proporciona un identificador para el receptor; ten en cuenta que después de crear el receptor, no puedes cambiarle el nombre, pero puedes borrarlo y crear uno nuevo.

    • Descripción del receptor (opcional): Describe el propósito o el caso de uso del receptor.

  5. En el panel Destino del receptor, selecciona el servicio y el destino del receptor:

    • Seleccionar el servicio del receptor: Selecciona el servicio al que deseas que se enruten tus registros. Si creas un receptor interceptor, solo puedes seleccionar un proyecto de Google Cloud como destino.

    Según el servicio que selecciones, puedes elegir entre los siguientes destinos:

    • Bucket de Cloud Logging: Selecciona o crea un bucket de Logging. Si creas un bucket de registros, debe estar a nivel de proyecto. No puedes crear un bucket de registros a nivel de organización o de carpeta.
    • Tabla de BigQuery: selecciona o crea el conjunto de datos particular para recibir los registros enrutados. También tienes la opción de usar tablas particionadas.
    • Bucket de Cloud Storage: Selecciona o crea el bucket de Cloud Storage en particular para recibir los registros enrutados.
    • Tema de Pub/Sub: selecciona o crea el tema específico para recibir los registros enrutados.
    • Splunk: Selecciona el tema de Pub/Sub para el servicio de Splunk.
    • Proyecto de Google Cloud: Selecciona el proyecto de Google Cloud para recibir los registros de ruta.

      Por ejemplo, si el destino del receptor es un conjunto de datos de BigQuery, el destino del receptor sería el siguiente:

      bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
      
  6. En el panel Elige registros para incluirlos en el receptor, realiza una de las siguientes acciones:

    • Para crear un receptor agregado sin interceptar, selecciona Incluir los registros transferidos por este recurso y todos los recursos secundarios.

    • Para crear un receptor interceptor, selecciona Interceptar registros transferidos por esta organización y todos los recursos secundarios.

  7. Completa el diálogo ingresando una expresión de filtro en el campo Crea un filtro de inclusión que coincida con las entradas de registro que deseas incluir. Si no estableces un filtro, todos los registros del recurso seleccionado se enrutan al destino.

    Por ejemplo, es posible que desees crear un filtro para enrutar todos los registros de auditoría de acceso a los datos a un solo bucket de Logging. Este filtro se ve de la siguiente manera:

    LOG_ID("cloudaudit.googleapis.com/data_access") OR LOG_ID("externalaudit.googleapis.com/data_access")
    

    Ten en cuenta que la longitud de un filtro no puede superar los 20,000 caracteres.

  8. Opcional: Para verificar que ingresaste el filtro correcto, selecciona Obtener vista previa de los registros. Esto abrirá el Explorador de registros en una pestaña nueva con el filtro prepropagado.

  9. De forma opcional, en el panel Elige registros para excluir del receptor, haz lo siguiente:

    1. En el campo Nombre del filtro de exclusión, ingresa un nombre.

    2. En el campo Crea un filtro de exclusión, ingresa una expresión de filtro que coincida con las entradas de registro que deseas excluir. También puedes usar la función sample para seleccionar una parte de las entradas de registro que deseas excluir.

      Por ejemplo, para excluir los registros de un proyecto específico para que no se enruten al destino, agrega el siguiente filtro de exclusión:

      logName:projects/PROJECT_ID
      

      Para excluir los registros de varios proyectos, usa el operador lógico OR para unir cláusulas logName.

    Puedes crear hasta 50 filtros de exclusión por receptor. Ten en cuenta que la longitud de un filtro no puede superar los 20,000 caracteres.

  10. Selecciona Crear receptor.

API

Para crear un receptor, usa organizations.sinks.create o folders.sinks.create en la API de Logging. Prepara los argumentos del método de la siguiente manera:

  1. Establece el parámetro parent para que sea la organización o carpeta de Google Cloud en la que se crea el receptor. El superior debe ser uno de los siguientes:

    • organizations/ORGANIZATION_ID
    • folders/FOLDER_ID
  2. En el objeto LogSink en el cuerpo de la solicitud del método, realiza una de las siguientes acciones:

    • Para crear un receptor agregado sin interceptar, establece includeChildren en True.

    • Para crear un receptor interceptor, establece los parámetros includeChildren y interceptChildren en True.

  3. Establece la propiedad filter para que coincida con las entradas de registro que deseas incluir. Ten en cuenta que la longitud de un filtro no puede superar los 20,000 caracteres.

    Para ver algunos ejemplos de filtros útiles, consulta Crea filtros para receptores agregados.

  4. Establece los campos LogSink restantes como lo harías para cualquier otro receptor. Para obtener más información, consulta Enruta registros a destinos compatibles.

  5. Llama a organizations.sinks.create o folders.sinks.create para crear el receptor.

  6. Recupera el nombre de la cuenta de servicio del campo writer_identity que muestra la respuesta de la API.

  7. Otorga permiso a esa cuenta de servicio para escribir en el destino del receptor.

    Si no tienes permiso para realizar ese cambio en el destino del receptor, envía el nombre de la cuenta de servicio a alguien que pueda realizarlo por ti.

    Si quieres obtener más información sobre cómo otorgar permisos a cuentas de servicio para recursos, consulta la sección sobre cómo configurar permisos de destino.

gcloud

Para crear un receptor agregado, usa el comando logging sinks create. Para crear un receptor agregado que no intercepte, especifica la marca --include-children. Para crear un receptor interceptor, especifica las marcas --include-children y --intercept-children.

  1. Proporciona el nombre del receptor, el destino del receptor, el filtro y el ID de la organización o carpeta desde la que enrutas los registros: en el siguiente ejemplo, se crea un receptor agregado sin interceptar:

    gcloud logging sinks create SINK_NAME \
      SINK_DESTINATION  --include-children \
      --folder=FOLDER_ID --log-filter="LOG_FILTER"
    

    Por ejemplo, si creas un receptor agregado a nivel de carpeta y cuyo destino es un conjunto de datos de BigQuery, tu comando podría verse así:

    gcloud logging sinks create SINK_NAME \
      bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID --include-children \
      --folder=FOLDER_ID --log-filter="logName:activity"
    

    Notas:

    • Para crear un receptor a nivel de la organización, reemplaza --folder=FOLDER_ID por --organization=ORGANIZATION_ID.

    • Para que el receptor incluya todos los recursos dentro de la organización, se debe establecer la marca --include-children, incluso cuando la marca --organizationse pasa a create. Cuando se establece como false (la opción predeterminada), un receptor solo exporta los registros del recurso de host.

    • Para ver algunos ejemplos de filtros útiles, consulta Crea filtros para receptores agregados.

  2. Recupera el nombre de la cuenta de servicio usado para crear el receptor del resultado del comando.

  3. Otorga permiso a esa cuenta de servicio para escribir en el destino del receptor.

    Si no tienes permiso para realizar ese cambio en el destino del receptor, envía el nombre de la cuenta de servicio a alguien que pueda realizarlo por ti.

    Si quieres obtener más información sobre cómo otorgar permisos a cuentas de servicio para recursos, consulta la sección sobre cómo configurar permisos de destino.

Los cambios realizados en un receptor pueden tardar unos minutos en aplicarse.

Crea filtros para receptores agregados

Como cualquier receptor, tu receptor agregado contiene un filtro que selecciona entradas de registro individuales. Si quieres ver ejemplos de filtros que puedes usar para crear tu receptor agregado, consulta Ejemplos de consultas con el Explorador de registros.

A continuación, se presentan algunos ejemplos de comparaciones de consultas que son útiles cuando se usa la función de receptores agregados. Algunos ejemplos usan la siguiente notación:

  • : es el operador de la substring. No sustituyas el operador =.
  • ...… representa cualquier comparación de filtro adicional.
  • Las variables se indican con texto de color. Reemplázalas por valores válidos.

Ten en cuenta que la longitud de un filtro no puede superar los 20,000 caracteres.

Para obtener más detalles sobre la sintaxis de filtrado, consulta Lenguaje de consulta de Logging.

Selecciona la fuente del registro

En el caso de un receptor agregado, para cada recurso secundario de la organización o carpeta, los filtros de inclusión y exclusión del receptor se aplican a cada entrada de registro que se envía al recurso secundario. Se enruta una entrada de registro que coincide con el filtro de inclusión y que no está excluida.

Si quieres que el receptor enrute los registros de todos los recursos secundarios, no especifiques un proyecto, una carpeta o una organización en los filtros de inclusión y exclusión de tu receptor. Por ejemplo, supongamos que configuras un receptor agregado para una organización con el siguiente filtro:

resource.type="gce_instance"

Con el filtro anterior, el receptor agregado enruta al destino los registros con un tipo de recurso de instancias de Compute Engine que se escriben en cualquier elemento secundario de esa organización.

Sin embargo, puede haber situaciones en las que quieras usar un receptor agregado para enrutar registros solo desde recursos secundarios específicos. Por ejemplo, por motivos de cumplimiento, es posible que desees almacenar los registros de auditoría de carpetas o proyectos específicos en su propio bucket de Cloud Storage. En estas situaciones, configura tu filtro de inclusión para especificar cada recurso secundario cuyos registros quieres enrutar. Si deseas enrutar registros de una carpeta y todos los proyectos dentro de ella, el filtro debe enumerar la carpeta y cada uno de los proyectos que contiene esa carpeta, y también unir las sentencias con una cláusula OR.

Los siguientes filtros restringen los registros a organizaciones, carpetas o proyectos específicos de Google Cloud:

logName:"projects/PROJECT_ID/logs/" AND ... 
logName:("projects/PROJECT_A_ID/logs/" OR "projects/PROJECT_B_ID/logs/") AND ... 
logName:"folders/FOLDER_ID/logs/" AND ... 
logName:"organizations/ORGANIZATION_ID/logs/" AND ... 

Por ejemplo, para enrutar solo los registros escritos en instancias de Compute Engine que se escribieron en la carpeta my-folder, usa el siguiente filtro:

logName:"folders/my-folder/logs/" AND resource.type="gce_instance"

Con el filtro anterior, los registros escritos en cualquier recurso que no sea my-folder, incluidos los registros escritos en proyectos de Google Cloud que son secundarios de my-folder, no se enrutan al destino.

Selecciona el recurso supervisado

Para enrutar registros de solo un recurso supervisado específico en un proyecto de Google Cloud, usa varias comparaciones para especificar el recurso con exactitud:

logName:"projects/PROJECT_ID/logs" AND
resource.type=RESOURCE_TYPE AND
resource.labels.instance_id=INSTANCE_ID

Para obtener una lista de tipos de recursos, consulta Tipos de recursos supervisados.

Selecciona una muestra de entradas de registro

Para enrutar una muestra aleatoria de entradas de registro, agrega la función integrada sample. Por ejemplo, para enrutar solo el diez por ciento de las entradas de registro que coinciden con tu filtro actual, usa esta adición:

sample(insertId, 0.10) AND ...

Para obtener más información, consulta la función sample.

Para obtener más información sobre los filtros de Cloud Logging, consulta Lenguaje de consulta de Logging.

Configura permisos de destino

En esta sección, se describe cómo otorgar a Logging los permisos de Identity and Access Management para escribir los registros en el destino de tu receptor. Para obtener la lista completa de las funciones y los permisos de Logging, consulta Control de acceso.

Cuando creas o actualizas un receptor que enruta los registros a cualquier destino que no sea un bucket de registros en el proyecto actual, se requiere una cuenta de servicio para ese receptor. Logging crea y administra automáticamente la cuenta de servicio por ti:

  • A partir del 22 de mayo de 2023, cuando creas un receptor y no existe una cuenta de servicio para el recurso subyacente, Logging crea la cuenta de servicio. Logging usa la misma cuenta de servicio para todos los receptores en el recurso subyacente. Los recursos pueden ser un proyecto de Google Cloud, una organización, una carpeta o una cuenta de facturación.
  • Antes del 22 de mayo de 2023, Logging creó una cuenta de servicio para cada receptor. A partir del 22 de mayo de 2023, Logging usa una cuenta de servicio compartida para todos los receptores del recurso subyacente.

La identidad de escritor de un receptor es el identificador de la cuenta de servicio asociada con ese receptor. Todos los receptores tienen una identidad de escritor, a menos que escriban en un bucket de registros del proyecto actual de Google Cloud.

Para enrutar registros a un recurso protegido por un perímetro de servicio, debes agregar la cuenta de servicio de ese receptor a un nivel de acceso y, luego, asignarla al perímetro de servicio de destino. Esto no es necesario para los receptores no agregados. Para obtener más información, consulta Controles del servicio de VPC: Cloud Logging.

A fin de establecer permisos para que tu receptor enrute a su destino, haz lo siguiente:

Console

  1. Para obtener información sobre la cuenta de servicio de tu receptor, haz lo siguiente:

    1. En el panel de navegación de la consola de Google Cloud, selecciona Logging y, luego, Enrutador de registros:

      Ir a Enrutador de registros

    2. Selecciona Menú y, luego, Ver detalles del receptor.

      En el panel Detalles del receptor, el campo writerIdentity contiene la identidad de la cuenta de servicio. La cadena serviceAccount: forma parte de la identidad de la cuenta de servicio. Por ejemplo:

      serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
      
  2. En el proyecto de destino, otorga a la identidad de escritor el rol necesario para que la cuenta de servicio escriba en el destino. Para otorgar un rol a una principal, debes tener el rol Propietario (roles/owner):

    • Para los destinos de Cloud Storage, agrega la identidad de escritor del receptor como una principal mediante la IAM y, luego, otórgale el rol de creador de objetos de almacenamiento (roles/storage.objectCreator).
    • Para los destinos de BigQuery, agrega la identidad de escritor del receptor como una principal mediante la IAM y, luego, otórgale el rol de editor de datos de BigQuery (roles/bigquery.dataEditor).
    • Para los destinos de Pub/Sub, incluido Splunk, agrega la identidad de escritor del receptor como una principal mediante la IAM y, luego, otórgale el rol de publicador de Pub/Sub (roles/pubsub.publisher).
    • Para los destinos de buckets de Logging en diferentes proyectos de Google Cloud, agrega la identidad de escritor del receptor como una principal mediante la IAM y, luego, otórgale el rol de escritor del bucket de registros (roles/logging.bucketWriter).
    • Para los destinos de los proyectos de Google Cloud, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de escritor de registros (roles/logging.logWriter). Específicamente, una principal necesita el permiso logging.logEntries.route.
    Si no tienes acceso de Propietario al destino del receptor, pídele a un propietario del proyecto que agregue la identidad de escritor como principal.

API

  1. Para obtener información sobre la cuenta de servicio de tu receptor, llama al método de la API organizations.sinks.get o folders.sinks.get.

    El campo writerIdentity contiene la identidad de la cuenta de servicio. La cadena serviceAccount: forma parte de la identidad de la cuenta de servicio. Por ejemplo:

    serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
    
  2. En el proyecto de destino, otorga a la identidad de escritor el rol necesario para que la cuenta de servicio escriba en el destino. Para otorgar un rol a una principal, debes tener el rol Propietario (roles/owner):

    • Para los destinos de Cloud Storage, agrega la identidad de escritor del receptor como una principal mediante la IAM y, luego, otórgale el rol de creador de objetos de almacenamiento (roles/storage.objectCreator).
    • Para los destinos de BigQuery, agrega la identidad de escritor del receptor como una principal mediante la IAM y, luego, otórgale el rol de editor de datos de BigQuery (roles/bigquery.dataEditor).
    • Para los destinos de Pub/Sub, incluido Splunk, agrega la identidad de escritor del receptor como una principal mediante la IAM y, luego, otórgale el rol de publicador de Pub/Sub (roles/pubsub.publisher).
    • Para los destinos de buckets de Logging en diferentes proyectos de Google Cloud, agrega la identidad de escritor del receptor como una principal mediante la IAM y, luego, otórgale el rol de escritor del bucket de registros (roles/logging.bucketWriter).
    • Para los destinos de los proyectos de Google Cloud, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de escritor de registros (roles/logging.logWriter). Específicamente, una principal necesita el permiso logging.logEntries.route.
    Si no tienes acceso de Propietario al destino del receptor, pídele a un propietario del proyecto que agregue la identidad de escritor como principal.

gcloud

  1. Para obtener información sobre la cuenta de servicio de tu receptor, ejecuta el siguiente comando:

    gcloud logging sinks describe SINK_NAME
    

    El campo writerIdentity contiene la identidad de la cuenta de servicio. La cadena serviceAccount: forma parte de la identidad de la cuenta de servicio. Por ejemplo:

    serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
    
  2. En el proyecto de destino, otorga a la identidad de escritor el rol necesario para que la cuenta de servicio escriba en el destino. Para otorgar un rol a una principal, debes tener el rol Propietario (roles/owner):

    • Para los destinos de Cloud Storage, agrega la identidad de escritor del receptor como una principal mediante la IAM y, luego, otórgale el rol de creador de objetos de almacenamiento (roles/storage.objectCreator).
    • Para los destinos de BigQuery, agrega la identidad de escritor del receptor como una principal mediante la IAM y, luego, otórgale el rol de editor de datos de BigQuery (roles/bigquery.dataEditor).
    • Para los destinos de Pub/Sub, incluido Splunk, agrega la identidad de escritor del receptor como una principal mediante la IAM y, luego, otórgale el rol de publicador de Pub/Sub (roles/pubsub.publisher).
    • Para los destinos de buckets de Logging en diferentes proyectos de Google Cloud, agrega la identidad de escritor del receptor como una principal mediante la IAM y, luego, otórgale el rol de escritor del bucket de registros (roles/logging.bucketWriter).
    • Para los destinos de los proyectos de Google Cloud, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de escritor de registros (roles/logging.logWriter). Específicamente, una principal necesita el permiso logging.logEntries.route.
    Si no tienes acceso de Propietario al destino del receptor, pídele a un propietario del proyecto que agregue la identidad de escritor como principal.

¿Qué sigue?