Skip to content

[FEATURE] 프로젝트 생성, AWS 계정 연동, AWS 리소스 생성 로직 리팩토링 #174

@grovince

Description

@grovince

프로젝트 생성, AWS 계정 연동, AWS 리소스 생성 로직 테스트 및 리팩토링

시나리오 1: 프로젝트 생성

API: POST /api/v1/organizations

Request 예시:

{
  "orgName": "My Test Project",
  "description": "테스트 프로젝트"
}

테스트 체크리스트:

  • HTTP 201 Created 응답 확인
  • organizationId 반환 확인
  • tenantKey 자동 생성 확인
  • 데이터베이스에 Organization 레코드 생성 확인
  • 데이터베이스에 Tenant 레코드 생성 확인 (1:1 관계)

시나리오 2: AWS 계정 연동

2-1. 자격증명 등록

API: POST /api/v1/cloud/credentials

Request 예시:

{
  "tenantKey": "test-project-tenant-key",
  "providerType": "AWS",
  "accountScope": "123456789012",
  "roleArn": "arn:aws:iam::123456789012:role/AgenticCPRole",
  "externalId": "agenticcp-external-id-12345",
  "sessionName": "AgenticCP-Session"
}

테스트 체크리스트:

  • HTTP 201 Created 응답 확인
  • credentialsId 반환 확인
  • 데이터베이스에 TenantCloudCredentials 레코드 생성 확인
  • 중복 등록 시 기존 자격증명 반환 확인 (멱등성)

2-2. 연결 테스트

API: POST /api/v1/cloud/credentials/{credentialsId}/test

테스트 체크리스트:

  • HTTP 200 OK 응답 확인
  • data.success: true 확인
  • errorMessage: null 확인
  • lastUsedAt 업데이트 확인
  • AWS STS AssumeRole 실제 성공 확인 (CloudWatch 로그 또는 AWS Console)

시나리오 3: AWS 리소스 생성 (S3 버킷)

API: POST /api/v1/cloud/s3/buckets?provider=AWS

Request 예시:

{
  "bucketName": "my-test-bucket-12345",
  "region": "ap-northeast-2",
  "objectOwnership": "BucketOwnerEnforced",
  "objectLockEnabled": false
}

테스트 체크리스트:

  • HTTP 201 Created 응답 확인
  • 버킷 ID 반환 확인
  • 등록된 자격증명을 통한 AWS API 호출 성공 확인
  • AWS Console에서 실제 버킷 존재 확인
  • 데이터베이스에 CloudResource 레코드 생성 확인

전체 플로우 검증

  1. 프로젝트 생성 → tenantKey 획득
  2. AWS 자격증명 등록 → credentialsId 획득
  3. 연결 테스트 → 성공 확인
  4. S3 버킷 생성 → 실제 리소스 생성 확인

전제 조건

  • 데이터베이스 준비 완료
  • AWS IAM Role 생성 및 Trust Policy 설정 완료
  • 애플리케이션 실행 중

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions