No final do dia, teremos todas essas contas gerando findings de segurança e enviando para o Security Hub da conta de segurança, que é delegada para administrar os seviços de segurança a partir de um permissionamento feito na conta payer (root). A partir disso, queremos que esses findings sejam enviados para o Opsgenie para que possamos abrir um alerta e tomar as ações necessárias.
Com o alerta aberto no Opsgenie, podemos a partir dele integrar com outros serviços, como o Jira, Slack, Teams e etc.
- O AWS EventBridge é um serviço de integração de eventos. Ele permite que você capture eventos de várias fontes, incluindo serviços da AWS como o Security Hub, e os direcione para diferentes destinos, como o AWS SNS. Com o EventBridge, você pode criar regras que definem quais eventos devem ser capturados e para onde eles devem ser enviados.
- O AWS SNS é um serviço de mensagens e notificações que facilita a comunicação entre sistemas distribuídos. Ele permite que você publique mensagens para tópicos e que os assinantes desses tópicos recebam essas mensagens.
- O Amazon Security Hub é um serviço que centraliza e automatiza a segurança de múltiplas contas AWS e ajuda a identificar e corrigir problemas de segurança a partir de uma interface única. Ele conecta findings de segurança de outros produtos de segurança da AWS, como Inpsector, Macie e GardDuty.
- O Opsgenie é um serviço de gerenciamento de alertas que permite que você gerencie, responda e resolva incidentes de TI de forma eficiente. Ele fornece alertas em tempo real e notificações para ajudar a garantir que você esteja ciente de problemas críticos em seu ambiente.
Time de segurança manualmente trigga uma custom action na interface web do Amazon Security Hub para que o finding seja enviado para o Opsgenie e um alerta seja aberto.
O Security Hub detecta um finding e envia um evento para o EventBridge, que faz uma primeira filtragem para validar se o seu evento será enviado para o SNS. Se for, o SNS envia o evento para o Opsgenie, que cria um alerta com base no evento recebido. Agora, o time de segurança acompanha e é escalado automaticamente sempre que uma nova vulnerabilidade for descoberta.
Name | Version |
---|---|
terraform | >= 1.8 |
aws | ~> 5.70 |
opsgenie | ~> 0.6 |
time | ~> 0.12 |
Name | Version |
---|---|
aws | 5.70.0 |
opsgenie | 0.6.37 |
time | 0.12.1 |
Name | Source | Version |
---|---|---|
cw_opsgenie_sh_custom_action | terraform-aws-modules/cloudwatch/aws//modules/log-group | ~> 5.6 |
eventbridge | terraform-aws-modules/eventbridge/aws | ~> 3.11 |
Name | Type |
---|---|
aws_iam_policy.this | resource |
aws_iam_role.this | resource |
aws_iam_role_policy_attachment.this | resource |
aws_securityhub_action_target.opsgenie | resource |
aws_sns_topic.this | resource |
aws_sns_topic_policy.this | resource |
aws_sns_topic_subscription.this | resource |
opsgenie_api_integration.this | resource |
opsgenie_escalation.this | resource |
opsgenie_team.this | resource |
time_static.creation | resource |
aws_caller_identity.current | data source |
aws_region.current | data source |
opsgenie_user.users | data source |
Name | Description | Type | Default | Required |
---|---|---|---|---|
aws_environment | The environment to deploy the resources | string |
"production" |
no |
aws_region | AWS region to deploy the resources | string |
"us-east-1" |
no |
opsgenie_api_key | API Key of Opsgenie | string |
n/a | yes |
opsgenie_team_description | Team description of Opsgenie | string |
n/a | yes |
opsgenie_team_name | Team name of Opsgenie | string |
n/a | yes |
opsgenie_users | Opsgenie list users and roles | list(map(string)) |
n/a | yes |
Name | Description |
---|---|
aws_account_id | Selected AWS Account ID |
aws_region | Details about selected AWS region |
opsgenie_security_hub_role_arn | ARN of the IAM Role created for Opsgenie Security Hub Integration |
opsgenie_security_hub_role_name | Name of the IAM Role created for Opsgenie Security Hub Integration |
Informações adicionais para que você possa configurar e utilizar a integração.
Warning
Após a execução do projeto Terraform, você terá que finalizar a configuração do Opsgenie pela interface web. Para isso, siga os passos abaixo.
Step 1:
Acesse sua integração no Opsgenie e clique no botão de "Editar".
Step 2:
Selecione a opção de se autenticar com a conta do Amazon Security Hub.
Step 3:
Coloque a role criada pelo Terraform no campo de "Role ARN", selecione a região do Amazon Security Hub e clique em "Salvar".
Ao final desse processo você estará apto para receber os findings do Security Hub no Opsgenie.
Para customizar seus alertas, você deverá editar a regra de "Incoming" da sua integração.
Na imagem acima é exemplificado como você pode customizar suas regras de alerta. Nesse caso, temos:
- Criar alerta para severidade CRITICAL.
- Criar alerta para severidade HIGH.
Cada regra de alerta permite personalizar vários elementos, como:
- Mensagem
- Prioridade
- Tags
- Alias
- Descrição
- Entidade
- Notas
Ao criar uma regra, você poderar editar esses campos para que o alerta seja mais informativo e relevante para sua equipe.
Além disso, o Opsgenie possui uma feature chamada Dynamic fields. Esses campos são usados para:
- Personalizar propriedades (elementos) do alerta.
- Ajustar condições do alerta com base em informações atualizadas.
Usando Dynamic fields você pode criar alertas que se adaptam automaticamente às mudanças em seu ambiente.
Gostaria de contribuir? Isso é ótimo! Temos um guia de contribuição para te ajudar. Clique aqui para lê-lo.
Para verificar o histórico de mudanças do projeto, acesse o arquivo CHANGELOG.md.
Se você tiver algum problema, abra uma issue nesse projeto.
Dê uma ⭐️ para esse projeto se ele te ajudou!
Feito com 💜 por mim 👋 inspirado no readme-md-generator