전체 글
-
Spring security - 4. 중복 로그인 로그아웃 시키기Spring Security/security 2023. 11. 17. 15:28
Spring security는 session을 관리 할 수 있어서, 같은 사용자가 들어왔을 때 기존에 로그인한 session 또는 마지막에 로그인한 session을 선택해서 로그아웃을 시킬 수 있다고 한다. * 코드 작성 httpSecurity에 sessionManagement 설정을 넣어주어야 한다. sessionFixation에서 chageSessionId 설정을 하는데, 동일한 아이디로 계속 로그인을 해도 SessionId가 변경이 안된다고 하는 것 같다. SessionId가 변경이 안되고 고정되면 xss공격으로 SessionId를 탈취 할 수 있다고 한다. 그래서 cahgeSessionId설정을 통해 중복 로그인시 SessionId를 변경한다. maximunSessions를 통해 Session의 ..
-
Spring security - 3. Security설정한 거 끝까지 파보기Spring Security/security 2023. 11. 8. 22:00
지난번 글에서 UserDetailsService를 사용하여 security로그인 기능을 구현하였다. 내가 작성한 것은 userDetailsService에 하나 있는 loadUserByUsername 메소드를 override한거고, 그 내용은 db에서 조회 후 security가 원하는 UserDetails 라는 객체에 넣어줬을 뿐인데, 그 후에 이 놈이 뭘 했길래 session에 그 정보를 저장하는지 궁금했고, 1장에 있는 그 그림대로 움직이는게 어떤건지 궁금해서 userDetailsService를 시작으로 메소드가 끝날때 까지 파보기로 하였다. 우선 내가 담아보낸 User와 UserDetails를 먼저 살펴봤다 Security에 기본으로 작성되어있던 User class, 이 놈이 UserDetails 를..
-
Spring security - 2. UserDetailsService를 사용하여 로그인 구현Spring Security/security 2023. 11. 8. 19:01
UserDetail과 UserDetailService는 Spring security에 들어있는 사용자 정보와 사용자 정보를 가져오는 인터페이스이다. UserDetail을 구현한 기본 클래스인 User를 사용해도 되고, CustomUser를 만들어 UserDetail을 구현하여 사용해도 된다. (나는 Security에 있는 User 사용) session에 저장하는 방식이기 때문에 로그인 성공시 session에 사용자 정보를 저장하고, Client에게 JSESSIONID 라는 key로 sessionId를 담아 Set-cookie에 전달한다. JSESSIONID는 톰켓 서블릿 컨테이너에서 세션을 유지하기 위해 발급하는 key라고 한다. github에서 코드를 확인 할 수 있다 * 코드 구현 Spring 5. ..
-
Spring security - 1. Spring security에 대해Spring Security/security 2023. 11. 8. 13:45
Spring security Spring에서 어플리케이션의 인증과 인가를 담당하는 Spring의 하위 보안 프레임 워크. Spring security에서 인증과 인가는 서블릿컨테이너 안에서 DispatchServlet으로 가기전에 filter chain에서 동작. filter chain은 Security 설정으로 사용자가 addFilter() 라는 메소드를 통해 설정 할 수 있다. 인증과 인가 인증(Authentication) 인증은 우리 서버에 맞는 사용자인지 확인하는 절차. ID, PW로 확인하거나 OAuth라는 개방형 인증 절차를 통해 확인함. 인증된 사용자는 등록된 정보에 맞게 권한을 부여받음. (User, Admin 등) 인가(Authorization) 인증된 사용자에 대한 권한을 확인하고 어떠..
-
FluentBit + CloudWatch logs 로 Pods Application 로그 수집하기Amazon Web Service (AWS)/EKS 2023. 4. 23. 01:40
AWS를 개인적으로 구성하면서 적다보니, 140만원이 청구되어 환경이 갖춰지기 전까진 글로만...빨간색 부분에서 데몬셋으로 실행된 FluentBit가 각 Pods의 로그를 수집하여 CloudWatchLogs에 항목별로 쌓아주는 구성을 작성 참고글 : https://repost.aws/ko/knowledge-center/cloudwatch-stream-container-logs-eks (작성하고 찾아보니 질문이 아닌 공식 문서에도 적혀있다) Amazon EKS에서 컨테이너 로그를 CloudWatch로 스트리밍 | AWS re:PostAmazon Elastic Kubernetes Service(Amazon EKS)에서 실행되는 컨테이너 로그를 CloudWatch Logs와 같은 로깅 시스템으로 스트리밍하고 ..
-
EKS CI/CD 구축 (git, docker, argocd) - 2 Jenkins, GitLab, ArgoCD 연결Amazon Web Service (AWS)/EKS 2022. 8. 30. 02:30
Jenkins 구성 1. Install suggested plugins 선택 2. 회원가입 3. Jenkins 관리 선택 - 플러그인 관리 4. docker-build-step / Docker / Docker Pipeline / Amazon ECR / GitLab / GitLab Authentication 플러그인 설치 GitLab과 Jenkins 연동 1. Jenkins New Item 선택 후 Item name 입력, Freestyle project선택 2. Jenkins Credentials 설정 username : gitLab 아이디 password : gitLab 비밀번호 ID : jenkins에서 사용할 식별자 입력 후 Create ArgoCD 연결 1. ArgoCD 콘솔 비밀번호 확인 $ k..
-
EKS CI/CD 구축 (git, docker, argocd) - 1 환경 구성Amazon Web Service (AWS)/EKS 2022. 8. 28. 22:28
ArgoCD 구축 (https://www.eksworkshop.com/intermediate/290_argocd/install/) 1. ArgoCD 를 위한 네임스페이스 생성 $ kubectl create namespace argocd .2. ArgoCD namespace에 해당 yaml 파일을 적용 (Deployment.yaml) $ kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.4.7/manifests/install.yaml 3. ArgoCD Service를 LoadBalancer로 변경하여 외부 접속이 가능하게 함 $ kubectl patch svc argocd-server -n argocd -p '{..
-
EC2에 Docker 설치 후 ECR과 연동하기Amazon Web Service (AWS)/EKS 2022. 8. 19. 15:33
1. Docker 설치 1. yum 업데이트 $ sudo yum update -y 2. Docker 설치 $ sudo amazon-linux-extras install docker 3. sudo 명령어 없이 docker 명령어 사용 $ sudo usermod -a -G docker ec2-user 3. Docker 버전확인 docker -v 2. Docker hub에서 필요한 이미지 $ sudo docker pull openjdk:8 $ sudo docker pull openjdk:11 $ sudo docker pull openjdk:17 $ sudo docker pull jenkins/jenkins 2. 이미지 확인 sudo docker images 2. ECR 구축하기 1. AWS 접속 후 Elast..