Gapps 是一个安全合规平台,可轻松跟踪您针对多种安全框架的进展。
❄️ 查看 Gapps 网站
🏠 有兴趣联系我吗?请加入我们的 Discord
| 控制面板 |
|---|
![]() |
| 项目概览 |
|---|
![]() |
| 控制项进度跟踪 |
|---|
![]() |
请参考文档 文档
[INFO] Checking if we can connect to the database server: postgresql://db1:db1@localhost/db1
[ERROR] could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Cannot assign requested address
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
通常可以通过取消设置两个变量来解决(如果在 Docker 内运行)。如果希望使用外部数据库,请参见下一个常见问题。
unset SQLALCHEMY_DATABASE_URI
unset POSTGRES_HOST
值 db1 是用户名、数据库和密码的默认值。如需更改,请将 db1 替换为相应值,并将 postgres 替换为主机名。
export POSTGRES_HOST=${POSTGRES_HOST:-postgres}
export POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-db1}
export POSTGRES_USER=${POSTGRES_USER:-db1}
export POSTGRES_DB=${POSTGRES_DB:-db1}
export SQLALCHEMY_DATABASE_URI="postgresql://db1:db1@postgres/db1"
首次启动 Gapps 时,它将自动创建数据库模型。如果要重置数据(例如删除所有数据),可以设置 RESET_DB 环境变量,例如 export RESET_DB=yes。
有时您可能希望在 Docker 之外运行 Gapps。可以通过启动 Postgres 容器,然后在前台启动 Gapps 来实现。
docker-compose up -d postgresexport POSTGRES_HOST=${POSTGRES_HOST:-localhost}
export POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-db1}
export POSTGRES_USER=${POSTGRES_USER:-db1}
export POSTGRES_DB=${POSTGRES_DB:-db1}
export SQLALCHEMY_DATABASE_URI="postgresql://db1:db1@localhost/db1"
export FLASK_CONFIG=development;bash run.shdocker compose updocker exec -e ONESHOT=yes gapps env
docker exec -e INIT_MIGRATE=yes -e MIGRATE=yes -e ONESHOT=yes gapps bash run.sh
或者
docker-compose up -d
docker exec -it gapps bash
python3 manage.py db migrate
python3 manage.py db stamp head
python3 manage.py db upgrade
exit
警告 - 这将删除数据库中的所有数据!
docker exec -it gapps bash
python3 tools/check_db_connection.py
python3 tools/check_db_models.py
python3 manage.py init_db
1.) 编辑 docker-compose.yml 文件,将版本改为 Docker Hub 上所需的版本。将 compose 文件中出现旧版本的任何地方(应该为 4 处)更新为所需版本。(例如 bmarsh13/gapps:3.3.9 -> bmarsh13/gapps:3.4.0)
2.) docker-compose up -d
3.) 如有必要,执行数据库迁移
您始终可以在 UI 中创建新框架和控制项——但这会花费很长时间。相反,您可以将 JSON 文件加载到 Gapps 中。
格式包含控制项和子控制项。以下代码片段展示了一个控制项包含一个(1)子控制项的示例,但您可以根据需要添加任意多个。控制项不一定需要子控制项(可以为零)。但如果您希望将一个控制项分解为可跟踪的特定操作,那么拥有子控制项可能是有意义的。以 CIS 18 框架为例,您可以将所有 18 个“域”作为控制项,每个域内的控制项作为 Gapps 中的子控制项。
[
{
"name": "Limit information system access to authorized users, processes acting on behalf of authorized users or",
"description": "Maintain list of authorized users defining their identity and associated role and sync with sys",
"guidance": "List approved users, services, and devices, and have logical controls in place to prevent unauthor",
"ref_code": "AC.L1-3.1.1",
"system_level": false,
"subcategory": "Identity & Access Management (IAM)",
"category": "Access Control",
"dti": "easy",
"dtc": "easy",
"meta": {},
"subcontrols": [
{
"ref_code": "3.1.1.a",
"name": "Authorized users are identified.",
"description": "Authorized users are identified.",
"meta": {},
"tasks": [
{
"title": "title of the task",
"description": "description of the task"
}
]
}
]
}
]
接下来,将上述 JSON 格式保存为一个文件(例如 my_framework.json,但必须以 .json 结尾)。框架名称将取自文件名(本例中为 my_framework)。将文件保存在 app/files/base_controls/ 目录中。您也可以通过设置 FRAMEWORK_FOLDER 环境变量来更改加载目录。将新框架保存到文件并放置在框架目录后,您就可以在 UI 中创建新的租户。Gapps 会自动加载您的框架。如果要向现有租户添加框架,请前往“Tenants”页面,编辑该租户,然后点击“Reload Frameworks”按钮。
docker build -t gapps:3.4.3 .
docker tag gapps:3.4.3 bmarsh13/gapps:3.4.3
docker push bmarsh13/gapps:3.4.3
您可以通过在浏览器中访问以下路由来生成 API 令牌
# 创建 15 分钟后过期的令牌
<gapps-host>/api/v1/token
# 创建 30 秒后过期的令牌
<gapps-host>/api/v1/token?expiration=30
# 创建永不过期的令牌
<gapps-host>/api/v1/token?expiration=0
以下是如何使用令牌进行认证(以 curl 为例)
TOKEN="TOKEN HERE"
curl <gapps-host>/api/v1/tenants -H "token: $TOKEN"