
보안 규정 준수 플랫폼 - SOC2, CMMC, ASVS, ISO27001, HIPAA, NIST CSF, NIST 800-53, CSC CIS 18, PCI DSS, SSF 추적
Gapps는 다양한 보안 프레임워크에 대한 진행 상황을 쉽게 추적할 수 있는 보안 규정 준수 플랫폼입니다.
❄️ Gapps 사이트 보기
🏠 연락에 관심이 있으신가요? 디스코드에 가입해 주세요.
| 컨트롤 대시보드 |
|---|
![]() |
| 프로젝트 개요 |
|---|
![]() |
| 컨트롤 진행 상황 추적 |
|---|
![]() |
문서 문서를 참조하십시오
[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?
도커 내에서 실행 중인 경우 일반적으로 두 변수를 해제하여 해결할 수 있습니다. 외부 데이터베이스를 사용하려면 다음 FAQ를 참조하십시오.
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=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.sh 실행docker compose up 실행docker 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 Hub에서 원하는 버전으로 docker-compose.yml 파일을 편집하십시오. 구성 파일에서 이전 버전이 보이는 곳(4개 인스턴스여야 함)을 원하는 버전으로 업데이트하십시오. (예: bmarsh13/gapps:3.3.9 -> bmarsh13/gapps:3.4.0)
2.) docker-compose up -d
3.) 필요한 경우 데이터베이스 마이그레이션 수행
UI 내에서 새 프레임워크 및 컨트롤을 항상 생성할 수 있지만 시간이 오래 걸립니다. 대신 Gapps에 JSON 파일을 로드할 수 있습니다.
형식은 컨트롤과 서브컨트롤로 구성됩니다. 아래 스니펫은 하나의 서브컨트롤을 가진 컨트롤의 예를 보여주지만 원하는 만큼 추가할 수 있습니다. 컨트롤에 서브컨트롤이 필요하지 않습니다(0개 가능). 그러나 컨트롤을 추적 가능한 특정 작업으로 분해하려는 경우 유용할 수 있습니다. 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이어야 함)에 저장하십시오. 프레임워크 이름은 Gapps가 로드할 때 파일 이름에서 가져옵니다(이 경우 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 토큰을 생성할 수 있습니다.
# Create token that expires in 15 minutes
<gapps-host>/api/v1/token
# Create token that expires in 30 seconds
<gapps-host>/api/v1/token?expiration=30
# Create token that never expires
<gapps-host>/api/v1/token?expiration=0
다음은 토큰을 사용하여 인증하는 방법입니다 (curl 예제)
TOKEN="TOKEN HERE"
curl <gapps-host>/api/v1/tenants -H "token: $TOKEN"