CB‐Spider Permission Based Control Test Guide - cloud-barista/cb-spider GitHub Wiki
Permission Based Control은 다양한 클라우드 리소스(VPC
, Subnet
, Security Group
, Key Pair
, VM
)에 대해 권한을 기반으로 읽기/쓰기를 수행하는 것을 말합니다.
Permission Based Cointrol Test에서는 각 리소스에 대해 읽기/쓰기 권한이 다른 Connection에서 생성, 조회, 삭제할 수 있는지 검증합니다.
cloud-permission-test/
│── 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 별 권한을 명확히 검증하여, 의도치 않은 리소스 접근을 방지
- 병렬 테스트 구조로 빠르고 안정적인 검증 수행