앞서 최소사양으로 CloudForet을 구성 및 AWS와 연동
다만, 멀티 클라우드 관리에 대한 확인을 하고 싶어 심화 과정 시작
현재 AWS는 연동되어 있는 상태
SCP를 추가적으로 연동하여 멀티 클라우드 관리 진행
SCP Plugin이 없으므로 아래와 같이 진행하기로 결정
1단계: SCP API로 VM 목록 조회하는 Python 스크립트 성공
2단계: 조회 결과를 CloudForet Inventory CloudService 포맷으로 변환
3단계: SpaceONE Collector Plugin 구조로 패키징
4단계: Docker 이미지 빌드
5단계: CloudForet에 Plugin 등록
6단계: Collector 생성 후 SCP Service Account 연결
7단계: Cloud Service 화면에 SCP VM 표시 확인
SCP API로 VM 목록 조회하는 Python 스크립트 성공
===============================================================================
🔍 SCP Virtual Server 목록 조회 시작
================================================================================
스크립트 위치: c:\Users\user\Desktop\MZC\Z-mzc\OpenAPI 작업
인증정보 파일: c:\Users\user\Desktop\MZC\Z-mzc\OpenAPI 작업\scp_credentials.json
결과 저장 파일: c:\Users\user\Desktop\MZC\Z-mzc\OpenAPI 작업\scp_vm_list.parsed.json
================================================================================
⚙️ 설정 요약
================================================================================
OpenAPI Endpoint: https://openapi.samsungsdscloud.com
Project ID: PROJECT-
Client Type: OpenApi
Resource Type: PROJECT
Language: en-US
SSL Verify: False
Access Key: sBAM****
📄 페이지 조회 중: page=0, size=100
HTTP Status Code: 200
전체 VM 개수: 5
현재까지 조회된 VM 수: 5
================================================================================
✅ SCP VM 조회 완료: 5개
================================================================================
[1] name=bastion-001, id=INSTANCE-H0n--iGlIgfhed, state=STOPPED, private_ip=192.168, image_id=IMAGE-TYn75EWMtgcTM7qZBaL7-a, service=Virtual Server, created_at=2026-05-28T11:23:17.263794+09:00
[2] name=backup-02-001, id=INSTANCE-TsS62YOMYpJVTyd, state=STOPPED, private_ip=192.168, image_id=IMAGE-k4Vwue-usTcVS9tp0chgGa, service=Virtual Server, created_at=2026-05-28T11:21:47.861308+09:00
[3] name=backup-01-001, id=INSTANCE-_L-p8BkBiZSgZuYCm, state=STOPPED, private_ip=192.168, image_id=IMAGE-TYn75EWMtgcTM7qZBaL7-a, service=Virtual Server, created_at=2026-05-28T11:19:48.349298+09:00
[4] name=vm-pms-test, id=INSTANCE-4rNcjYmNs7dji4Amd, state=RUNNING, private_ip=192.168, image_id=IMAGE-25Z0imVfs2mMGxiBMnKmop, service=Virtual Server, created_at=2026-04-20T14:51:47.746695+09:00
[5] name=test-001, id=INSTANCE-7W1BHSAZtvfH15gj, state=STOPPED, private_ip=192.168, image_id=IMAGE-25Z0imVfs2mMGxiBMnKmop, service=Virtual Server, created_at=2026-03-06T13:45:30.489579+09:00
================================================================================
💾 파일 저장 완료
================================================================================
파일 경로: c:\Users\user\Desktop\MZC\Z-mzc\OpenAPI 작업\scp_vm_list.parsed.json
파일 크기: 5,399 bytes
================================================================================
✅ 작업 완료
================================================================================
PS C:\Users\user\Desktop\MZC\Z-mzc\OpenAPI 작업>
SCP Collector Plugin 생성
scp-vm-inven-collector/
├── Dockerfile
├── requirements.txt
├── setup.py
└── src/
└── spaceone/
└── inventory/
└── plugin/
└── collector/
├── service.py
├── connector/
│ └── scp_connector.py
└── manager/
└── vm_manager.py
src/spaceone/inventory/conf/global_conf.py
src/spaceone/inventory/conf/__init__.py
src/spaceone/inventory/connector/__init__.py
src/spaceone/inventory/connector/__pycache__/__init__.cpython-311.pyc
src/spaceone/inventory/connector/__pycache__/scp_connector.cpython-311.pyc
src/spaceone/inventory/connector/scp_connector.py
src/spaceone/inventory/__init__.py
src/spaceone/inventory/interface/grpc/collector.py
src/spaceone/inventory/interface/grpc/__init__.py
src/spaceone/inventory/interface/grpc/__pycache__/collector.cpython-311.pyc
src/spaceone/inventory/interface/grpc/__pycache__/__init__.cpython-311.pyc
src/spaceone/inventory/interface/__init__.py
src/spaceone/inventory/manager/__init__.py
src/spaceone/inventory/manager/__pycache__/vm_manager.cpython-311.pyc
src/spaceone/inventory/manager/vm_manager.py
src/spaceone/inventory/__pycache__/__init__.cpython-311.pyc
src/spaceone/inventory/service/collector_service.py
src/spaceone/inventory/service/__init__.py
src/spaceone/inventory/service/__pycache__/collector_service.cpython-311.pyc
src/spaceone/inventory/service/__pycache__/__init__.cpython-311.pyc
spacectl를 이용한 SCP Provider 등록
콘솔에서 SCP용 Service Account 생성 시
Add 버튼 비활성으로 SA 생성 실패 → spacectl을 이용하여 생성
kubectl exec -i -n spaceone spacectl -- sh -c 'cat > /tmp/scp_service_account.yaml' <<EOF
---
name: oliver_scp
provider: scp
project_id: ${CF_PROJECT_ID}
service_account_type: GENERAL
data:
access_key: "${SCP_ACCESS_KEY}"
access_secret_key: "${SCP_SECRET_KEY}"
project_id: "${SCP_PROJECT_ID}"
client_type: "OpenApi"
language: "en-US"
resource_type: "PROJECT"
base_endpoint: "https://openapi.samsungsdscloud.com"
region_code: "scp-commercial"
ssl_verify: false
tags: {}
EOF
kubectl exec -n spaceone spacectl -- \
spacectl exec create identity.ServiceAccount -f /tmp/scp_service_account.yaml

콘솔에서 SCP용 Collector 생성 시
Collector 생성 실패 → spacectl을 이용하여 생성
kubectl exec -i -n spaceone spacectl -- sh -c 'cat > /tmp/scp_collector.yaml' <<'EOF'
---
name: SCP VM Collector
provider: scp
plugin_info:
plugin_id: scp-vm-collector
version: "0.1.8"
upgrade_mode: MANUAL
schedule:
state: DISABLED
secret_filter:
state: ENABLED
service_accounts:
- sa-d88be3973e9a
tags:
description: SCP VM Collector created by CLI
EOF
kubectl exec -n spaceone spacectl -- \
spacectl exec create inventory.Collector -f /tmp/scp_collector.yaml

기존에 없던 삼성클라우드플랫폼(SCP) Provider 생성 후
AWS와 SCP의 멀티클라우드 관리 가능 확인


자세한 과정은 다음 게시글에서 핵심 정리