이전 Terraform 이론에서 배운 걸 바탕으로 실제 AWS에서 VPC 및 EC2 배포 / EKS 배포를 실습해보자 Terraform / AWS VPC 및 EC2 배포 VPC 생성default VPC가 아닌 직접 VPC 생성vpc.tf파일에 VPC 관련 코드 작성provider "aws" { region = "ap-northeast-2"}resource "aws_vpc" "myvpc" { cidr_block = "10.10.0.0/16" enable_dns_support = true enable_dns_hostnames = true tags = { Name = "aews-study" }}resource "aws_subnet" "..
IaC란 Infrastructure as a Code로 코드를 작성하여 인프라를 구성하는것을 의미ex: 퍼블릭 클라우드의 경우, 직접 콘솔에 접속하여 VPC 생성 / Subnet 생성 / SG생성 / Instance 생성을 진행하지만 IaC를 사용하면 코드를 이용하여 콘솔에 접속하지 않고 간단하게 인프라 구성 및 클라우드 자원을 생성 할 수 있음 Terraform이란하시코프사에서 공개한 IaC(Infrastructure as a Code) 도구로, 현재 IaC 도구로 가장 널리 사용되고 있는 플랫폼다양한 Provider를 제공하여 테라폼 문법 하나로 다양한 클라우드 인프라 및 리소스를 생성Provider를 통해 각 Target에 API를 호출하여 리소스를 생성하기 때문에 속도가 매우 빠름 실습 환경 ..
pipeline이란 소스코드 통합 / 빌드 / TEST / 배포 프로세스를 자동화 프로세스를 의미한다. jenkis pipeline 용어 파이프라인 : 전체 빌드 프로세스를 정의하는 코드. 노드 node : 파이프라인을 실행하는 시스템. 스테이지 stage : 특정 단계에서 수행되는 작업들의 정의. 스텝 step : 파이프라인의 특정 단계에서 수행되는 단일 작업을 의미. 구성 형태 pipeline script: 일반적인 방식이며 jenkins 파이프라인을 생성하여 shell script를 직접 생성하여 빌드 pipeline script from SCM: 가장 많이 사용하는 방식으로, 사전 작성한 jenkinsfile을 형상관리시스템에 저장 / 빌드 시작 시 파이프라인 프로젝트에서 호출 Blue Ocean..
Jenkins란 소프트웨어 개발 프로세스의 다양한 단계를 자동화하는 도구로서 중앙 소스 코드 리포지터리에서 최신 코드 가져오기, 소스 코드 컴파일, 단위 테스트 실행, 산출물을 다양한 유형으로 패키징, 산출물을 여러 종류의 환경으로 배포하기 등의 기능을 제공 젠킨스는 아파치 톰캣처럼 서블릿 컨테이너 내부에서 실행되는 서버 시스템이다. 자바로 작성됐고, 소프트웨어 개발과 관련된 다양한 도구를 지원 젠킨스는 파이프라인이라고 부르는 스크립트를 작성할 수 있는데, 이를 사용해서 각 빌드 단계마다 젠킨스가 수행할 태스트 및 하위 태스크의 순서를 정의 다양한 Plugins 연동 설치 # 실습 편리를 위해서 root 계정 전환 sudo su - # Add required dependencies for the jenk..
ArgoCD란 ArgoCD는 쿠버네티스를 위한 CD(Continuous Delivery)도구로 GitOps방식으로 관리되는 Mainfest(yaml)파일의 변경사항을 감시하여, 현재 배포되어 있는 환경의 상태와 / Git Manifest파일에 정의된 상태를 동일하게 유지 하는 역학을 수행 구성요소 API Server: Web UI, API 서버 Repository Server: Git 연결 및 배포할 yaml 생성 Application Controller: k8s 리소스 모니터링, Git 비교 redis: k8s와 git요청을 줄이기 위한 캐싱 Notification: 이벤트 알림, 트리거 Dex: 외부 인증 관리 ApplicationSet Controller: 멀티 클러스터를 위한 App 패키징 관리 ..
이번 포스팅 내용은 Policy Engine인 Kyverno 및 K8S에서 보안 위협이 될 수 있는 몇 가지 시나리오를 실습할 예정이다. EKS pod가 IMDS API를 악용하는 시나리오 1. 취약 Web Server Pod 생성 cat
EKS IRSA(IAM Roles for Service Accounts) 기존에는 Worker-Node 즉 EC2에 맵핑된 IAM Role를 Pod가 그대로 사용 할 수 있었다. 따라서 Pod가 탈취되면 그대로 EC2 IAM Role를 사용하여 보안적으로 취약할 수 있다. 이에 노드가 아닌 Pod에 최소한의 IAM 권한을 주는것이 IRSA이다. 실습 1 ( service account Token - false) 1. Pod 생성 시 Service Account Token이 자동 마운트 설정 해제 # 파드1 생성 cat