-
Notifications
You must be signed in to change notification settings - Fork 0
[FEATURE] 테넌트 격리 정책 서비스 #104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
| * | ||
| * @return 클라우드 프로바이더 타입 | ||
| */ | ||
| String getSupportedCloudProvider(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기서 반환하는 프로바이더 반환 타입을 CloudProviderType으로 하면 타입 안정성이 더 높아지지 않을까융
String으로 반환하는 이유가 따로 있으려나용? 코드를 다 보진 않아가지구
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
오아 좋은 생각이네요!! 감사합니닷 ~
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
코드리뷰 넘나 환영 .. 더 주세요 히
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
기능 푸시하고 요청주면 리뷰할게용~~!
@Service
public class CloudResourceService {
private final CloudResourceRepository cloudResourceRepository;
private final TenantService tenantService;
private final CloudProviderService cloudProviderService;
@Transactional
public List<CloudResource> saveAll(List<CloudResource> resources) {
return cloudResourceRepository.saveAll(resources);
}
public Tenant getTenantByKey(String tenantKey) {
return tenantService.getTenantByKeyOrThrow(tenantKey);
}
public CloudProvider getProviderByKey(String providerKey) {
return cloudProviderService.getProviderByKeyOrThrow(providerKey);
}
}-> 대충 이런 식이 되려나?
참고만 해주세요 화이팅🥹❤️ |
|
| GitGuardian id | GitGuardian status | Secret | Commit | Filename | |
|---|---|---|---|---|---|
| 21859919 | Triggered | Generic High Entropy Secret | 8a71bcf | src/main/resources/application-local.yml | View secret |
🛠 Guidelines to remediate hardcoded secrets
- Understand the implications of revoking this secret by investigating where it is used in your code.
- Replace and store your secret safely. Learn here the best practices.
- Revoke and rotate this secret.
- If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.
To avoid such incidents in the future consider
- following these best practices for managing and storing secrets including API keys and other credentials
- install secret detection on pre-commit to catch secret before it leaves your machine and ease remediation.
🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.
…lder에 requestPath/httpMethod 설정 메서드 추가
…EventBuilder에 requestPath/httpMethod 설정 메서드 추가" This reverts commit 04d755e.
- OrganizationController: 조직 테넌트 조회 API 통합 - Organization: tenant 필드 중복 제거 - OrganizationRepository: 테넌트 조회 쿼리 통합 - OrganizationService: 조직-테넌트 관계 관리 메서드 통합 - OrganizationTenantServiceTest: 삭제된 테스트 파일 제거
테넌트 격리 수준 정책
관련 이슈
#85
개요
목적
멀티 테넌트 환경에서 조직(테넌트) 단위로 리소스 접근 권한을 제어하기 위한 격리 수준 정책을 구현합니다.
핵심 개념
격리 수준 정의
SHARED (공유 모드)
DEDICATED (전용 모드)
구현 요구사항
기능 요구사항
FR-1: 리소스 생성 시 소유권 관리
FR-2: 격리 수준별 리소스 조회
FR-3: 리소스 접근 권한 검증
FR-4: 격리 수준 관리
비기능 요구사항
NFR-1: 성능
NFR-2: 보안
NFR-3: 확장성
엔티티 관계 구조
전체 관계도
관계 상세
1. Organization → Tenant (1:1)
2. Tenant → TenantIsolation (1:1)
3. Tenant → User (1:N)
4. Tenant → CloudResource (1:N)
5. CloudResource ↔ User (M:N via ResourceOwner)
접근 제어 적용 시점
전체 접근 제어 시퀀스 다이어그램
접근 제어 로직 플로우 차트
상세 로직
1단계: 테넌트 일치 확인
2단계: 격리 수준 조회
3단계: 격리 수준별 접근 제어
SHARED 모드:
DEDICATED 모드:
실행된 테스트 클래스들
✅ 정상 동작 확인
ResourceOwnerService.createResourceOwnership
ResourceAccessControlService.canAccessResource
ResourceAccessControlService.filterAccessibleResources
CloudResourceService 통합