AWS accesskey 를 어플리케이션에서 사용하고 있습니다.

 

그러던 중 AWS 키 유출을 확인하게 되었고, 조치 방법 및 유출사유 (원인 [추정]) 작성했습니다.

 

조치 (1)

1. 다행이 키 유출이 되었지만 IP 제한 정책이 있어서 실제 공격은 차단되었습니다.

2. 유출 키 제거

3. 원인 조치

 

 

원인 파악 (2)

1. log 분석

2. 분석 결과 /actuator/heapdump 엔드포인트가 오픈 상태였습니다 (ㅠㅠ)

3. 일단 ALB 라우팅 설정에서 /actuator/heapdump 경로를 차단했습니다.

4. github, gitlab 에서 모든 actuator 설정을 확인 (과거 개발 코드에서 동일한 이슈가 있던것으로 파악했습니다.)

 

*/actuator/heapdump란

히프덤프(Heapdump)는 특정 시점에서 프로그램의 메모리 상태를 캡처한 스냅샷입니다. 주로 JavaScript 애플리케이션에서 사용되며, 힙 메모리에 있는 객체들의 메모리 할당 상태와 객체 간의 참조 관계를 담고 있습니다.

EKS 1.29 -> 1.30으로 올리는 작업 중 aws-ebs-csi-driver 도 업데이트를 진행하였습니다.

작업 전 기존 aws-ebs-csi-driver  values를 확인하는 작업을 진행하였습니다.

helm get values aws-ebs-csi-driver -n kube-system
USER-SUPPLIED VALUES:
enableVolumeResizing: true
enableVolumeScheduling: true
enableVolumeSnapshot: true

 

위에 정보를 확인 후 업그레이드를 진행

helm upgrade --install aws-ebs-csi-driver --namespace kube-system --set enableVolumeScheduling=true --set enableVolumeResizing=true --set enableVolumeSnapshot=true aws-ebs-csi-driver/aws-ebs-csi-driver

 

에러 발생 (??????)

사실 25년 2월 10일에 테스트 환경은 정상 업데이트 했습니다. (aws-ebs-csi-driver  1.39)

helm upgrade --install aws-ebs-csi-driver --namespace kube-system --set enableVolumeScheduling=true --set enableVolumeResizing=true --set enableVolumeSnapshot=true aws-ebs-csi-driver/aws-ebs-csi-driver
Error: UPGRADE FAILED: values don't meet the specifications of the schema(s) in the following chart(s):
aws-ebs-csi-driver:
- (root): Additional property enableVolumeResizing is not allowed
- (root): Additional property enableVolumeScheduling is not allowed
- (root): Additional property enableVolumeSnapshot is not allowed
 

 

원인: 

   helm repo update 진행하면서 1.40 으로 자동 지정 되었고, 1.40브랜치에는 values.schema.json 라는 파일이 생성되었습니다.      (Helm 유효성 검증을 진행하는 파일)

    값(values) (enableVolumeScheduling,enableVolumeResizing 등등) 이미 과거에 제거된 값 이였습니다.

   

1.39 브랜치 : https://github.com/kubernetes-sigs/aws-ebs-csi-driver/tree/release-1.39/charts/aws-ebs-csi-driver

1.40 브랜치 : https://github.com/kubernetes-sigs/aws-ebs-csi-driver/tree/release-1.40/charts/aws-ebs-csi-driver

 

aws-ebs-csi-driver/charts/aws-ebs-csi-driver at release-1.40 · kubernetes-sigs/aws-ebs-csi-driver

CSI driver for Amazon EBS https://aws.amazon.com/ebs/ - kubernetes-sigs/aws-ebs-csi-driver

github.com

 

해결 : (기존 values 값을 제거)

helm upgrade --install aws-ebs-csi-driver \\n --namespace kube-system \\n --reset-values \\n aws-ebs-csi-driver/aws-ebs-csi-driver

 

 

 

2번째 이슈 (궁금)

 

해결 후

helm get values aws-ebs-csi-driver -n kube-system --all -oyaml 에서 enableVolumeResizing 값이 확인이 되고 있습니다...

 

enableVolumeResizing: true
enableVolumeScheduling: true
enableVolumeSnapshot: true 

 

 

 

안녕하세요!

특정 서비스에서 NLB + ALB를 사용하여 고정 IP 및 타켓 라우팅 규칙을 사용하는 예시를 공유 드립니다. 

(구조에 리스닝, 타켓을 개념을 잘 분리해서 작업하면됩니다)

 

저는 처음에 아래 구조를 보면서 고정IP는 사용이 가능하지만 라우팅 규칙을 사용이 불가능 할 것이라고 생각했습니다..

이유는 NLB L4 에서는 도메인 호스트 (test80.test.com, test81.test.com)을 인식할 수 없다고 생각하여 루프가 발생하는게 아닌가 했습니다.....

 

하지만 공식 문서에서 지원을 하다고 되어 있습니다! (추정하는것 보다는 테스트 정답 같습니다 ㅠㅠ)

 

구조

  Router 53 대상(NLB)→ NLB → ALB → 서버 (Nginx 2개 81, 80)

NLB 구조

   리스닝 : 80, 443

   타켓그룹: ALB 80, 443

 

ALB 구조

   리스닝 :

      80 규칙:

        모든 요청 https 라우팅

 

      443 규칙:

        test80.test.com → 서버 80 포트

        test81.test.com → 서버 81 포트

'AWS > EC2' 카테고리의 다른 글

AMI → EC2 생성 중 네트워크 이슈  (0) 2024.03.07

+ Recent posts