Integra Atlassian Confluence Server con Google SecOps

En este documento, se describe cómo integrar Atlassian Confluence Server con Google Security Operations (Google SecOps).

Versión de la integración: 3.0

Requisitos previos

Para autenticarte en Confluence Server, elige una de las siguientes opciones:

  • El nombre de usuario y la contraseña de una cuenta exclusiva
  • Es el token de acceso personal (PAT).

Si se proporcionan ambas opciones de autenticación para la integración, el PAT tiene prioridad sobre el nombre de usuario y la contraseña.

La autenticación basada en nombre de usuario y contraseña requiere la creación de una cuenta dedicada que se usará para la integración.
La autenticación basada en el token de acceso requiere configurar los permisos de la cuenta. Cuando se cree, la nueva PAT corresponderá al nivel de permisos actual de la cuenta.

Para crear un token, sigue estos pasos:

  1. En Confluence, ve a Cuenta > Configuración de la cuenta > Tokens de acceso personal.
  2. Selecciona Crear token.
  3. Asigna un nombre al token que crearás.
  4. (Opcional) Para mayor seguridad, puedes configurar tu token para que venza automáticamente después de una cantidad determinada de días.
  5. Haz clic en Crear.

Parámetros de integración

La integración requiere los siguientes parámetros:

Nombre del parámetro Tipo Valor predeterminado Es obligatorio. Descripción
Raíz de la API String https://ip_address Verdadero Especifica la raíz de la API del servidor de Confluence a la que se conectará.
Nombre de usuario String N/A Falso Especifica un nombre de usuario para la conexión. La integración admite la autenticación con nombre de usuario y contraseña, o con un token de acceso personal.
Contraseña Contraseña N/A Falso Especifica una contraseña para usar en la conexión. La integración admite la autenticación con nombre de usuario y contraseña, o con un token de acceso personal.
Token de acceso personal Contraseña N/A Falso Especifica un token para usar en la conexión. La integración admite la autenticación con nombre de usuario y contraseña, o con un token de acceso personal.
Verificar SSL Casilla de verificación Casilla de verificación marcada Falso Si está habilitado, se valida el certificado configurado para la raíz de la API.

Si quieres obtener instrucciones 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 desde Tu escritorio y Cómo realizar una acción manual.

Ping

Probar la conectividad

Parámetros

N/A

Fecha de ejecución

La acción no se está ejecutando en las entidades.

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
is_success Verdadero/Falso is_success:False

Si la acción se realiza correctamente (hay un JSON en la respuesta y la respuesta del servidor es 200), is_success debe establecerse en True. En caso contrario, False.

Muro de casos
Tipo de resultado Valor/Descripción Tipo (entidad/general)
Mensaje de salida* La acción no debe fallar ni detener la ejecución de una guía:
  • Si la conexión se realiza correctamente:
    print "Successfully connected to the Atlassian Confluence Server instance with the provided connection parameters!"
  • Si se proporcionan el nombre de usuario, la contraseña y el PAT:
    "Se proporcionaron el nombre de usuario, la contraseña y el token de acceso personal para la integración. Se usará el token de acceso personal para conectarse".

La acción debería fallar y detener la ejecución de la guía:
  • Si no se proporcionan ni el par (nombre de usuario y contraseña) ni el PAT:
    imprime "No se pudo conectar al servidor de Atlassian Confluence. Se espera un nombre de usuario y una contraseña, o bien un token de acceso personal para conectarse".
  • Si se produce un error crítico, como credenciales incorrectas o pérdida de conectividad:
    Imprime "No se pudo conectar a la instancia de Atlassian Confluence Server. Error is {0}".format(exception.stacktrace)
General

Enumerar páginas

Enumera las páginas disponibles en la instancia de Atlassian Confluence Server según los criterios proporcionados.

Parámetros

Nombre del parámetro Tipo Valor predeterminado Es obligatorio. Descripción
Clave de filtro DDL Selecciona uno

Valores posibles del DDL:
  • Título
  • Nombre del espacio
  • Estado
Falso Especifica la clave que se debe usar para filtrar páginas.
Lógica de filtro DDL Not Specified

Valores posibles del DDL:
  • No especificado
  • Igual
  • Contiene
Falso Especifica qué lógica de filtro se debe aplicar. La lógica de filtrado funciona según el valor proporcionado en el parámetro Filter Key.
Valor del filtro String N/A Falso Especifica qué valor se debe usar en el filtro.
Si se selecciona Equal, la acción intenta encontrar la coincidencia exacta entre los resultados.
Si se selecciona Contains, la acción intenta encontrar resultados que contengan esa subcadena.
Si no se proporciona nada en este parámetro, no se aplicará el filtro.
La lógica de filtrado funciona según el valor proporcionado en el parámetro Filter Key.
Cantidad máxima de registros que se pueden devolver Int 50 Falso Especifica cuántos registros se devolverán.
Si no se proporciona nada, la acción devuelve 50 registros.

Fecha de ejecución

La acción no se está ejecutando en las entidades.

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
is_success Verdadero/Falso is_success:False

Si la acción se ejecuta correctamente (no se muestran errores y la respuesta del servidor es 200 OK), is_success debe establecerse en True.

Resultado de JSON
{
   "results": [
       {
           "id": "PAGE_ID",
           "type": "page",
           "status": "current",
           "title": "Tell people what you think in a comment (step 8 of 9)",
           "space": {
               "id": 131073,
               "key": "ds",
               "name": "Demonstration Space",
               "type": "global",
               "_links": {
                   "webui": "/display/ds",
                   "self": "http://192.0.2.45:8090/rest/api/space/ds"
               },
               "_expandable": {
                   "metadata": "",
                   "icon": "",
                   "description": "",
                   "retentionPolicy": "",
                   "homepage": "/rest/api/content/PAGE_ID"
               }
           },
           "extensions": {
               "position": 7
           },
           "_links": {
               "webui": "/pages/viewpage.action?pageId=PAGE_ID",
               "edit": "/pages/resumedraft.action?draftId=DRAFT_ID",
               "tinyui": "/x/AYAB",
               "self": "http://192.0.2.45:8090/rest/api/content/PAGE_ID"
           },
           "_expandable": {
               "container": "/rest/api/space/ds",
               "metadata": "",
               "operations": "",
               "children": "/rest/api/content/PAGE_ID/child",
               "restrictions": "/rest/api/content/PAGE_ID/restriction/byOperation",
               "history": "/rest/api/content/PAGE_ID/history",
               "ancestors": "",
               "body": "",
               "version": "",
               "descendants": "/rest/api/content/PAGE_ID/descendant"
           }
       },
       ...
   ],
   "start": 0,
   "limit": 5,
   "size": 5,
   "_links": {
       "self": "http://192.0.2.45:8090/rest/api/content?expand=space",
       "next": "/rest/api/content?expand=space&limit=5&start=5",
       "base": "http://192.0.2.45:8090",
       "context": ""
   }
}
Muro de casos
Tipo de resultado Valor/Descripción Tipo (entidad/general)
Mensaje de salida* La acción no debe fallar ni detener la ejecución de una guía:

  • Si hay datos disponibles(is_success = true):
print "Successfully found pages for the provided criteria in Atlassian Confluence Server".

  • Si los datos no están disponibles (is_success=false)
print "No se encontraron páginas para los criterios proporcionados en Atlassian Confluence Server"

  • Si "Filter Value" está vacío (is_success=true):
No se aplicó el filtro porque el parámetro "Valor del filtro" tiene un valor vacío.

La acción debería fallar y detener la ejecución de la guía:

  • Si la clave del filtro es igual a "Select One" y la lógica del filtro es "Equal" o "Contains":
Se produjo un error al ejecutar la acción "{action name}". Motivo: Debes seleccionar un campo del parámetro Filter Key.

  • Si se proporciona un valor no válido para la cantidad máxima de registros que se pueden devolver:
Se produjo un error al ejecutar la acción "{action name}". Motivo: "Se proporcionó un valor no válido para "Registros máximos que se devolverán": <valor proporcionado>. Se debe proporcionar un número positivo".

  • Si se produce un error fatal, como credenciales incorrectas, falta de conexión con el servidor o algún otro problema, haz lo siguiente:
"Error al ejecutar la acción "{action name}". Motivo: {0}''.format(error.Stacktrace)

  • Si no se proporcionan el nombre de usuario y la contraseña, ni el PAT:
print "Failed to connect to Atlassian Confluence Server, expecting either username and password, or personal access token to connect with!"
General
Tabla del muro de casos Nombre: Páginas de Confluence disponibles
Columnas:
  • ID
  • Título
  • Espacio
  • Estado
  • Creado
General

Obtén la página por ID

Obtiene la página de Atlassian Confluence Server por ID.

Parámetros

Nombre del parámetro Tipo Valor predeterminado Es obligatorio. Descripción
ID de la página String N/A Verdadero Especifica el ID de la página que se devolverá.
Expandir CSV body.storage Falso Especifica el parámetro de expansión para devolver información adicional sobre la página. El parámetro acepta varios valores como una lista separada por comas.
De forma predeterminada, el contenido de la página se recupera con body.storage.

Fecha de ejecución

La acción no se está ejecutando en las entidades.

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
is_success Verdadero/Falso is_success:False

Si la acción se ejecuta correctamente (se devuelve la página y la respuesta del servidor es 200 OK), is_success debe establecerse en True.

Resultado de JSON
{
   "id": "PAGE_ID",
   "type": "page",
   "status": "current",
   "title": "title",
   "body": {
       "storage": {
           "value": "<p>test page</p><p>11</p><p>aa</p><p>aa</p><p>aa</p><p><br /></p><p><br /></p>",
           "representation": "storage",
           "_expandable": {
               "content": "/rest/api/content/PAGE_ID"
           }
       },
       "_expandable": {
           "editor": "",
           "view": "",
           "export_view": "",
           "styled_view": "",
           "anonymous_export_view": ""
       }
   },
   "extensions": {
       "position": "none"
   },
   "_links": {
       "webui": "/display/SIEM/111",
       "edit": "/pages/resumedraft.action?draftId=PAGE_ID&draftShareId=cf8b3a21-8e36-4a83-a696-51fcb4428d1c",
       "tinyui": "/x/TIAB",
       "collection": "/rest/api/content",
       "base": "http://192.0.2.45:8090",
       "context": "",
       "self": "http://192.0.2.45:8090/rest/api/content/PAGE_ID"
   },
   "_expandable": {
       "container": "/rest/api/space/SIEM",
       "metadata": "",
       "operations": "",
       "children": "/rest/api/content/PAGE_ID/child",
       "restrictions": "/rest/api/content/PAGE_ID/restriction/byOperation",
       "history": "/rest/api/content/PAGE_ID/history",
       "ancestors": "",
       "version": "",
       "descendants": "/rest/api/content/PAGE_ID/descendant",
       "space": "/rest/api/space/SIEM"
   }
}
Muro de casos
Tipo de resultado Valor/Descripción Tipo (entidad/general)
Mensaje de salida* La acción no debe fallar ni detener la ejecución de una guía:

  • Si se encuentra la página (is_success = true):
print "Successfully fetched page information with id: <id>"

  • Si los datos no están disponibles (is_success=false):
print "No se encontró el siguiente ID de página en Atlassian Confluence Server: <ID de página>"

La acción debería fallar y detener la ejecución del playbook:

  • Si se produce un error fatal, como credenciales incorrectas, falta de conexión con el servidor o algún otro problema, haz lo siguiente:
"Error executing action "<Action name>". Reason: {0}''.format(error.Stacktrace)

  • Si no se proporcionan el nombre de usuario y la contraseña, ni el PAT:
print "Failed to connect to Atlassian Confluence Server, expecting either username and password, or personal access token to connect with!"
General

Obtener páginas secundarias

Obtiene las páginas secundarias de la página de Atlassian Confluence Server.

Parámetros

Nombre del parámetro Tipo Valor predeterminado Es obligatorio. Descripción
ID de la página String N/A Verdadero Especifica el ID de la página que se devolverá.
Cantidad máxima de registros que se devolverán Int 10 Verdadero Especifica el límite de páginas secundarias que se devolverán.

Fecha de ejecución

La acción no se está ejecutando en las entidades.

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
is_success Verdadero/Falso is_success:False

Si la acción se ejecuta correctamente (se devuelve la página y la respuesta del servidor es 200 OK), is_success debe establecerse en True.

Resultado de JSON
{
   "results": [
       {
           "id": "PAGE_ID",
           "type": "page",
           "status": "current",
           "title": "test child page!",
           "extensions": {
               "position": "none"
           },
           "_links": {
               "webui": "/pages/viewpage.action?pageId=PAGE_ID",
               "edit": "/pages/resumedraft.action?draftId=PAGE_ID&draftShareId=799fd068-5053-4889-9120-c1a3c970fdbd",
               "tinyui": "/x/T4AB",
               "self": "http://192.0.2.45:8090/rest/api/content/PAGE_ID"
           },
           "_expandable": {
               "container": "/rest/api/space/SIEM",
               "metadata": "",
               "operations": "",
               "children": "/rest/api/content/PAGE_ID/child",
               "restrictions": "/rest/api/content/PAGE_ID/restriction/byOperation",
               "history": "/rest/api/content/PAGE_ID/history",
               "ancestors": "",
               "body": "",
               "version": "",
               "descendants": "/rest/api/content/PAGE_ID/descendant",
               "space": "/rest/api/space/SIEM"
           }
       }
   ],
   "start": 0,
   "limit": 1,
   "size": 1,
   "_links": {
       "self": "http://192.0.2.45:8090/rest/api/content/PAGE_ID/child/page",
       "base": "http://192.0.2.45:8090",
       "context": ""
   }
}
Muro de casos
Tipo de resultado Valor/Descripción Tipo (entidad/general)
Mensaje de salida* La acción no debe fallar ni detener la ejecución de un playbook:

Si hay datos disponibles (is_success = true):
Imprime "Se encontraron correctamente las páginas secundarias para el ID de página de Atlassian Confluence Server proporcionado: <page_id>".

Si no hay datos disponibles (is_success=false)
Imprime "No se encontraron páginas secundarias para el ID de página de Atlassian Confluence Server proporcionado <page_id>".

La acción debe fallar y detener la ejecución de un playbook:

  • Si se proporciona un valor no válido para la cantidad máxima de registros que se pueden devolver:
Se produjo un error al ejecutar la acción "{action name}". Motivo: "Se proporcionó un valor no válido para "Registros máximos que se devolverán": <valor proporcionado>. Se debe proporcionar un número positivo".

  • Si se produce un error fatal, como credenciales incorrectas, falta de conexión con el servidor o algún otro problema, haz lo siguiente:
"Error al ejecutar la acción "{action name}". Motivo: {0}''.format(error.Stacktrace)
  • Si no se proporcionan el nombre de usuario y la contraseña, ni el PAT:
print "Failed to connect to Atlassian Confluence Server, expecting either username and password, or personal access token to connect with!"
General

Obtener comentarios de la página

Obtiene comentarios para la página de Atlassian Confluence Server.

Parámetros

Nombre del parámetro Tipo Valor predeterminado Es obligatorio. Descripción
ID de la página String N/A Verdadero Especifica el ID de la página que se devolverá.
Expandir CSV body.storage Falso Especifica el parámetro de expansión para devolver información adicional sobre la página. El parámetro acepta varios valores como una lista separada por comas.
De forma predeterminada, el contenido de la página se recupera con body.storage.
Cantidad máxima de registros que se devolverán Int 10 Verdadero Especifica el límite de páginas secundarias que se devolverán.

Fecha de ejecución

La acción no se está ejecutando en las entidades.

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
is_success Verdadero/Falso is_success:False

Si la acción se ejecuta correctamente (se muestran los comentarios y la respuesta del servidor es 200 OK), is_success debe establecerse en True.

Resultado de JSON
{
   "results": [
       {
           "id": "ID",
           "type": "comment",
           "status": "current",
           "title": "Re: 111",
           "body": {
               "storage": {
                   "value": "<p>comment1</p>",
                   "representation": "storage",
                   "_expandable": {
                       "content": "/rest/api/content/ID"
                   }
               },
               "_expandable": {
                   "editor": "",
                   "view": "",
                   "export_view": "",
                   "styled_view": "",
                   "anonymous_export_view": ""
               }
           },
           "extensions": {
               "location": "footer",
               "_expandable": {
                   "resolution": ""
               }
           },
           "_links": {
               "webui": "/display/SIEM/111?focusedCommentId=98387#comment-ID",
               "self": "http://203.0.113.1:8090/rest/api/content/ID"
           },
           "_expandable": {
               "container": "/rest/api/content/ID",
               "metadata": "",
               "operations": "",
               "children": "/rest/api/content/ID/child",
               "restrictions": "/rest/api/content/ID/restriction/byOperation",
               "history": "/rest/api/content/ID/history",
               "ancestors": "",
               "version": "",
               "descendants": "/rest/api/content/ID/descendant",
               "space": "/rest/api/space/SIEM"
           }
       },
       ...
   ],
   "start": 0,
   "limit": 10,
   "size": 2,
   "_links": {
       "self": "http://203.0.113.1:8090/rest/api/content/ID/child/comment?expand=body.storage",
       "base": "http://203.0.113.1:8090",
       "context": ""
   }
}
Muro de casos
Tipo de resultado Valor/Descripción Tipo (entidad/general)
Mensaje de salida* La acción no debe fallar ni detener la ejecución de una guía:

  • Si hay datos disponibles(is_success = true):
print "Successfully fetched page comments for the provided Atlassian Confluence Server page id: <page_id>".

  • Si los datos no están disponibles (is_success=false)
print "No se encontraron comentarios de la página para el ID de página de Atlassian Confluence Server proporcionado <page_id>"

La acción debería fallar y detener la ejecución del playbook:

  • Si se proporciona un valor no válido para la cantidad máxima de registros que se pueden devolver:
Se produjo un error al ejecutar la acción "{action name}". Motivo: "Se proporcionó un valor no válido para "Registros máximos que se devolverán": <valor proporcionado>. Se debe proporcionar un número positivo".

  • Si se produce un error fatal, como credenciales incorrectas, falta de conexión con el servidor o algún otro problema, haz lo siguiente:
"Error al ejecutar la acción "{action name}". Motivo: {0}''.format(error.Stacktrace)

  • Si no se proporcionan el nombre de usuario y la contraseña, ni el PAT:
print "Failed to connect to Atlassian Confluence Server, expecting either username and password, or personal access token to connect with!"
General

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.