0. 개요AWS STS(Security Token Service)는 임시 자격 증명을 발급하여 사용자가 제한된 시간 동안 특정 AWS 리소스에 접근할 수 있도록 하는 서비스입니다. 생소한 기능일 수 있지만 AWS 리소스 접근 시 활용 가능한 STS에 대해 알아보려 합니다. 1. AWS STS란?AWS STS(Security Token Service)는 AWS 사용자가 필요할 때마다 한정된 시간 동안 유효한 자격 증명을 발급받아 리소스에 접근할 수 있도록 해주는 서비스입니다. IAM 사용자, 애플리케이션, 또는 외부 사용자 등 다양한 주체가 AWS 리소스에 접근할 수 있도록 지원합니다.주요 특징임시적 접근 허용: 영구 자격 증명 대신 일정 기간만 유효한 자격 증명을 발급받아 보안을 강화합니다.동적 권한 관..
0. 개요Passport.js란?Passport.js는 다양한 인증 방법(예: 로컬 사용자명/비밀번호, OAuth, JWT 등)에 대한 전략을 제공하여 인증을 간소화하는 인기 있는 Node.js 미들웨어입니다. Passport.js의 모듈식 아키텍처는 Express와 같은 프레임워크, 그리고 이를 기반으로 하는 NestJS와의 원활한 통합을 지원합니다.모듈식 전략 통합: 다양한 인증 전략을 필요에 따라 쉽게 전환할 수 있습니다.커뮤니티 및 문서 지원: 강력한 커뮤니티 지원과 잘 정리된 문서.NestJS와의 자연스러운 호환성: NestJS의 모듈 구조에 자연스럽게 맞아떨어집니다. Passport는 어떻게 동작하는가?NestJS에서 Passport는 미들웨어로 작동하며, 다양한 인증 전략을 구현하는 데 사용..
0. 개요 전역 예외처리에 관한 핸들러를 만들어서 관리하는 기능을 코틀린 베이스로 만들려 한다.이전 RestControllerAdvice, ControllerAdvice 포스팅하면서 말했던 내용을 베이스로 하기 때문에 조금 더 상세한 내용은 아래 링크 참고 바란다. * 이전 포스팅2023.07.12 - [DEV/Spring] - [Spring] Exception Handler (with. Spring Data Rest) 1. 구현구현하고자 하는 코드 구성은 아래와 같다.Class (or File)DescriptionErrorCode에러 정의를 담은 Enum 클래스.DomainException예외 클래스, RuntimeException 상속.GlobalRestExceptionHandler예외를 클래스 별..
0. 개요NestJS 프로젝트에서 class-validator와 class-transformer 라이브러리를 통해 데코레이터 사용만으로 데이터 검증을 할 수 있습니다.기본적으로 제공하는 데코레이터를 사용해도 충분하지만 특정 값에 대한 검증을 추가하고 싶을때 커스텀 데코레이터를 만들게 됩니다.이번 포스팅에서는 휴대번호와 비밀번호 검증을 위한 커스텀 데코레이터를 구현해보려고 합니다.1. 사전 설정a. 라이브러리 Install우리가 만들고자 하는 기능에 필요한 두 가지 라이브러리를 설치합니다.npm install class-transformer class-validatorb. Global 설정app.useGlobalPipes는 전역 Pipe 를 추가하는 메소드로 ValidationPipe를 추가하여 요청 라이..
0. 개요파이썬 기반인 Airflow 로 파이프라인 개발 진행 시,plugins 디렉토리 내에 Operator 나 Hook 등, 모듈화하여 사용하는 소스를 개발하는 경우가 발생한다.이때 IDE 의 경로 인식에서 불편한 점에 대한 해결책에 대한 기록이다. 1. 문제점python 은 sys.path 를 출력하면 아래의 이미지처럼 우리가 사용하는 라이브러리에 대한 경로를 넣어두고 임포트 시 해당 경로부터 인식된 라이브러리를 임포트 하게 된다. Airflow 개발 시 DAG 에서 [plugins] 디렉토리에 개발된 내용을 임포트해서 사용하게 될텐데...Airflow 내에서는 plugins 디렉토리 이후 경로로 인식하고 IDE 에서는 root 경로부터 인식을 시작하기 때문에 개발할때 여간 불편한게 아니다. ..
0. 개요AWS RDS 사용 중이라면 CA 인증서를 교체하라는 메일이 날라왔을 것이다.기존 기본으로 세팅되던 [rds-ca-2019] 인증서가 24년 8월 23일 부로 만료가 되기 때문에 교체하라는 내용이기에 관련 내용을 찾아봤는데 생각했던 것 보다 교체가 어렵지 않았기에 관련 내용을 적어보고자 한다. 1. 인증서 업데이트 필요 항목 확인먼저, 콘솔을 통해 RDS 창으로 이동하게 되면 왼쪽 제일 하단에 [인증서 업데이트] 항목이 보이게 된다. 필자의 경우,업데이트를 이미 맞췄기에 이미지와 같이 업데이트 필요 목록이 비어있지만 아직 진행 전이라면 데이터베이스 인스턴스 항목이 채워져 있을 것이다. 교체가 필요한 인스턴스의 경우 아래처럼 만료 기간 옆에 아이콘으로 표기되어 있다. 2. CA 인증서 교체..
0. 개요 다른 브랜치 git pull 명령어 실행 중 에러가 발생했습니다. 발생한 에러는 E325 인데요. 뭐... 큰 문제는 아닌데 나중에 또 찾아볼까봐 해결 방법에 대한 포스팅 작성해봅니다. 1. 원인 'git pull origin main' 명령어 실행하니 아래처럼 에러 문구가 발생하였습니다. 이 에러의 원인은 커밋 병합 시, 세션이 겹친 경우 입니다. 예를 들어 Merge 과정이 완료되지 않는 세션이 존재하는 상태에서 다른 커밋 내용을 Push 하게 되면 발생하게 됩니다. 제 상황 같은 경우는, 다른 브랜치에서 작업한 내용에 main 브랜치의 내용을 병합하는 과정에서 현재 브랜치가 main 브랜치보다 앞선 상태라는 창이 아래와 같이 나왔었는데 해당 터미널을 종료하지 않고 다른 창에서 추가 작업후..
** 포스팅을 읽기전에 - Docker, Container, Image, Layer 등의 사전지식이 필요합니다. 0. 개요 스터디 중 Container 기술과 Virtual Machine(앞으로 VM) 에 대한 차이 이야기가 나오는 도중에 나온 의문점에 대한 이야기입니다. 우리가 인지했던 두 기술의 차이점은 VM은 하이퍼바이저 위에 GuestOS 가 있어야한다는 점 Container는 별도의 GuestOS를 설치할 필요 없이 HostOS의 커널을 공유한다. 요약하자면 이정도이지만 문제는 Dockerfile을 작성하는 부분에서 의문점이 생습니다. 'From 으로 BaseOS 이미지를 받아서 Image Layer를 구성하는데 VM이랑 차이가 뭐지??' 이런 의문점에서 차이점에 대해 좀 더 알아보게 되었습니다..
1. JWT JWT는 상호 간에 정보를 JSON 개체로 안전하게 전송하기 위한 방법을 개방형 표준(RFC 7519) 입니다. 정보는 디지털 서명을 통해 신뢰성을 가지도록 하며 HMAC 알고리즘을 이용한 보안 방식과 RSA 또는 ECDSA 암호화 방식을 사용한 public/private key 페어 방식을 사용합니다. JWT는 대표적으로 Authrization, Information Exchange 에 사용되는데 header와 payload를 사용하여 서명을 계산하므로 컨텐츠가 변조되지 않았는지 확인이 가능합니다. 2. 구조 JWT는 Header, Payload, Signature 로 구성되어있고 지정한 알고리즘으로 인코딩 된 형태를 하고 있습니다. Header 헤더에는 일반적으로 토큰 유형(typ)과 사..
1. 개요 스케줄러 사용 시에 보통 많이 사용되는 크론(Cron) 표기법에 대한 설명 글입니다. (매번 찾기 귀찮아서...) 2. Cron? Cron은 소프트웨어 유틸리티로 유닉스 계열 컴퓨터 운영 체제의 시간 기반 잡 스케줄러입니다. 고정된 시간, 날짜, 간격에 주기적으로 실행할 수 있도록 스케줄링하기 위해 cron이 사용됩니다. 3. 표기법 표기법은 분, 시, 일, 월, 요일 처럼 5가지로 사용되기도 하지만 초(sec)와 연(year) 도 포함하여 사용되는 경우도 있습니다. 각 스케줄러 사용법에 따라 다를 수 있으니 확인해보고 사용하시길 바랍니다. (각 필드의 분기는 ' ' 공백으로!) a. 필드 각 필드와 허용 범위 및 사용되는 특수 문자입니다. 필드 명 범위 허용 특수문자 초 (Second) 0 ..