Personalizar implantações de repositório (Visualização pública)
Há duas maneiras principais de personalizar a implantação do conteúdo do repositório nos espaços de trabalho do Microsoft Sentinel. Cada método usa arquivos e sintaxe diferentes, portanto, considere estes exemplos para começar.
Método de personalização | Opções de implantação cobertas |
---|---|
Fluxo de trabalho do GitHub Pipeline de DevOps |
Personalize o gatilho de implantação da sua conexão Personalize seu caminho de implantação Habilitação de implantações inteligentes |
Arquivos de configuração | Controle a ordem de prioridades de suas implantações de conteúdo Optar por excluir arquivos de conteúdo específicos das implantações Dimensione implantações em diferentes espaços de trabalho mapeando arquivos de parâmetros para arquivos de conteúdo específicos |
Importante
O recurso Repositórios do Microsoft Sentinel está atualmente em VISUALIZAÇÃO. Consulte os Termos de Utilização Suplementares das Pré-visualizações do Microsoft Azure para obter mais termos legais que se aplicam às funcionalidades do Azure que estão em versão beta, pré-visualização ou ainda não disponibilizadas para disponibilidade geral.
Pré-requisitos
Para personalizar uma implantação de repositórios, uma conexão de repositório deve existir. Para obter mais informações sobre como criar a conexão, consulte Implantar conteúdo personalizado do repositório. Depois que a conexão é feita, os seguintes pré-requisitos se aplicam:
- Acesso de colaborador ao repositório GitHub ou acesso de Administrador de Projeto ao repositório do Azure DevOps
- Ações habilitadas para GitHub e Pipelines habilitados para Azure DevOps
- Verifique se os arquivos de conteúdo personalizados que você deseja implantar em seus espaços de trabalho estão em um formato compatível. Para obter os formatos suportados, consulte Planejar o conteúdo do repositório.
Para obter mais informações sobre tipos de conteúdo implantáveis, consulte Validar seu conteúdo.
Personalizar o fluxo de trabalho ou pipeline
O fluxo de trabalho padrão implanta apenas conteúdo modificado desde a última implantação, com base em confirmações no repositório. Personalize para configurar diferentes gatilhos de implantação ou para implantar conteúdo exclusivamente de uma pasta raiz específica.
Selecione uma das seguintes guias, dependendo do seu tipo de conexão:
Para personalizar seu fluxo de trabalho de implantação do GitHub:
No GitHub, vá para seu repositório e encontre seu fluxo de trabalho no diretório .github/workflows .
O arquivo de fluxo de trabalho é o arquivo YML que começa com sentinel-deploy-xxxxx.yml. Abra esse arquivo e o nome do fluxo de trabalho é mostrado na primeira linha e tem a seguinte convenção de nomenclatura padrão:
Deploy Content to <workspace-name> [<deployment-id>]
.Por exemplo:
name: Deploy Content to repositories-demo [xxxxx-dk5d-3s94-4829-9xvnc7391v83a]
Selecione o botão de lápis no canto superior direito da página para abrir o arquivo para edição e, em seguida, modifique a implantação da seguinte maneira:
Para modificar o gatilho de implantação, atualize a
on
seção no código, que descreve o evento que aciona o fluxo de trabalho a ser executado.Por padrão, essa configuração é definida como
on: push
, o que significa que o fluxo de trabalho é acionado a qualquer push para a ramificação conectada, incluindo modificações no conteúdo existente e adições de novo conteúdo ao repositório. Por exemplo:on: push: branches: [ main ] paths: - `**` - `!.github/workflows/**` # this filter prevents other workflow changes from triggering this workflow - `.github/workflows/sentinel-deploy-<deployment-id>.yml`
Altere essas configurações, por exemplo, para agendar o fluxo de trabalho para ser executado periodicamente ou para combinar diferentes eventos de fluxo de trabalho juntos.
Para obter mais informações, consulte a documentação do GitHub sobre como configurar eventos de fluxo de trabalho.
Para desabilitar implantações inteligentes: o comportamento de implantações inteligentes é separado do gatilho de implantação discutido. Navegue até a
jobs
seção do seu fluxo de trabalho. Alterne osmartDeployment
valor padrão detrue
parafalse
. Depois que essa alteração for confirmada, a funcionalidade de implantação inteligente será desativada e todas as implantações futuras para essa conexão reimplantarão todos os arquivos de conteúdo relevantes do repositório nos espaços de trabalho conectados.Para modificar o caminho de implantação:
Na configuração padrão mostrada para a
on
seção, os curingas (**
) na primeira linha dapaths
seção indicam que toda a ramificação está no caminho para os gatilhos de implantação.Essa configuração padrão significa que um fluxo de trabalho de implantação é acionado sempre que o conteúdo é enviado por push para qualquer parte da ramificação.
Mais adiante no arquivo, a
jobs
seção inclui a seguinte configuração padrão:directory: '${{ github.workspace }}'
. Essa linha indica que toda a ramificação do GitHub está no caminho para a implantação de conteúdo, sem filtragem para nenhum caminho de pasta.Para implantar conteúdo somente de um caminho de pasta específico, adicione-o
paths
à configuração edirectory
à configuração. Por exemplo, para implantar conteúdo somente de uma pasta raiz chamadaSentinelContent
, atualize seu código da seguinte maneira:paths: - `SentinelContent/**` - `!.github/workflows/**` # this filter prevents other workflow changes from triggering this workflow - `.github/workflows/sentinel-deploy-<deployment-id>.yml` ... directory: '${{ github.workspace }}/SentinelContent'
Para obter mais informações, consulte a documentação do GitHub sobre Ações do GitHub e edição de fluxos de trabalho do GitHub.
Importante
No GitHub e no Azure DevOps, certifique-se de manter consistentes os diretórios de caminho de gatilho e caminho de implantação.
Dimensione suas implantações com arquivos de parâmetros
Em vez de passar parâmetros como valores embutidos em seus arquivos de conteúdo, considere usar um arquivo de parâmetros Bicep ou um arquivo JSON que contenha os valores de parâmetro. Em seguida, mapeie esses arquivos de parâmetro para seus arquivos de conteúdo associados do Microsoft Sentinel para dimensionar melhor suas implantações em diferentes espaços de trabalho.
Há várias maneiras de mapear arquivos de parâmetros para os arquivos de conteúdo. Tenha em mente que os arquivos de parâmetro Bicep suportam apenas modelos de arquivo Bicep, mas os arquivos de parâmetro JSON suportam ambos. O pipeline de implantação de repositórios considera arquivos de parâmetros na seguinte ordem:
Existe um mapeamento no sentinel-deployment.config?
Para obter mais informações, consulte Personalizar a configuração da conexão.Existe um arquivo de parâmetro mapeado no espaço de trabalho? Sim, os arquivos de conteúdo estão no mesmo diretório com um arquivo de parâmetro mapeado no espaço de trabalho que corresponde a um destes padrões:
.<WorkspaceID.bicepparam.parameters-WorkspaceID><
>.jsonExiste um arquivo de parâmetro padrão? Sim, os arquivos de conteúdo estão no mesmo diretório com um arquivo de parâmetro correspondente a um destes padrões:
.bicepparam
.parameters.json
Evite conflitos com várias implantações de espaço de trabalho mapeando seus arquivos de parâmetro através do arquivo de configuração ou especificando o ID do espaço de trabalho no nome do arquivo.
Importante
Depois que uma correspondência de arquivo de parâmetro é determinada com base na precedência do mapeamento, o pipeline ignora todos os mapeamentos restantes.
Modificar o arquivo de parâmetro mapeado listado no sentinel-deployment.config aciona a implantação de seu arquivo de conteúdo emparelhado. Adicionar ou modificar um arquivo de parâmetro mapeado no espaço de trabalho ou um arquivo de parâmetro padrão também aciona uma implantação dos arquivos de conteúdo emparelhados juntamente com os parâmetros recém-modificados, a menos que um mapeamento de parâmetro de precedência maior esteja em vigor. Outros arquivos de conteúdo não são implantados enquanto o recurso de implantações inteligentes ainda estiver habilitado no arquivo de definição de fluxo de trabalho/pipeline.
Personalize a configuração da sua ligação
O script de implantação para repositórios suporta o uso de um arquivo de configuração de implantação para cada ramificação do repositório a partir de julho de 2022. O arquivo JSON de configuração ajuda a mapear arquivos de parâmetros para arquivos de conteúdo relevantes, priorizar conteúdo específico em implantações e excluir conteúdo específico de implantações.
Crie o arquivo sentinel-deployment.config na raiz do repositório. Adicionar, excluir ou modificar esse arquivo de configuração aciona uma implantação completa de todo o conteúdo no repositório de acordo com a configuração atualizada.
Inclua seu conteúdo estruturado em três seções opcionais,
"prioritizedcontentfiles":
,"excludecontentfiles":
e"parameterfilemappings":
. Se nenhuma seção for incluída ou o arquivo .config for omitido, o processo de implantação ainda será executado. Seções inválidas ou não reconhecidas são ignoradas.
Aqui está um exemplo de todo o conteúdo de um arquivo sentinel-deployment.config válido. Este exemplo também pode ser encontrado no exemplo de repositórios CICD do Microsoft Sentinel.
{
"prioritizedcontentfiles": [
"parsers/Sample/ASimAuthenticationAWSCloudTrail.json",
"workbooks/sample/TrendMicroDeepSecurityAttackActivity_ARM.json",
"Playbooks/PaloAlto-PAN-OS/PaloAltoCustomConnector/azuredeploy.bicep"
],
"excludecontentfiles": [
"Detections/Sample/PaloAlto-PortScanning.json",
"parameters"
],
"parameterfilemappings": {
"879001c8-2181-4374-be7d-72e5dc69bd2b": {
"Playbooks/PaloAlto-PAN-OS/Playbooks/PaloAlto-PAN-OS-BlockIP/azuredeploy.bicep": "parameters/samples/auzredeploy.bicepparam"
},
"9af71571-7181-4cef-992e-ef3f61506b4e": {
"Playbooks/Enrich-SentinelIncident-GreyNoiseCommunity-IP/azuredeploy.json": "path/to/any-parameter-file.json"
}
},
"DummySection": "This shouldn't impact deployment"
}
Nota
Não use o caractere de barra invertida "\" em nenhum dos caminhos de conteúdo. Em vez disso, use a barra "/".
Para priorizar arquivos de conteúdo:
À medida que a quantidade de conteúdo em seu repositório cresce, os tempos de implantação podem aumentar. Adicione conteúdo sensível ao tempo a esta seção para priorizar sua implantação quando ocorrer um disparador.
Adicione nomes completos de
"prioritizedcontentfiles":
caminhos à seção. No momento, não há suporte para correspondência de curingas.Para excluir arquivos de conteúdo, modifique a
"excludecontentfiles":
seção com nomes de caminho completos de arquivos de conteúdo .json individuais.Para mapear parâmetros:
O script de implantação aceita três métodos de mapeamento de parâmetros, conforme descrito em Dimensionar suas implantações com arquivos de parâmetro. O mapeamento de parâmetros por meio do sentinel-deployment.config tem a maior precedência e garante que um determinado arquivo de parâmetro seja mapeado para seus arquivos de conteúdo associados. Modifique a seção com o
"parameterfilemappings":
ID do espaço de trabalho da conexão de destino e os nomes completos dos caminhos dos arquivos .json individuais.
Conteúdos relacionados
Um repositório de exemplo está disponível demonstrando o arquivo de configuração de implantação e todos os três métodos de mapeamento de parâmetros. Para obter mais informações, consulte Exemplo de repositórios CICD do Microsoft Sentinel.