Google Chat

Este documento fornece orientações sobre como integrar o Google Chat ao Google SecOps.

Permissões de produtos

Criar uma conta de serviço

  1. No console do Google Cloud , selecione um projeto do Google Cloud ou crie um novo. O projeto do Google Cloud selecionado precisa fazer parte da organização no Google Cloud.
  2. Clique no Menu ☰ e selecione o item de menu APIs e serviços > Credenciais.
  3. Na parte de cima da página, clique em + CRIAR CREDENCIAIS > Conta de serviço.
  4. Insira um nome de conta de serviço a ser exibido no console.
  5. Opcional: digite uma descrição da conta de serviço.
  6. Clique em CRIAR, CONTINUAR e CONCLUÍDO para finalizar a criação da conta de serviço.

Criar credenciais da conta de serviço

  1. Depois de criar a conta de serviço, você vai ser redirecionado para a lista de credenciais que podem ser usadas no projeto do Google Cloud . Na seção Contas de serviço, clique na conta de serviço recém-criada. Ela será chamada: service-account-name@project-name-XXXXXX.iam.gserviceaccount.com.
  2. Clique em ADICIONAR CHAVE > Criar nova chave.
  3. Mantenha JSON selecionado e clique em CRIAR.

Isso inicia o download do arquivo de credenciais que você vai precisar para acessar a API como essa conta de serviço.

Configurar um novo projeto do Apps Script

  1. Acesse o Google Apps Script.
  2. Crie um novo projeto do Apps Script.
  3. Para executar a funcionalidade de integração, adicione o seguinte código ao projeto recém-criado:

    var SCOPE = 'https://www.googleapis.com/auth/chat.bot';
    // The values below are copied from the JSON file downloaded upon
    // service account creation.
    // For SERVICE_ACCOUNT_PRIVATE_KEY, remember to include the BEGIN and END lines of the private key
    var SERVICE_ACCOUNT_PRIVATE_KEY = '...';
    var SERVICE_ACCOUNT_EMAIL = 'service-account@project-id.iam.gserviceaccount.com';
    
    // Posts a message into the given space ID via the API, using
    // service account authentication.
    function postMessage(spaceId, message) {
      var service = OAuth2.createService('chat')
          .setTokenUrl('https://accounts.google.com/o/oauth2/token')
          .setPrivateKey(SERVICE_ACCOUNT_PRIVATE_KEY)
          .setClientId(SERVICE_ACCOUNT_EMAIL)
          .setPropertyStore(PropertiesService.getUserProperties())
          .setScope(SCOPE);
      if (!service.hasAccess()) {
        Logger.log('Authentication error: %s', service.getLastError());
        return;
      }
      var url = 'https://chat.googleapis.com/v1/' + spaceId + '/messages';
      UrlFetchApp.fetch(url, {
        method: 'post',
        headers: { 'Authorization': 'Bearer ' + service.getAccessToken() },
        contentType: 'application/json',
        payload: JSON.stringify(message),
      });
    }
    
  4. Abra o arquivo de credenciais da conta de serviço que você baixou do console doGoogle Cloud .

  5. Copie o valor private_key (aquele que começa com -----BEGIN PRIVATE KEY-----) e cole-o em SERVICE_ACCOUNT_PRIVATE_KEY no projeto do Apps Script.

  6. Copie o valor client_email do arquivo de credenciais e cole-o em SERVICE_ACCOUNT_EMAIL no projeto do Apps Script.

  7. Vincule o projeto do Apps Script ao projeto do Google Cloud que você criou.

  8. Volte ao console do Google Cloud e selecione o item de menu ☰ > IAM e administrador > Configurações.

  9. Copie o número do projeto definido nessa página.

  10. No projeto do Apps Script, selecione o item de menu Configurações do projeto > Google Cloud Projeto e cole o número do projeto na caixa de diálogo "Insira o número do projeto aqui".

  11. Clique em Definir projeto.

Ativar a API Google Chat

  1. Acesse ☰ > APIs e serviços e selecione Biblioteca.
  2. Pesquise API Google Chat e clique no único resultado.
  3. Clique em ATIVAR.

Isso ativa a API no seu projeto.

Implantar um bot

  1. Na interface do Apps Script, acesse Implantar > Nova implantação.
  2. Selecione Complemento para o novo tipo de implantação.
  3. Insira um nome e uma descrição para a implantação e clique em Salvar.
  4. Quando terminar de salvar, clique em Get ID ao lado da implantação que você acabou de criar e copie o valor do ID da implantação.

Configure o bot do Google Chat:

  1. No console do Google Cloud , acesse ☰ > APIs e serviços > Painel.
  2. Na lista de APIs ativadas, selecione API Google Chat.
  3. Clique em Gerenciar para abrir a página da API Google Chat.
  4. Na página aberta, selecione a guia Configuração e defina as configurações do bot:

    • No campo Nome do app, digite "App de chat do Google Security Operations".
    • No campo URL do avatar, digite https://developers.google.com/chat/images/chat-product-icon.png.
    • No campo Descrição, insira o app do Google Chat do Google SecOps que pode ser usado para enviar mensagens do Google SecOps para um espaço do Google Chat.
    • Na seção Funcionalidade, selecione O app funciona em espaços com Dispositivo compartilhado.
    • Na seção Configurações de conexão, selecione Projeto do Apps Script e cole o ID de implantação que você recebeu no procedimento Implantar um bot.
    • Na seção Permissões, selecione Pessoas e grupos específicos do seu domínio e especifique quem pode interagir com o bot.
    • Clique em Salvar. A configuração do app foi concluída.

Como o app do Google Chat não pode criar espaços (iniciar conversas), o app do Google SecOps Chat precisa ser adicionado aos espaços para os quais ele deve enviar mensagens.

Depois que a integração for configurada, a ação "Listar espaços" poderá ser usada para buscar os espaços que o app do Google SecOps pode acessar (para enviar mensagens).

Se a ação "Listar espaços" não mostrar espaços disponíveis, isso significa que o app não poderá enviar mensagens em nenhum espaço. Volte às instruções detalhadas acima e verifique se você seguiu cada etapa com atenção.

Configurar a integração do Google Chat no Google SecOps

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

Parâmetros de integração

Use os seguintes parâmetros para configurar a integração:

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
URL raiz da API String https://chat.googleapis.com/ Sim URL raiz da API que a integração usa para se conectar ao serviço do Google Chat.
Conta de serviço Senha N/A Sim Conteúdo do arquivo JSON da conta de serviço que o chatbot usa para trabalhar com o serviço do Google Chat.
Verificar SSL Caixa de seleção Selecionado Sim Se estiver ativada, verifique se o certificado SSL da conexão com o serviço do Google Chat é válido.

Ações

Ping

Descrição

Teste a conectividade com o Google Chat usando os parâmetros fornecidos na página de configuração da integração na página do Google SecOps Content Hub.

Corrida

Essa ação não é executada em entidades nem tem parâmetros de entrada obrigatórios.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
is_success Verdadeiro/falso is_success:False
Painel de casos
Tipo de resultado Valor/descrição Tipo
Mensagem de saída*

A ação não pode falhar nem interromper a execução de um playbook:

Se der certo: "Conexão com o serviço do Google Chat estabelecida com os parâmetros fornecidos!"

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

Se um erro crítico, como credenciais incorretas ou perda de conectividade, for relatado: "Falha ao se conectar ao serviço do Google Chat! O erro é {0}".format(exception.stacktrace)"

Geral

Listar espaços

Descrição

Lista os espaços em que o bot do Google Chat configurado foi adicionado.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Chave de filtro DDL

Selecione uma opção.

Valores possíveis:

  • Nome
  • Nome de exibição
  • Tipo
Não Especifique a chave que precisa ser usada para filtrar os espaços do Google Chat.
Lógica de filtro DDL

Não especificado

Valores possíveis:

  • Não especificado
  • Igual
  • Contém
Não Especifique qual lógica de filtro deve ser aplicada. A lógica de filtragem funciona com base no valor fornecido no parâmetro "Chave de filtro".
Filtrar por valor String N/A Não

Especifique qual valor deve ser usado no filtro.

Se "Igual" for selecionado, a ação vai tentar encontrar a correspondência exata entre os resultados.

Se "Contém" estiver selecionado, a ação vai tentar encontrar resultados que contenham a substring especificada.

Se nada for fornecido nesse parâmetro, o filtro não será aplicado. A lógica de filtragem funciona com base no valor fornecido no parâmetro "Chave de filtro".

Número máximo de registros a serem retornados Inteiro 50 Não

Especifique o número de registros a serem retornados.

Se nada for fornecido, a ação vai retornar 50 registros.

Incluir assinaturas de usuários Caixa de seleção Desmarcado Não Se ativada, as informações de associação do usuário serão adicionadas à tabela do Case Wall da ação e ao resultado JSON.

Data de execução

Essa ação não é executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
is_success Verdadeiro/falso is_success:False
Painel de casos
Tipo de resultado Valor / Descrição Tipo
Mensagem de saída*

A ação não pode falhar nem interromper a execução de um playbook:

Se os dados estiverem disponíveis (is_success=true): "Os espaços adicionados para os critérios fornecidos foram encontrados no Google Chat."

Se os dados não estiverem disponíveis (is_success=false): "Não foram encontrados espaços para os critérios fornecidos no Google Chat"

Se o parâmetro "Valor do filtro" não tiver valor (is_success=true):

"O filtro não foi aplicado porque o parâmetro "Valor do filtro" está vazio."

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

Se o parâmetro "Chave de filtro" estiver definido como "Selecionar um" e o parâmetro "Lógica de filtro" estiver definido como "Igual" ou "Contém":

"Erro ao executar a ação "Listar espaços". Motivo: é necessário selecionar um campo do parâmetro "Chave de filtro"."

Se um valor inválido for fornecido para o parâmetro "Máximo de registros a serem retornados":

"Erro ao executar a ação "Listar espaços". Motivo: "O valor fornecido para 'Máximo de registros a serem retornados' é inválido. É preciso informar um número positivo."

Se um erro fatal, como credenciais incorretas, falta de conexão com o servidor ou outro, for relatado:

"Erro ao executar a ação "Listar espaços". Motivo: {0}''.format(error.Stacktrace)

Geral
Tabela do painel de casos

Nome da tabela:espaços disponíveis em que o bot foi adicionado Colunas da tabela: {fields}

Observação:se a caixa de seleção "Incluir associações de usuários" estiver marcada, uma coluna extra com um nome de exibição para os participantes do espaço será adicionada.

Geral

Enviar mensagem

Descrição

Envie uma mensagem para um espaço do Google Chat em que o aplicativo do Google SecOps foi adicionado.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Nome do espaço String N/A Sim

Especifique o nome do espaço para enviar a mensagem.

Exemplo de nome de espaço: AAAAdaTsel0

Texto da mensagem String N/A Sim Especifique o texto da mensagem a ser enviada.

Data de execução

Essa ação não é executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
is_success Verdadeiro/falso is_success:False
Painel de casos
Tipo de resultado Valor / Descrição Tipo
Mensagem de saída*

A ação não pode falhar nem interromper a execução de um playbook:

Se uma mensagem for enviada com sucesso (is_success=true): "A mensagem foi enviada com sucesso."

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

Se um erro crítico, como falta de conexão ou credenciais incorretas, for relatado: "Erro ao executar a ação 'Enviar mensagem'. Motivo: {0}''.format(error.Stacktrace)

Geral

Enviar mensagem avançada

Descrição

Envia uma mensagem avançada para um espaço do Google Chat com base no payload JSON da mensagem fornecido.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Nome do espaço String N/A Sim

Especifique o nome do espaço para enviar a mensagem.

Exemplo de nome de espaço: AAAAdaTsel0

Payload JSON da mensagem String {"cards":[{"sections":[{"widgets":[{"image":{"imageUrl":"https://..."}},{"buttons":[{"textButton":{"text":"OPEN IN GOOGLE MAPS","onClick":{"openLink":{"url":"https://..."}}}}]}]}]}]} Sim

Especifique o payload JSON a ser enviado com a mensagem.

Para ver exemplos de um payload de mensagens, consulte este artigo.

Data de execução

Essa ação não é executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
is_success Verdadeiro/falso is_success:False
Painel de casos
Tipo de resultado Valor / Descrição Tipo
Mensagem de saída*

A ação não pode falhar nem interromper a execução de um playbook:

Se uma mensagem for enviada com sucesso (is_success=True): "A mensagem foi enviada com sucesso."

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

Se o payload JSON fornecido não for válido: "Erro ao executar a ação 'Enviar mensagem avançada'. Motivo: o payload JSON da mensagem fornecida não é válido. "

Se um erro crítico, como falta de conexão ou credenciais incorretas, for relatado: "Erro ao executar a ação 'Enviar mensagem avançada'". Motivo: {0}''.format(error.Stacktrace)

Geral

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