-
Notifications
You must be signed in to change notification settings - Fork 49
CB‐Spider Permission Based Control Test Guide
ByoungSeob Kim edited this page Jun 12, 2025
·
3 revisions
Permission Based Control은 다양한 클라우드 리소스(VPC
, Subnet
, Security Group
, Key Pair
, VM
)에 대해 권한을 기반으로 읽기/쓰기를 수행하는 것을 말합니다.
Permission Based Cointrol Test에서는 각 리소스에 대해 읽기/쓰기 권한이 다른 Connection에서 생성, 조회, 삭제할 수 있는지 검증합니다.
cb-spider/test/permissionTest/
│── main.go
│── test_runner.go
│── request/
│ ├── request.go
│── connection/
│ ├── connection.go
│── resources/
│ ├── vpc.go
│ ├── subnet.go
│ ├── securitygroup.go
│ ├── keypair.go
│ ├── vm.go
파일명 | 설명 |
---|---|
main.go |
테스트 실행 (go run main.go 실행) |
test_runner.go |
모든 리소스의 생성(Create) → 조회(Read) → 삭제(Delete) 를 관리 |
request/request.go |
API 요청을 처리 (SendRequest ) |
connection/connection.go |
Connection 정보 (읽기/쓰기 권한 포함) |
resources/*.go |
개별 리소스(VPC, Subnet, Security Group, Key Pair, VM) 관리 |
이 테스트는 4가지 Connection에서 수행됩니다.
Connection Name | 설명 | 생성 | 조회 | 삭제 |
---|---|---|---|---|
rw-conn |
읽기/쓰기 가능 | ✅ 가능 | ✅ 가능 | ✅ 가능 |
rw-conn2 |
읽기/쓰기 가능 | ✅ 가능 | ✅ 가능 | ✅ 가능 |
readonly-conn |
읽기 전용 | ❌ 불가능 | ✅ 가능 | ❌ 불가능 |
non-permission-conn |
권한 없음 | ❌ 불가능 | ❌ 불가능 | ❌ 불가능 |
각 Connection의 권한에 따라 리소스에 대한 요청이 성공/실패하는지 검증합니다.
모든 리소스는 의존 관계에 따라 생성 → 조회 → 삭제 순서로 진행됩니다.
1️⃣ Create (생성)
-
VPC
→Subnet
→Security Group
→Key Pair
→VM
- 각 Connection이 허용된 리소스를 생성
2️⃣ Read (조회)
- 생성된 리소스를 읽을 수 있는지 확인
-
readonly-conn
은 읽기 가능해야 함 -
non-permission-conn
은 500 에러 발생해야 함
3️⃣ Delete (삭제)
- 역순으로 삭제 (VM → Key Pair → Security Group → VPC)
- 삭제가 완료된 리소스가 조회되지 않아야 함
4️⃣ 환경 설정 (Setup.env 적용 필요)
- 테스트 실행 전에 환경 변수를 설정해야 합니다.
-
setup.env
파일에는 Connection 정보 및 VM 생성에 필요한 Image, Spec 설정 값이 포함되어야 합니다. - 예시 설정:
export RW_CONN_NAME=aws-rw-conn
export RW_CONN2_NAME=aws-rw-conn2
export READONLY_CONN_NAME=aws-readonly-conn
export NON_PERMISSION_CONN_NAME=aws-non-permission-conn
export VM_IMAGE=ami-00978328f54e31526
export VM_SPEC=t2.micro
이후 source setup.env
를 실행하여 환경 변수를 적용해야 합니다.
1️⃣ 프로젝트 디렉토리에서 실행
go run main.go
2️⃣ 출력 확인
-
성공 메시지 (
[SUCCESS]✅
) → 기대한 동작 수행 -
권한 제한 메시지 (
[PERMISSION-SUCCESS✅
) → 정상적으로 차단됨 -
오류 메시지 (
[ERROR]
) → 예상과 다른 결과 발생
- 자동화된 권한 검증 시스템을 통해 클라우드 리소스의 접근 권한을 테스트
- Connection 별 권한을 명확히 검증하여, 의도치 않은 리소스 접근을 방지
- 병렬 테스트 구조로 빠르고 안정적인 검증 수행
-
Install & Start Guide
-
Features & Usage
-
- AdminWeb Tool Guide
- CLI Tool Guide
- REST API Guide
- NLI Guide
-
Design
-
Developer Guide
-
Cloud Driver Developer Guide
- Cloud Driver Developer Guide-WIP
- VM SSH Key Development Guide-WIP
- VM User Development Guide
- What is the CSP SDK API Version of drivers
- Region Zone Info and Driver API
- Price Info and Driver API
- (StartVM TerminateVM) API Call Counts and Waiting
- StartVM and TerminateVM Main Flow of drivers
- VM Root Disk Configuration Guide
- Security Group Rules and Driver API
- Network Load Balancer and Driver API
- VM Snapshot, MyImage and Disk Overview
- Kubernetes and Driver API(PMKS, K8S)
- Tag and Cloud Driver API
- AnyCall API Extension Guide
-
Test Reports
- v0.2.8-for-espresso-release
- v0.3.0-espresso-release
- Azure:Terminating VM
- cb-user@VM: ssh login, sudo run
- v0.3.14 test for SG Source
- v0.4.0-cafemocha-release
- Test via REST API Gateway
- Test Reports of v0.4.11 (IID2 initial Version)
- Test Reports of v0.4.12 (Register & Unregister existing Resources)
- Test Reports for v0.6.0 Release
- How to ...
- How to Use Alibaba ECS i1.* Instance Types
- How to provision GPU VMs
- How to Resolve the 'Failed to Connect to Database' Error
- How to test CB Spider with Mock Driver
- How to install CB Spider on WSL2 under 공유기/사설망
- How to install CB Spider on macOS
- How to run CB Spider Container on macOS
- How to install OpenStack on a VM for CB Spider Testing
- How to get Azure available Regions
- How to profile memory usage in Golang
- Deprecated:How to install protoc and plugins
- [For Cloud-Migrator]