Integre o Atlassian Confluence Server com o Google SecOps

Este documento descreve como integrar o Atlassian Confluence Server com o Google Security Operations (Google SecOps).

Versão da integração: 3.0

Pré-requisitos

Para se autenticar no Confluence Server, escolha qualquer uma das seguintes opções:

  • O nome de utilizador e a palavra-passe de uma conta dedicada.
  • O token de acesso pessoal (PAT).

Se ambas as opções de autenticação forem facultadas para a integração, o PAT tem prioridade sobre o nome de utilizador e a palavra-passe.

A autenticação baseada no nome de utilizador e na palavra-passe requer a criação de uma conta dedicada que vai ser usada para a integração.
A autenticação baseada na chave de acesso requer a configuração das autorizações da conta. Quando criado, o novo PAT corresponde ao nível de autorização atual da conta.

Para criar um token, siga estes passos:

  1. No Confluence, aceda a Conta > Definições da conta > Tokens de acesso pessoal.
  2. Selecione Criar chave.
  3. Atribua um nome ao token que está a criar.
  4. (Opcional) Para segurança adicional, pode configurar o token para expirar automaticamente após um número definido de dias.
  5. Clique em Criar.

Parâmetros de integração

A integração requer os seguintes parâmetros:

Nome do parâmetro Tipo Valor predefinido É obrigatório Descrição
Raiz da API String https://ip_address True Especifique a raiz da API do Confluence Server à qual se ligar.
Nome de utilizador String N/A Falso Especifique um nome de utilizador a usar para a ligação. A integração suporta a autenticação com um nome de utilizador e uma palavra-passe ou um token de acesso pessoal.
Palavra-passe Palavra-passe N/A Falso Especifique uma palavra-passe a usar para a ligação. A integração suporta a autenticação com um nome de utilizador e uma palavra-passe ou um token de acesso pessoal.
Token de acesso pessoal Palavra-passe N/A Falso Especifique um token a usar para a ligação. A integração suporta a autenticação com um nome de utilizador e uma palavra-passe ou um token de acesso pessoal.
Validar SSL Caixa de verificação Caixa de verificação selecionada Falso Se estiver ativada, o certificado configurado para a raiz da API é validado.

Para obter instruções sobre como configurar uma integração no Google SecOps, consulte o artigo Configurar integrações.

Se necessário, pode fazer alterações numa fase posterior. Depois de configurar uma instância de integração, pode usá-la em manuais de soluções. Para mais informações sobre como configurar e suportar várias instâncias, consulte o artigo Suporte de várias instâncias.

Ações

Para mais informações sobre ações, consulte os artigos Responda a ações pendentes da sua mesa de trabalho e Execute uma ação manual.

Tchim-tchim

Teste a conetividade.

Parâmetros

N/A

É apresentado em

A ação não está a ser executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valores Exemplo
is_success Verdadeiro/Falso is_success:False

Se a ação for bem-sucedida (existe um JSON na resposta e a resposta do servidor for 200), is_success deve ser definido como True. Caso contrário, False.

Parede da caixa
Tipo de resultado Valor/descrição Tipo (entidade/geral)
Mensagem de saída* A ação não deve falhar nem parar a execução de um guia interativo:
  • Se tiver êxito:
    imprima "Ligação à instância do servidor do Atlassian Confluence estabelecida com êxito com os parâmetros de ligação fornecidos!"
  • Se forem facultados o nome de utilizador e a palavra-passe, bem como o PAT:
    "Foram facultados o nome de utilizador e a palavra-passe, bem como o token de acesso pessoal para a integração. O token de acesso pessoal vai ser usado para estabelecer ligação com"

A ação deve falhar e parar a execução de um guia interativo:
  • Se não forem fornecidos o nome de utilizador e a palavra-passe nem o PAT:
    imprima "Não foi possível estabelecer ligação ao servidor do Atlassian Confluence. É necessário o nome de utilizador e a palavra-passe ou o token de acesso pessoal para estabelecer ligação!"
  • Se ocorrer um erro crítico, como credenciais incorretas ou perda de conetividade:
    imprima "Failed to connect to the Atlassian Confluence Server instance! O erro é {0}".format(exception.stacktrace)
Geral

Páginas de listas

Listar páginas disponíveis na instância do Atlassian Confluence Server com base nos critérios fornecidos.

Parâmetros

Nome do parâmetro Tipo Valor predefinido É obrigatório Descrição
Tecla de filtro LDD Selecionar uma

Valores possíveis da DDL:
  • Título
  • Nome do espaço
  • Estado
Falso Especifique a chave que tem de ser usada para filtrar páginas.
Lógica de filtragem LDD Não especificado

Valores possíveis da DDL:
  • Não especificado
  • Igual
  • Contém
Falso Especifique a lógica de filtro que deve ser aplicada. A lógica de filtragem está a funcionar com base no valor fornecido no parâmetro Filter Key.
Valor do filtro String N/A Falso Especifique o valor que deve ser usado no filtro.
Se Equal estiver selecionada, a ação tenta encontrar a correspondência exata entre os resultados.
Se Contains estiver selecionada, a ação tenta encontrar resultados que contenham essa substring.
Se não for fornecido nada neste parâmetro, o filtro não é aplicado.
A lógica de filtragem funciona com base no valor fornecido no parâmetro Filter Key.
Máximo de registos a devolver Int 50 Falso Especifique quantos registos devolver.
Se não for fornecido nada, a ação devolve 50 registos.

É apresentado em

A ação não está a ser executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valores Exemplo
is_success Verdadeiro/Falso is_success:False

Se a ação for executada com êxito (não forem devolvidos erros e a resposta do servidor for 200 OK), is_success deve ser definido como True.

Resultado 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": ""
   }
}
Parede da caixa
Tipo de resultado Valor/descrição Tipo (entidade/geral)
Mensagem de saída* A ação não deve falhar nem parar a execução de um guia interativo:

  • Se os dados estiverem disponíveis(is_success = true):
print "Successfully found pages for the provided criteria in Atlassian Confluence Server".

  • If data is not available (is_success=false)
print "Nenhuma página foi encontrada para os critérios fornecidos no Atlassian Confluence Server"

  • Se "Filter Value" estiver vazio (is_success=true):
O filtro não foi aplicado porque o parâmetro "Valor do filtro" tem um valor vazio.

A ação deve falhar e parar a execução de um guia interativo:

  • Se a chave do filtro for "Selecionar uma" e a lógica do filtro for "Igual a" ou "Contém":
Erro ao executar a ação "{action name}". Motivo: tem de selecionar um campo do parâmetro Filter Key.

  • Se for fornecido um valor inválido para o número máximo de registos a devolver:
Erro ao executar a ação "{action name}". Motivo: "Foi fornecido um valor inválido para "Max Records to Return": <provided value>. Deve ser fornecido um número positivo".

  • Se ocorrer um erro fatal, como credenciais incorretas, sem ligação ao servidor ou outro:
"Erro ao executar a ação "{action name}". Motivo: {0}''.format(error.Stacktrace)

  • Se não forem facultados o nome de utilizador e a palavra-passe, nem o PAT:
print "Failed to connect to Atlassian Confluence Server, expecting either username and password, or personal access token to connect with!"
Geral
Tabela de parede da caixa Nome: páginas do Confluence disponíveis
Colunas:
  • ID
  • Título
  • Barra de espaços
  • Estado
  • Criado
Geral

Obtenha a página por ID

Obtenha a página do Atlassian Confluence Server por ID.

Parâmetros

Nome do parâmetro Tipo Valor predefinido É obrigatório Descrição
ID da página String N/A True Especifique o ID da página a devolver.
Expandir CSV body.storage Falso Especifique o parâmetro expand para devolver informações adicionais sobre a página. O parâmetro aceita vários valores como uma lista separada por vírgulas.
Por predefinição, o conteúdo da página é obtido com body.storage.

É apresentado em

A ação não está a ser executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valores Exemplo
is_success Verdadeiro/Falso is_success:False

Se a ação for executada com êxito (a página é devolvida e a resposta do servidor é 200 OK), is_success deve ser definido como True.

Resultado 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"
   }
}
Parede da caixa
Tipo de resultado Valor/descrição Tipo (entidade/geral)
Mensagem de saída* A ação não deve falhar nem parar a execução de um guia interativo:

  • Se a página for encontrada (is_success = true):
print "Successfully fetched page information with id: <id>"

  • Se os dados não estiverem disponíveis (is_success=false):
print "O ID da página seguinte não foi encontrado no Atlassian Confluence Server: <page id>"

A ação deve falhar e parar a execução de um playbook:

  • Se ocorrer um erro fatal, como credenciais incorretas, sem ligação ao servidor ou outro:
"Error executing action "<Action name>". Reason: {0}''.format(error.Stacktrace)

  • Se não forem facultados o nome de utilizador + a palavra-passe e o PAT:
print "Failed to connect to Atlassian Confluence Server, expecting either username and password, or personal access token to connect with!"
Geral

Obtenha páginas secundárias

Obtenha páginas secundárias para a página do Atlassian Confluence Server.

Parâmetros

Nome do parâmetro Tipo Valor predefinido É obrigatório Descrição
ID da página String N/A True Especifique o ID da página a devolver.
Número máximo de registos a devolver Int 10 True Especifique o limite de páginas secundárias a devolver.

É apresentado em

A ação não está a ser executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valores Exemplo
is_success Verdadeiro/Falso is_success:False

Se a ação for executada com êxito (a página é devolvida e a resposta do servidor é 200 OK), is_success deve ser definido como True.

Resultado 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": ""
   }
}
Parede da caixa
Tipo de resultado Valor/descrição Tipo (entidade/geral)
Mensagem de saída* A ação não deve falhar nem parar a execução de um manual de procedimentos:

se os dados estiverem disponíveis (is_success = true):
imprima "Successfully found child pages for the provided Atlassian Confluence Server page id: <page_id>".

Se os dados não estiverem disponíveis (is_success=false)
imprima "No child pages were found for the provided Atlassian Confluence Server page id <page_id>"

A ação deve falhar e parar a execução de um manual de procedimentos:

  • Se for fornecido um valor inválido para o número máximo de registos a devolver:
Erro ao executar a ação "{action name}". Motivo: "Foi fornecido um valor inválido para "Max Records to Return": <provided value>. Deve ser fornecido um número positivo".

  • Se ocorrer um erro fatal, como credenciais incorretas, sem ligação ao servidor ou outro:
"Erro ao executar a ação "{action name}". Motivo: {0}''.format(error.Stacktrace)
  • Se não forem facultados o nome de utilizador + a palavra-passe e o PAT:
print "Failed to connect to Atlassian Confluence Server, expecting either username and password, or personal access token to connect with!"
Geral

Receba comentários na página

Receba comentários para a página do Atlassian Confluence Server.

Parâmetros

Nome do parâmetro Tipo Valor predefinido É obrigatório Descrição
ID da página String N/A True Especifique o ID da página a devolver.
Expandir CSV body.storage Falso Especifique o parâmetro expand para devolver informações adicionais sobre a página. O parâmetro aceita vários valores como uma lista separada por vírgulas.
Por predefinição, o conteúdo da página é obtido com body.storage.
Número máximo de registos a devolver Int 10 True Especifique o limite de páginas secundárias a devolver.

É apresentado em

A ação não está a ser executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valores Exemplo
is_success Verdadeiro/Falso is_success:False

Se a ação for executada com êxito (os comentários são devolvidos e a resposta do servidor é 200 OK), is_success deve ser definido como True.

Resultado 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": ""
   }
}
Parede da caixa
Tipo de resultado Valor/descrição Tipo (entidade/geral)
Mensagem de saída* A ação não deve falhar nem parar a execução de um guia interativo:

  • Se os dados estiverem disponíveis(is_success = true):
print "Successfully fetched page comments for the provided Atlassian Confluence Server page id: <page_id>".

  • If data is not available (is_success=false)
print "No page comments were found for the provided Atlassian Confluence Server page id <page_id>"

A ação deve falhar e parar a execução de um playbook:

  • Se for fornecido um valor inválido para o número máximo de registos a devolver:
Erro ao executar a ação "{action name}". Motivo: "Foi fornecido um valor inválido para "Max Records to Return": <provided value>. Deve ser fornecido um número positivo".

  • Se ocorrer um erro fatal, como credenciais incorretas, sem ligação ao servidor ou outro:
"Erro ao executar a ação "{action name}". Motivo: {0}''.format(error.Stacktrace)

  • Se não forem facultados o nome de utilizador + a palavra-passe e o PAT:
print "Failed to connect to Atlassian Confluence Server, expecting either username and password, or personal access token to connect with!"
Geral

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.