Integrar o Cloud Identity ao Google SecOps

Este documento explica como integrar o Cloud Identity ao Google Security Operations.

Casos de uso

A integração do Cloud Identity usa os recursos do Google SecOps para oferecer suporte aos seguintes casos de uso:

  • Gerenciar controles de acesso: crie e atualize configurações do IAM diretamente de um playbook investigativo.
  • Definições de política de auditoria: listar informações sobre as políticas disponíveis para rastrear mutações de acesso.
  • Manter atributos da lista de detectores: adicione entidades e indicadores a listas de URLs de detectores específicos para monitoramento.

Antes de começar

Antes de configurar a integração do Cloud Identity na plataforma do Google SecOps, verifique se você configurou seu ambiente seguindo estas etapas:

  1. Crie uma conta de serviço.
  2. Delegar autoridade em todo o domínio à sua conta de serviço
  3. Ative as APIs necessárias para seu projeto.
  4. Escolha e configure um dos seguintes métodos de autenticação:
    • Opção 1: chave JSON: esse método depende de um arquivo de chave secreta estático e de longa duração. Use esse método somente se a Identidade da carga de trabalho não estiver disponível no seu ambiente.
    • Opção 2: Identidade da carga de trabalho (recomendado): esse método usa tokens de acesso temporários e de curta duração com a identidade temporária de conta de serviço, eliminando a necessidade de armazenar secrets.

Criar uma conta de serviço

Para criar uma conta de serviço para a integração, siga estas etapas:

  1. No console do Google Cloud , acesse IAM e administrador > Contas de serviço e selecione seu projeto.

    Acessar a página "Contas de serviço"

  2. Clique em Criar conta de serviço.

  3. Insira um nome e uma descrição e clique em Concluído para criar a conta.

Delegar autoridade em todo o domínio à conta de serviço

  1. No Google Admin Console do seu domínio, acesse Menu principal > Segurança > Controle de dados e acesso > Controles de API.
  2. No painel Delegação em todo o domínio, selecione Gerenciar a delegação em todo o domínio.
  3. Clique em Adicionar novo.
  4. No campo ID do cliente, insira o ID do cliente que você recebeu na seção Criar uma conta de serviço.
  5. No campo Escopos do OAuth, insira a seguinte lista separada por vírgulas dos escopos necessários para o aplicativo:

    https://www.googleapis.com/auth/cloud-platform,
    https://www.googleapis.com/auth/cloud-identity.policies,
    https://www.googleapis.com/auth/admin.directory.orgunit
    
  6. Clique em Autorizar.

Agora a conta de serviço está autorizada a acessar dados em todo o domínio usando os escopos especificados.

Ative as APIs necessárias para seu projeto

  1. No console do Google Cloud , acesse APIs e serviços.

    Acessar APIs e serviços

  2. Clique em Ativar APIs e serviços.

  3. Pesquise e ative as seguintes APIs para seu projeto:

    • API SDK Admin (admin.googleapis.com)
    • API Cloud Identity (cloudidentity.googleapis.com)

Configurar uma chave JSON

É possível autenticar a integração usando um arquivo de chave JSON estático ou a federação de identidade da carga de trabalho. Para maximizar a segurança do ambiente, use o método de Identidade da carga de trabalho. Use o método de chave JSON somente se a Identidade da carga de trabalho não for compatível com sua infraestrutura, já que as chaves estáticas exigem rotação manual e aumentam os riscos de exposição de credenciais.

Para gerar o arquivo de chave JSON necessário para autenticar a integração, siga estas etapas:

  1. No console do Google Cloud , acesse IAM e administrador > Contas de serviço e selecione a conta de serviço que você criou.

    Acessar a página "Contas de serviço"

  2. Acesse a guia Chaves.

  3. Clique em Adicionar chave.

  4. Selecione Criar nova chave.

  5. Para o tipo de chave, selecione JSON e clique em Criar. O download do arquivo JSON será feito no seu computador.

  6. Copie todo o conteúdo desse arquivo e cole em User's Service Account JSON durante a configuração da integração.

Configurar permissões do Cloud Identity

Use o procedimento a seguir para definir os privilégios de administrador que a integração exige para gerenciar recursos organizacionais:

  1. No Google Admin Console, acesse Conta > Funções do administrador.
  2. Clique em Criar nova função.
  3. Dê um nome para a nova função personalizada e clique em Continuar.
  4. Na página Selecionar privilégios, acesse a seção de privilégios da API Admin.
  5. Em Privilégios da API Admin, selecione os seguintes privilégios:
    • Organization Units
    • Users
    • Groups
  6. Clique em Continuar.
  7. Para criar um novo papel personalizado, clique em Criar papel.
Atribuir a função personalizada a um usuário

Use o procedimento a seguir para atribuir o papel a uma conta de usuário, autorizando a integração a realizar ações em seu nome:

  1. Para criar um novo usuário, acesse a página Diretório > Usuários.
  2. Adicione um novo usuário associado à conta de serviço.
  3. Abra as configurações do usuário recém-criado. A guia da conta de usuário é aberta.
  4. Clique em Funções e privilégios do administrador.
  5. Clique em Editar Editar.
  6. Selecione o papel personalizado que você criou.
  7. Para o papel selecionado, mude o botão para Atribuído.

Configurar credenciais da Identidade da carga de trabalho

Escolha esse método ou o método de chave JSON para autenticar a integração. A Identidade da carga de trabalho é a abordagem recomendada e mais segura porque usa tokens de acesso temporários de curta duração com a identidade temporária de conta de serviço, minimizando os riscos de exposição de credenciais secretas de longa duração.

Identificar a identidade exclusiva da instância

Para usar a Identidade da carga de trabalho, é preciso conceder à instância do Google SecOps permissão para personificar sua conta de serviço. Essa etapa permite que a instância acesse os recursos do Google Cloud com segurança.

  1. No Google SecOps, acesse Hub de conteúdo > Integrações de resposta.
  2. Selecione a integração que você está configurando e insira o e-mail da conta de serviço no campo Workload Identity Email.
  3. Insira o e-mail que você quer que a integração represente no campo Delegated Email.
  4. Clique em Salvar > Testar. O teste deve falhar.
  5. Clique em close_small à direita de Teste e pesquise na mensagem de erro o e-mail de identidade que começa com gke-init-python@... ou soar-python@....

  6. Copie esse endereço de e-mail exclusivo.

Autorize a identidade da instância em Google Cloud

Depois de recuperar a identidade exclusiva da instância do Google SecOps, autorize-a a acessar os recursos do Google Cloud . Essa etapa ativa a identidade temporária de conta de serviço, permitindo que a plataforma gere tokens de curta duração e atue em seu nome sem a necessidade de chaves estáticas.

  1. No console do Google Cloud , acesse IAM e administrador > Contas de serviço.

    Acessar a página "Contas de serviço"

  2. Selecione a conta de serviço de destino e acesse Permissões > Conceder acesso.

  3. Cole o endereço de e-mail exclusivo no campo Novos principais e atribua o papel Criador de token da conta de serviço (roles/iam.serviceAccountTokenCreator).

Parâmetros de integração

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

Parâmetro Descrição
Service Account JSON File Content

Opcional.

O conteúdo do arquivo JSON da chave da conta de serviço.

É possível configurar esse parâmetro ou o E-mail da Identidade da carga de trabalho. Para usar esse método, cole toda a string JSON do arquivo de chave baixado durante a criação da conta de serviço.

Workload Identity Email

Opcional.

O endereço de e-mail do cliente da sua conta de serviço.

É possível configurar esse parâmetro ou o conteúdo do arquivo JSON da conta de serviço.

Para usar esse método para identidade temporária de conta de serviço, é necessário conceder o papel de Criador de Token de Conta de Serviço à identidade da instância do Google SecOps na sua conta de serviço.

Delegated Email

Obrigatório.

O endereço de e-mail que a integração usa para realizar ações.

Verifique se essa conta tem as permissões delegadas adequadas no seu ambiente para executar as tarefas de integração necessárias.

Verify SSL

Opcional.

Se selecionada, a integração valida o certificado SSL ao se conectar ao servidor do Cloud Identity.

Ativado por padrão.

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

Se necessário, você pode fazer mudanças depois. Depois de configurar uma instância de integração, é possível usá-la em playbooks. Para mais informações sobre como configurar e oferecer suporte a várias instâncias, consulte Como oferecer suporte a várias instâncias.

Ações

Para mais informações sobre ações, consulte Responder a ações pendentes na sua mesa de trabalho e Executar uma ação manual no seu caso.

Ping

Use a ação Ping para testar a conectividade com o Cloud Identity.

Essa ação não é executada em entidades do Google SecOps.

Entradas da ação

Não há parâmetros de entrada necessários para esta ação.

Saídas da ação

A ação Ping fornece as seguintes saídas:

Tipo de saída da ação Disponibilidade
Anexo do Painel de Casos Indisponível
Link do Painel de Casos Indisponível
Tabela do painel de casos Indisponível
Tabela de enriquecimento Indisponível
Resultado JSON Indisponível
Mensagens de saída Disponível
Resultado do script Disponível
Mensagens de saída

A ação Ping pode retornar as seguintes mensagens de saída:

Mensagem de resposta Descrição da mensagem

Successfully connected to the Cloud Identity server with the provided connection parameters!

A ação foi concluída.
Failed to connect to the Cloud Identity server! Error is ERROR_REASON

A ação falhou.

Verifique a conexão com o servidor, os parâmetros de entrada ou as credenciais.

Resultado do script

A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Ping:

Nome do resultado do script Valor
is_success true ou false

Adicionar entidade à lista de URLs do detector

Use a ação Adicionar entidade à lista de URLs do detector para adicionar entidades à lista de detecção da política do Cloud Identity.

Essa ação é executada nas seguintes entidades do Google SecOps:

  • URL
  • Domínio

Entradas da ação

A ação Adicionar entidade à lista de URLs do detector requer os seguintes parâmetros:

Parâmetro Descrição
Detector Policy ID

Obrigatório.

O identificador exclusivo da política do detector a ser atualizada.

URL

Opcional.

Uma lista separada por vírgulas de URLs para adicionar à lista do detector.

Domain

Opcional.

Uma lista separada por vírgulas de domínios para adicionar à lista de detectores.

Saídas da ação

A ação Adicionar entidade à lista de URLs do detector fornece as seguintes saídas:

Tipo de saída da ação Disponibilidade
Anexo do Painel de Casos Indisponível
Link do Painel de Casos Indisponível
Tabela do painel de casos Indisponível
Tabela de enriquecimento Indisponível
Resultado JSON Disponível
Mensagens de saída Disponível
Resultado do script Disponível
Resultado JSON

O exemplo a seguir mostra a saída do resultado JSON recebida ao usar a ação Adicionar entidade à lista de URLs do detector:

{
 "type": "ADMIN",
 "customer": "customers/<CUSTOMER_ID>",
 "policyQuery": {
   "query": "entity.org_units.exists(org_unit, org_unit.org_unit_id == orgUnitId('<ORG_UNIT_ID>'))",
   "orgUnit": "orgUnits/<ORG_UNIT_ID>"
 },
 "setting": {
   "type": "settings/detector.url_list",
   "value": {
     "displayName": "test_url_list_detector",
     "description": "test_url_list_detector desc",
     "urlList": {
       "urls": [
         "[http://example.com](http://example.com)",
         "example.org",
         "bad_entity.com"
       ]
     }
   }
 }
}
Mensagens de saída

A ação Adicionar entidade à lista de URLs do detector pode retornar as seguintes mensagens de saída:

Mensagem de resposta Descrição da mensagem

Successfully blocked the following URLs using Cloud Identity: ENTITY_IDENTIFIER

A ação foi concluída.
Error executing action "Add Entity To Detector URL List". Reason: ERROR_REASON

A ação falhou.

Verifique a conexão com o servidor, os parâmetros de entrada ou as credenciais.

Resultado do script

A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Adicionar entidade à lista de URLs do detector:

Nome do resultado do script Valor
is_success true ou false

Criar política

Use a ação Criar política para criar uma nova entrada de política no Cloud Identity.

Essa ação não é executada em entidades do Google SecOps.

Entradas da ação

A ação Criar política requer os seguintes parâmetros:

Parâmetro Descrição
Policy Entry

Obrigatório.

O objeto JSON que representa a configuração da entrada de política a ser adicionada.

Exemplos de configurações de política

Os exemplos de configuração a seguir mostram como estruturar o parâmetro Policy Entry:

Exemplo 1: detector de lista de URLs

{
  "type": "ADMIN",
  "customer": "customers/<CUSTOMER_ID>",
  "policyQuery": {
    "orgUnit": "orgUnits/<ORG_UNIT_ID>",
    "sortOrder": 1
  },
  "setting": {
    "type": "settings/detector.url_list",
    "value": {
      "displayName": "BlockUrlDetector",
      "description": "Blocked urls for security reasons",
      "urlList": {
        "urls": [
          "www.medium.com",
          "medium.com",
          "wikipedia.org"
        ]
      }
    }
  }
}

Exemplo 2: regra de DLP

{
  "type": "ADMIN",
  "customer": "customers/<CUSTOMER_ID>",
  "policyQuery": {
    "query": "entity.org_units.exists(org_unit, org_unit.org_unit_id == orgUnitId('<ORG_UNIT_ID>'))",
    "orgUnit": "orgUnits/<ORG_UNIT_ID>",
    "sortOrder": 1
  },
  "setting": {
    "type": "settings/rule.dlp",
    "value": {
      "display_name": "TestRule",
      "description": "GoogleSecOps URL Blocklist Rule. Keeps state of blocked URLs. Manual modification is not advised",
      "triggers": [
        "google.workspace.chrome.url.v1.navigation"
      ],
      "condition": {
        "contentCondition": "url.matches_url_list('policies/<DETECTOR_POLICY_ID>')"
      },
      "action": {
        "chromeAction": {
          "blockContent": {
            "actionParams": {
              "customEndUserMessage": {
                "unsafeHtmlMessageBody": "(EQ)🚫 BlockedAccess denied."
              }
            }
          }
        }
      },
      "state": "ACTIVE"
    }
  }
}

Saídas da ação

A ação Criar política fornece as seguintes saídas:

Tipo de saída da ação Disponibilidade
Anexo do Painel de Casos Indisponível
Link do Painel de Casos Indisponível
Tabela do painel de casos Indisponível
Tabela de enriquecimento Indisponível
Resultado JSON Disponível
Mensagens de saída Disponível
Resultado do script Disponível
Resultado JSON

O exemplo a seguir mostra a saída do resultado JSON recebida ao usar a ação Criar política:

{
  "type": "ADMIN",
  "customer": "customers/<CUSTOMER_ID>",
  "policyQuery": {
    "query": "entity.org_units.exists(org_unit, org_unit.org_unit_id == orgUnitId('<ORG_UNIT_ID>'))",
    "orgUnit": "orgUnits/<ORG_UNIT_ID>"
  },
  "setting": {
    "type": "settings/rule.dlp",
    "value": {
      "display_name": "test_create_rule",
      "triggers": [
        "google.workspace.chrome.file.v1.download"
      ],
      "state": "ACTIVE",
      "action": {
        "chromeAction": {
          "warnUser": {}
        }
      }
    }
  }
}
Mensagens de saída

A ação Criar política pode retornar as seguintes mensagens de saída:

Mensagem de resposta Descrição da mensagem

Successfully added a new policy in Cloud Identity.

A ação foi concluída.
Error executing action "Create Policy". Reason: ERROR_REASON

A ação falhou.

Verifique a conexão com o servidor, os parâmetros de entrada ou as credenciais.

Resultado do script

A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Criar política:

Nome do resultado do script Valor
is_success true ou false

Listar políticas

Use a ação Listar políticas para recuperar uma lista de políticas do Cloud Identity.

Essa ação não é executada em entidades do Google SecOps.

Entradas da ação

A ação Listar políticas requer os seguintes parâmetros:

Parâmetro Descrição
Organization Unit Name

Obrigatório.

O nome da unidade organizacional em que as políticas serão listadas.

Policy Type Filter

Opcional.

O tipo de política usado para filtrar a lista. Valores possíveis: Admin, System ou Both.

O valor padrão é Both.

Settings Type Filter

Opcional.

O padrão de expressão regular usado para filtrar políticas pelo tipo de configuração. Esse filtro é aplicado diretamente à solicitação de API.

Settings Display Name Filter

Opcional.

Uma lista separada por vírgulas de nomes de exibição usados para filtrar as configurações da política.

Max Results To Return

Opcional.

O número máximo de resultados a serem retornados para a execução da ação. O valor padrão é 50. O valor máximo é 100.

Saídas da ação

A ação Listar políticas fornece as seguintes saídas:

Tipo de saída da ação Disponibilidade
Anexo do Painel de Casos Indisponível
Link do Painel de Casos Indisponível
Tabela do painel de casos Indisponível
Tabela de enriquecimento Indisponível
Resultado JSON Disponível
Mensagens de saída Disponível
Resultado do script Disponível
Resultado JSON

O exemplo a seguir mostra a saída do resultado JSON recebida ao usar a ação Listar políticas:

[
  {
    "name": "policies/123",
    "customer": "customers/123",
    "type": "ADMIN",
    "policy_query": {
      "query": "entity.org_units.exists(org_unit, org_unit.org_unit_id == orgUnitId('12345'))",
      "orgUnit": "orgUnits/12345",
      "sortOrder": 1
    },
    "setting": {
      "type": "settings/rule.dlp",
      "value": {
        "display_name": "Test DLP Rule"
      }
    }
  }
]
Mensagens de saída

A ação Listar políticas pode retornar as seguintes mensagens de saída:

Mensagem de resposta Descrição da mensagem

Successfully listed policies based on the provided criteria in Cloud Identity.

No policies found based on the provided criteria in Cloud Identity.

A ação foi concluída.
Error executing action "List Policies". Reason: ERROR_REASON

A ação falhou.

Verifique a conexão com o servidor, os parâmetros de entrada ou as credenciais.

Resultado do script

A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Listar políticas:

Nome do resultado do script Valor
is_success true ou false

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