Cloud & DevOps 22

[Jenkins] Jenkins agent 파드에 toleration 추가하는 방법

Jenkins의 agent를 JCasC로 관리하고 있습니다.Taint가 있는 노드에 agent를 배치할 필요가 있어서, toleration을 추가하는 방법을 알아보았습니다. Jenkins 관리 -> Clouds 메뉴에서 Pod Template을 보면, NodeSelector, Annotation 등 은 있지만, Toleration을 추가하는 메뉴가 없는 것을 확인할 수 있습니다.또한, 공식 문서의 Pod template 설정에도 toleration key가 없습니다. 이렇게 직접적으로 지원하지 않는 파드 설정은 yaml 키를 사용해서 설정할 수 있습니다. jenkins: clouds: - kubernetes: - label: "do-no..

Cloud & DevOps/CICD 2024.08.31

Athena로 S3에 저장된 VPC flow logs 조회하기 - 2탄 (+ Glue Crawler)

지난 글에서 사용한 partition projection 방식에서 개선 필요한 점이 있어, 2탄을 작성합니다. Athena로 S3에 저장된 VPC flow logs 조회하기VPC flow logs를 Athena로 조회하기 위한 설정 방법을 소개합니다. VPC flow logs 설정 VPC flow logs를 S3에 저장할 때의 주요 설정 항목은 아래와 같습니다. 1.Log record format VPC flow logs에 포함될 필드를 저장합popappend.tistory.com Partition Projection을 사용하며 발견한 이슈기존에 아래와 같이 partition projection을 사용한 DDL문을 사용하여 테이블을 생성한 뒤, 해당 테이블에 대해 쿼리를 실행했을 때, WHERE절에 a..

Cloud & DevOps/AWS 2024.02.09

Athena로 S3에 저장된 VPC flow logs 조회하기

VPC flow logs를 Athena로 조회하기 위한 설정 방법을 소개합니다. VPC flow logs 설정 VPC flow logs를 S3에 저장할 때의 주요 설정 항목은 아래와 같습니다. 1.Log record format VPC flow logs에 포함될 필드를 저장합니다. 모든 필드 저장 시 아래와 같이 log line format이 정해집니다. ${account-id} ${action} ${az-id} ${bytes} ${dstaddr} ${dstport} ${end} ${flow-direction} ${instance-id} ${interface-id} ${log-status} ${packets} ${pkt-dst-aws-service} ${pkt-dstaddr} ${pkt-src-aws-s..

Cloud & DevOps/AWS 2024.02.03

[2주차] IAM 취약점 및 보안

이번주는 IAM 취약점 및 보안에 대해 스터디를 진행했습니다. 그 중 IMDS에 집중하여 내용 정리 및 워크샵을 진행해 보겠습니다. IMDS(Instance Metadata Service) AWS에서는 IMDS를 사용하여 인스턴스의 메타데이터를 획득할 수 있습니다. 기본적으로 ip, ami id 등 ec2 관련 정보와 iam 관련 정보를 확인할 수 있습니다. IMDSv1 사용 예시 [ec2-user@My-EC2 ~]$ curl -s http://169.254.169.254/latest/meta-data/ ami-id ami-launch-index ami-manifest-path block-device-mapping/ events/ hostname iam/ identity-credentials/ insta..

Cloud & DevOps/AWS 2023.09.05

[1주차] S3 취약점 및 보안

AWS Hacking & Security Study에 참여하며 각종 실습 내용을 남길 예정입니다. 1주차 주제는 S3 취약점 및 보안입니다. S3 접근 제어 S3의 접근 제어 관련해서는 아래와 같은 정책을 활용할 수 있습니다. IAM IAM user 또는 role에 S3 관련 권한 부여 Bucket Policy 각 S3에 대한 권한 부여 IAM/IP/VPC 등에 대한 접근 제어 가능 HTTP 차단, SSE 방식에 따른 차단 가능 ACL(Access Control List) 현재 미권장 옵션이며, 신규 버킷 생성 시 disabled (= 객체 소유권이 버킷 소유자) 대부분 IAM + Bucket Policy로 원하는 요건을 만족시킬 수 있기 때문에 예외적으로 사용(CloudFront 로그 저장 권한 부여 ..

Cloud & DevOps/AWS 2023.08.27

Route53 도메인 구입하기

예전에 가비아에서 .shop 도메인 1년간 500원에 구매해서 사용했었는데, 기한이 끝났고 새로운 도메인 사용이 필요해서 AWS Route 53에서 도메인을 구매해 보았습니다. AWS 콘솔에서 Route 53 메뉴에 들어간 다음에, Registerd domains -> Register Domain 을 클릭합니다. TLD 별로 가격이 다른 것을 볼 수 있습니다. 목록에서 전체 TLD를 확인하기가 힘들어서 공식 문서를 확인했는데, 상당히 오래전에 만들어진 문서로 보입니다. 대략 살펴봤을 때는 .click TLD가 $3.00으로 가장 저렴해 보여서 선택했습니다. TLD와 원하는 도메인을 입력하고 check 버튼을 누르면 해당 도메인이 사용 가능한 상태인지 확인해 줍니다. 이후로는 사용 기간, 결제 정보 등을 ..

Cloud & DevOps/AWS 2023.04.21

[Jenkins] JCasC로 프로젝트(job) 이름 규칙 정하기

개요 Jenkins를 관리할 때 프로젝트 이름에 규칙을 지정하고 준수가 필요하다면 Jenkins 관리 > 시스템 설정 > Restrict project naming 메뉴에서 정규식으로 지정할 수 있다. 하지만 helm으로 k8s 클러스터에 배포한 경우 JCasC로 설정을 하지 않으면 pod 재생성 시 설정이 지워져 다시 설정이 필요하다. 매번 설정을 다시 하는 것이 번거롭기 때문에 JCasC에 포함하여 helm으로 함께 배포하고자 한다. JCasC 란? Jenkins Configuration as Code의 약자로 Jenkins 설정을 UI가 아닌 코드로 지정하는 기능이다. ldap, 보안 설정 등 다양한 설정을 지정할 수 있으며, 설정이 코드에 남기 때문에 동일한 설정으로 여러 서버를 생성하거나 복구하..

Cloud & DevOps/CICD 2023.02.18

[Jenkins] jnlp agent

개요 kubernetes에 hem을 통해 jenkins를 배포할 때 Master는 statefulset으로, Agent는 Job 실행 시마다 Pod로 뜨게 설정할 수 있다. 이때 Master와 Agent를 연결하기 위해 JNLP(Java Network Launch Protocol)를 사용하고, 기본 agent 이미지인 jenkins/inbound-agent에 포함되어 있다. K8S에서 jnlp agent 사용하기 Jenkins를 k8s에 배포할 때 helm 차트를 주로 활용한다. values.yaml 파일에 아래 처럼 agent 설정이 포함되어있다. jenkins/inbound-agent 이미지에 tag로 다양한 버전을 지정할 수 있는데, controller와 일치하는 jdk 버전이 포함된 이미지(ex...

Cloud & DevOps/CICD 2023.02.18

[AWS] EKS Service Account -> IAM role assume을 위한 configuration 파일 설정

EKS에 띄운 Pod 내에서 여러 role을 ~/.aws/config 파일에 설정하고 profile을 변경하며 작업을 하고 싶어 설정을 해봤습니다. 1. IAM role 생성   - role-service-account   - role-assumed (타 계정) 2. Trust Policy 설정      2-1. role-service-account : OIDC Provider Trust Policy 설정 추가           참고 : https://aws.amazon.com/ko/premiumsupport/knowledge-center/eks-pods-iam-role-service-accounts/      2-2. role-assumed : role-service-account role Trust ..

Cloud & DevOps/AWS 2023.01.03

[Gitlab] Private registry에 등록된 Docker image 사용 방법

Gitlab에서 Public이 아닌 Private registry에 등록된 docker image를 사용할 때가 있습니다. 이때 Gitlab CI/CD 변수 설정을 통해 image를 받아올 수 있습니다. 1. Docker registry 'username:password' Base64 인코딩 echo username:password | base64 2. Gitlab CI/CD 변수 설정 Gitlab repo -> Settings -> CI/CD -> Variable 추가 Key : DOCKER_AUTH_CONFIG Value : { "auths": { "Private Registry URL": { "auth": "(Base64 인코딩 값)" }, "Private Registry 2 URL": { "aut..

Cloud & DevOps/CICD 2023.01.03
반응형