Consolidate data access control backoffice updates
This commit is contained in:
@@ -1,5 +1,30 @@
|
||||
# Redmine #546 - 외부 VM 배포 설계
|
||||
|
||||
## 현재 기준 배포 대상
|
||||
|
||||
이 문서의 최신 운영 기준은 아래와 같다. 과거 `hermes`/`130.162.134.59` 기록은 초기 개발·실험 배포 이력으로만 본다.
|
||||
|
||||
| 구분 | 값 |
|
||||
| --- | --- |
|
||||
| 개발·빌드 VM | `hermes` |
|
||||
| 공개 서비스 배포 VM | `opc@161.33.6.45` (`vnic-aidp-poc`) |
|
||||
| 공개 주소 | `https://kb.cloud-handson.com` |
|
||||
| DNS | `kb.cloud-handson.com → 161.33.6.45` |
|
||||
| VM 서비스 | `vpd-backoffice.service` |
|
||||
| 앱 수신 주소 | `127.0.0.1:8080` |
|
||||
| 공개 프록시 | Nginx `80/443 → 127.0.0.1:8080` |
|
||||
| 인증서 | Let’s Encrypt / Certbot Nginx plugin |
|
||||
| 앱 디렉터리 | `/home/opc/apps/vpd-backoffice` |
|
||||
| Wallet 디렉터리 | `/home/opc/apps/vpd-backoffice/wallet` |
|
||||
|
||||
반복 배포 시 완료 판정은 반드시 공개 주소 기준으로 한다.
|
||||
|
||||
```bash
|
||||
curl -k -sS https://kb.cloud-handson.com/login
|
||||
```
|
||||
|
||||
`hermes` 내부의 `8082` 응답만 확인하고 완료 처리하지 않는다. `8082`는 과거/개발 배포 경로에 해당할 수 있다.
|
||||
|
||||
## 프로젝트 개요
|
||||
|
||||
VPD Backoffice는 Oracle Database VPD/ORDS 기능을 백오피스 권한 테이블로 제어하는 Spring Boot 관리 도구다. 사용자는 Oracle DB schema user가 아니라 Bearer Token으로 식별되는 application user이며, 사용자/그룹/역할/권한/행 규칙/컬럼 NULL 처리 설정이 VPD policy function과 ORDS 조회 결과에 반영된다.
|
||||
@@ -16,7 +41,8 @@ VPD Backoffice는 Oracle Database VPD/ORDS 기능을 백오피스 권한 테이
|
||||
|
||||
## 배포 방식
|
||||
|
||||
- 기본 대상 SSH host는 `hermes`로 두되, 스크립트 인자로 다른 SSH alias를 받을 수 있게 한다.
|
||||
- 기본 개발/빌드 host는 `hermes`일 수 있으나, 공개 서비스 배포 대상은 `opc@161.33.6.45`다.
|
||||
- 배포 스크립트의 기본값이 `hermes`인 경우, 운영 배포에서는 반드시 `--host` 또는 SSH alias가 `161.33.6.45`를 가리키는지 확인한다.
|
||||
- 로컬에서 `mvn -DskipTests package`로 jar를 빌드한다.
|
||||
- 원격 디렉토리 기본값은 `~/apps/vpd-backoffice`다.
|
||||
- 배포 패키지 구성:
|
||||
@@ -39,9 +65,9 @@ VPD Backoffice는 Oracle Database VPD/ORDS 기능을 백오피스 권한 테이
|
||||
- `scripts/deploy-backoffice-vm.sh`가 jar, `.env`, wallet, start/stop/status 스크립트를 원격에 설치할 수 있다.
|
||||
- 대상 alias가 없으면 명확하게 실패한다.
|
||||
- 배포 후 원격 `status.sh`와 HTTP `/login` 헬스체크가 가능하다.
|
||||
- OCI NSG와 VM firewalld에서 운영자 IP 기준 `8082/tcp` 접근을 허용한다.
|
||||
- 현재 공개 운영에서는 Nginx 80/443만 외부에 열고, Spring Boot 애플리케이션 포트는 VM 내부 loopback으로 제한한다.
|
||||
|
||||
## 배포 결과
|
||||
## 과거 hermes 배포 결과
|
||||
|
||||
- 배포 대상: `hermes` / `opc@130.162.134.59`
|
||||
- 원격 경로: `/home/opc/apps/vpd-backoffice`
|
||||
@@ -77,8 +103,8 @@ VPD Backoffice는 Oracle Database VPD/ORDS 기능을 백오피스 권한 테이
|
||||
|
||||
- `mvn test`
|
||||
- `scripts/deploy-backoffice-vm.sh --dry-run`
|
||||
- `ssh hermes` 접속 확인
|
||||
- `scripts/deploy-backoffice-vm.sh --host hermes --skip-build`
|
||||
- 운영 배포 대상 SSH alias가 `opc@161.33.6.45`를 가리키는지 확인
|
||||
- 운영 배포 대상의 `systemctl status vpd-backoffice` 확인
|
||||
- 원격 내부 `/login` HTTP 200
|
||||
- 외부 `/login` HTTP 200
|
||||
- `systemctl status vpd-backoffice`가 `active (running)`이고 앱 로그에서 `vpd-backoffice-pool` 연결이 성공한다.
|
||||
|
||||
Reference in New Issue
Block a user