ministryofjustice/opg-incident-response

GitHub: ministryofjustice/opg-incident-response

基于Django和Monzo Response构建的Slack深度集成事件响应管理平台,支持事件追踪、PagerDuty告警和GOV.UK标准界面。

Stars: 4 | Forks: 2

# OPG Incident Response ⚡ OPG Incident Response 是一个基于 Django 的应用程序,基于 [Monzo 的 Response 工具](https://github.com/monzo/response) 构建,并集成了我们使用的一些额外工具,同时重新设计了界面以符合 GOV.UK 设计标准。 ## 本地开发 要在本地启动应用程序,请将 `env.dev.example` 复制到 `.env` 并配置其中的环境变量。所有环境变量都需要设置,但有些可以设置为无意义的值(即 `ENV_VAR=...`),如下表所详述。 你需要按照以下说明配置一个 Slack 应用,然后可以使用 `docker-compose up -d` 启动应用程序。该应用将由 nginx 在 ```http://localhost:80/``` 上提供服务 请注意,如果你正在使用 ngrok,他们现在引入了认证令牌。你可以将 NGROK_AUTHTOKEN 添加到本地 .env 文件中,它将被传递到容器中,这样你就不会冒着将其提交的风险。 ## 版本与发布 该项目使用 [SemVer](https://semver.org) 进行版本控制。 默认情况下,任何合并到 main 分支的操作都将是一个 MINOR 版本发布。你可以通过在进入 main 的提交消息中添加 `#major`、`#minor` 或 `#patch` 来控制要增加的版本号。 ### 配置 Slack 为了避免污染我们真实的 Slack 工作区,并让你完全控制权限,你应该使用 [你自己的 Slack 工作区](#slack-create) 配置应用程序的本地副本。 你现在需要 [创建一个 Slack 应用](#slack-app-create) 并 [对其进行配置](#slack-app-config)。请注意,你需要公开的 ngrok URL 来配置供 Slack 使用的端点,你可以在运行 ```docker-compose up``` 后通过访问 ```localhost:4040``` 上的 ngrok 管理页面找到该 URL。 配置完应用后,Slack 将为你提供 bot OAuth token(以 `xoxb-` 开头)和签名密钥(signing secret),应分别用于 `SLACK_TOKEN` 和 `SLACK_SIGNING_SECRET` 环境变量。你还需要将 `SLACK_TEAM_ID` 设置为你的 Slack 工作区的团队 ID。 最后,你需要将 `INCIDENT_BOT_ID` 和 `INCIDENT_BOT_NAME` 设置为你的 bot ID 和公开名称;并将 `INCIDENT_CHANNEL_NAME` 和 `INCIDENT_REPORT_CHANNEL_NAME` 设置为你希望报告所有事件的核心频道(例如 `opg-incident`)。 如果你重启 ngrok,它将生成一个新的公开 URL,你必须重新配置 Slack 应用以引用该 URL。 ### 配置其他集成 #### GitHub 登录 GitHub 登录在开发模式下默认关闭,但你可以通过在 `dev.py` 中启用 `RESPONSE_LOGIN_REQUIRED` 设置来开启它。 要连接到 GitHub,你需要创建一个 GitHub OAuth App,并分别将环境变量 `SOCIAL_AUTH_GITHUB_KEY` 和 `SOCIAL_AUTH_GITHUB_SECRET` 设置为该应用的密钥(key)和密文(secret)。在 ministryofjustice 组织中已经有一个名为 "opg-response-development" 的应用,专门用于本地开发。 ### 环境变量 | Variable | Real value required? | Details | | ---------------------------- | ------------------------------ | --------------------------------------------------------------------------------------------------- | | SECRET_KEY | Yes | Used by Django, can be set to anything | | DJANGO_SETTINGS_MODULE | Yes | Specifies which settings to use. Should be `opgincidentresponse.settings.dev` in local environments | | SOCIAL*AUTH*\* | Only if testing authentication | There's already a dev/localhost and production GitHub app you can use | | SLACK_TOKEN | Yes | Provided when you create a Slack app | | SLACK_SIGNING_SECRET | Yes | Provided when you create a Slack app | | SLACK_TEAM_ID | Yes | You should test in a private team, not MOJD&T | | INCIDENT_BOT_ID | Yes | The ID of your test app | | INCIDENT_BOT_NAME | Yes | The name of your test app | | INCIDENT_CHANNEL_NAME | Yes | The channel to post new live incidents to | | INCIDENT_REPORT_CHANNEL_NAME | Yes | The channel to post new incident reports to | | PAGERDUTY_API_KEY | Only if testing PagerDuty | Provided by Pagerduty | | PAGERDUTY_EMAIL | Only if testing PagerDuty | Provided by Pagerduty | | PAGERDUTY_SERVICE | Only if testing PagerDuty | Provided by Pagerduty | ## 资源 ### django-createsuperuser [https://docs.djangoproject.com/en/3.1/ref/django-admin/#createsuperuser](https://docs.djangoproject.com/en/3.1/ref/django-admin/#createsuperuser) ### 创建 slack [https://slack.com/get-started#/create](https://slack.com/get-started#/create) ### 创建 slack-app [https://github.com/monzo/response/blob/master/docs/slack_app_create.md](https://github.com/monzo/response/blob/master/docs/slack_app_create.md) ### 配置 slack-app [https://github.com/monzo/response/blob/master/docs/slack_app_config.md](https://github.com/monzo/response/blob/master/docs/slack_app_config.md)
标签:Django, DNS解析, Docker, Docker-Compose, ECS, FTP漏洞扫描, GOV.UK标准, Incident Management, Monzo Response, Nginx, Ngrok, Python, Slack集成, Terraform, 协作工具, 团队协作, 安全编排, 安全防御评估, 工单系统, 库, 应急响应, 开源项目, 无后门, 本地开发, 状态页, 网络研究, 网络调试, 自动化, 警报管理, 请求拦截, 运维工具, 逆向工具