Integrar 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 específica.
  • 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.

Para la autenticación basada en nombre de usuario y contraseña, es necesario crear una cuenta específica que se utilizará para la integración.
La autenticación basada en el token de acceso requiere configurar los permisos de la cuenta. Cuando se cree, el nuevo PAT corresponderá al nivel de permiso 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 vas a crear.
  4. (Opcional) Para aumentar la seguridad, puedes configurar tu token para que caduque automáticamente después de un número de días determinado.
  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 Cadena https://ip_address Verdadero Especifica la raíz de la API de Confluence Server a la que quieres conectarte.
Nombre de usuario Cadena N/A Falso Especifica un nombre de usuario que se usará para la conexión. La integración admite la autenticación mediante un nombre de usuario y una contraseña, o bien mediante un token de acceso personal.
Contraseña Contraseña N/A Falso Especifica una contraseña para la conexión. La integración admite la autenticación mediante un nombre de usuario y una contraseña, o bien mediante un token de acceso personal.
Token de acceso personal Contraseña N/A Falso Especifica un token que se va a usar para la conexión. La integración admite la autenticación mediante un nombre de usuario y una contraseña, o bien mediante un token de acceso personal.
Verificar SSL Casilla Casilla marcada Falso Si está habilitada, se valida el certificado configurado para la raíz de la API.

Para obtener instrucciones sobre cómo configurar una integración en Google SecOps, consulta Configurar integraciones.

Si es necesario, puedes hacer cambios más adelante. Después de configurar una instancia de integración, puedes usarla en los cuadernos de estrategias. Para obtener más información sobre cómo configurar y admitir varias instancias, consulta Admitir varias instancias.

Acciones

Para obtener más información sobre las acciones, consulta Responder a acciones pendientes desde Tu espacio de trabajo y Realizar una acción manual.

Ping

Prueba 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 la secuencia de comandos
Nombre del resultado del script 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 tener el valor True. De lo contrario, False.

Panel de casos
Tipo de resultado Valor/Descripción Tipo (entidad o general)
Mensaje de salida* La acción no debe fallar ni detener la ejecución de una guía:
  • Si la conexión se establece correctamente:
    imprime "Successfully connected to the Atlassian Confluence Server instance with the provided connection parameters!" ("Se ha conectado correctamente a la instancia de Atlassian Confluence Server con los parámetros de conexión proporcionados").
  • Si se proporcionan tanto el nombre de usuario como la contraseña y el PAT:
    "Se han proporcionado tanto el nombre de usuario como 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 una guía:
  • Si no se proporcionan ni 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!" ("No se ha podido conectar al servidor de Atlassian Confluence. Se necesita un nombre de usuario y una contraseña, o un token de acceso personal para conectarse").
  • Si se produce un error crítico, como credenciales incorrectas o pérdida de conectividad:
    print "Failed to connect to the Atlassian Confluence Server instance! Error: {0}".format(exception.stacktrace)
General

Páginas de lista

Lista 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
Teclas de filtro DDL Seleccionar una

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

Valores posibles de DDL:
  • Sin especificar
  • Igual
  • Contiene
Falso Especifica la lógica de filtro que se debe aplicar. La lógica de filtrado funciona en función del valor proporcionado en el parámetro Filter Key.
Valor de filtro Cadena N/A Falso Especifica el valor que se debe usar en el filtro.
Si se selecciona Equal, la acción intentará 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, el filtro no se aplicará.
La lógica de filtrado se basa en el valor proporcionado en el parámetro Filter Key.
Número máximo de registros que se devolverán Entero 50 Falso Especifica cuántos registros quieres devolver.
Si no se proporciona ningún valor, 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 la secuencia de comandos
Nombre del resultado del script Opciones de valor Ejemplo
is_success Verdadero/Falso is_success:False

Si la acción se ejecuta correctamente (no se devuelve ningún error y la respuesta del servidor es 200 OK), is_success debe tener el valor 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": ""
   }
}
Panel de casos
Tipo de resultado Valor/Descripción Tipo (entidad o 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 han encontrado páginas que cumplan los criterios proporcionados en Atlassian Confluence Server"

  • Si "Filter Value" está vacío (is_success=true):
No se ha aplicado 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 una guía:

  • Si la clave de filtro es "Seleccionar uno" y la lógica de filtro es "Igual" o "Contiene":
No se ha podido 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 el número máximo de registros que se van a devolver:
No se ha podido ejecutar la acción "{action name}". Motivo: "Se ha proporcionado un valor no válido para "Número máximo de registros que se devuelven": <valor proporcionado>. Se debe proporcionar un número positivo".

  • Si se produce un error grave, como credenciales incorrectas, no hay conexión con el servidor u otro:
"Error al ejecutar la acción "{action name}". Motivo: {0}''.format(error.Stacktrace)

  • Si no se proporcionan ni el nombre de usuario y la contraseña ni el PAT:
print "No se ha podido conectar con el servidor de Atlassian Confluence. Se necesita un nombre de usuario y una contraseña, o un token de acceso personal para conectarse."
General
Tabla del panel de casos Nombre: páginas de Confluence disponibles
Columnas:
  • ID
  • Título
  • Espacio
  • Estado
  • Creado
General

Obtener 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 página Cadena N/A Verdadero Especifica el ID de la página que quieres devolver.
Mostrar CSV body.storage Falso Especifica el parámetro expand para devolver información adicional sobre la página. El parámetro acepta varios valores en una lista separada por comas.
De forma predeterminada, el contenido de la página se obtiene con body.storage.

Fecha de ejecución

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

Resultados de la acción

Resultado de la secuencia de comandos
Nombre del resultado del script 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 tener el valor 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"
   }
}
Panel de casos
Tipo de resultado Valor/Descripción Tipo (entidad o 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 ha encontrado el siguiente ID de página en Atlassian Confluence Server: <page id>"

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

  • Si se produce un error grave, como credenciales incorrectas, no hay conexión con el servidor u otro:
"Error al ejecutar la acción "<Action name>". Motivo: {0}''.format(error.Stacktrace)

  • Si no se proporcionan ni el nombre de usuario y la contraseña ni el PAT:
print "No se ha podido conectar con el servidor de Atlassian Confluence. Se necesita un nombre de usuario y una contraseña, o un token de acceso personal para conectarse."
General

Obtener páginas secundarias

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

Parámetros

Nombre del parámetro Tipo Valor predeterminado Es obligatorio Descripción
ID de página Cadena N/A Verdadero Especifica el ID de la página que quieres devolver.
Número máximo de registros que se devolverán Entero 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 la secuencia de comandos
Nombre del resultado del script 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 tener el valor 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": ""
   }
}
Panel de casos
Tipo de resultado Valor/Descripción Tipo (entidad o general)
Mensaje de salida* La acción no debe fallar ni detener la ejecución de un cuaderno de estrategias:

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

Si no hay datos disponibles (is_success=false):
print "No child pages were found for the provided Atlassian Confluence Server page id <page_id>"

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

  • Si se proporciona un valor no válido para el número máximo de registros que se van a devolver:
No se ha podido ejecutar la acción "{action name}". Motivo: "Se ha proporcionado un valor no válido para "Número máximo de registros que se devuelven": <valor proporcionado>. Se debe proporcionar un número positivo".

  • Si se produce un error grave, como credenciales incorrectas, no hay conexión con el servidor u otro:
"Error al ejecutar la acción "{action name}". Motivo: {0}''.format(error.Stacktrace)
  • Si no se proporcionan ni el nombre de usuario y la contraseña ni el PAT:
print "No se ha podido conectar con el servidor de Atlassian Confluence. Se necesita un nombre de usuario y una contraseña, o un token de acceso personal para conectarse."
General

Obtener comentarios de una página

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

Parámetros

Nombre del parámetro Tipo Valor predeterminado Es obligatorio Descripción
ID de página Cadena N/A Verdadero Especifica el ID de la página que quieres devolver.
Mostrar CSV body.storage Falso Especifica el parámetro expand para devolver información adicional sobre la página. El parámetro acepta varios valores en una lista separada por comas.
De forma predeterminada, el contenido de la página se obtiene con body.storage.
Número máximo de registros que se devolverán Entero 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 la secuencia de comandos
Nombre del resultado del script Opciones de valor Ejemplo
is_success Verdadero/Falso is_success:False

Si la acción se ejecuta correctamente (se devuelven comentarios y la respuesta del servidor es 200 OK), is_success debe tener el valor 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": ""
   }
}
Panel de casos
Tipo de resultado Valor/Descripción Tipo (entidad o 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 "Se han obtenido correctamente los comentarios de la página de Atlassian Confluence Server con el ID <page_id>".

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

La acción debería fallar y detener la ejecución de un cuaderno de estrategias:

  • Si se proporciona un valor no válido para el número máximo de registros que se van a devolver:
No se ha podido ejecutar la acción "{action name}". Motivo: "Se ha proporcionado un valor no válido para "Número máximo de registros que se devuelven": <valor proporcionado>. Se debe proporcionar un número positivo".

  • Si se produce un error grave, como credenciales incorrectas, no hay conexión con el servidor u otro:
"Error al ejecutar la acción "{action name}". Motivo: {0}''.format(error.Stacktrace)

  • Si no se proporcionan ni el nombre de usuario y la contraseña ni el PAT:
print "No se ha podido conectar a Atlassian Confluence Server. Se necesita un nombre de usuario y una contraseña, o un token de acceso personal para conectarse."
General

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.