목록분류 전체보기 (767)
우노
schedule_interval이란? schedule_interval은 DAG 작업의 실행 주기를 의미합니다. Airflow는 이 정보를 기반으로 작업 스케줄링을 수행하며, 지정된 빈도에 따라 작업을 예약하고 실행합니다. 이 값은 cron 표현식 또는 timedelta 객체를 사용하여 지정할 수 있습니다. 해당 포스트에선, cron 표현식에 대해서 다뤄보겠습니다. CRON 표현식이란? cron 표현식은 유닉스 계열 운영체제에서 일정한 시간 간격으로 작업을 실행하기 위해 사용되는 표현식입니다. cron 표현식은 일반적으로 다음과 같은 형식으로 구성됩니다. * * * * * 각각의 별표(*)는 다음과 같은 의미를 가집니다. 분(Minute) : 0부터 59까지의 값을 가집니다. 시간(Hour) : 0부터 2..
Username과 Password를 사용해 Client에 접근하고 있다면 아래 curl post 명령어를 통해 토큰을 발급 받을 수 있습니다. curl -X POST '/realms//protocol/openid-connect/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=password' \ --data-urlencode 'client_id=' \ --data-urlencode 'client_secret=' \ --data-urlencode 'username=' \ --data-urlenc..
들어가기 앞서, Helm Chart의 Values엔 암호화가 필요한 값이 들어가야할 때가 있습니다. 따라서, 해당 포스팅에선 Helm Chart Values에 기본값을 박아두고, helm install 또는 upgrade 시 암호화가 필요한 값을 사용자 입력을 통해 할당할 수 있는 방법에 대해서 다뤄보겠습니다. Values 값 변경 시 사용할 수 있는 파라미터는 --set, --set-string, --set-file 이며, 해당 포스팅에선 --set-string을 사용하겠습니다. 또한, airflow helm chart를 예제로 들겠습니다. 예제 코드 1 airflow-stable-values.yaml airflow: config: TOKEN : "default" helm install 실행 시 val..
들어가기 앞서, Dockerfile에서 Private Repo를 Clone하기 위해선 Private Repo 접근 권한이 있는 Git 계정을 등록하는 단계가 필요합니다. 해당 포스팅에선 Dockerfile에서 Git 계정 등록 및 Private Repo를 Clone하는 방법에 대해서 다뤄보겠습니다. Git 계정 등록 및 Private Repo Clone 예제 FROM apache/airflow:2.2.4-python3.8 USER root RUN apt-get update && \ apt-get install git -y # Git 계정 등록 RUN git config --global user.name "유저명" RUN git config --global user.email "이메일명" # 개인 액세스 ..
들어가기 앞서, kubectl secret 명령어는 Kubernetes 클러스터에서 비밀 정보를 관리하는 데 사용됩니다. 해당 포스팅에선, 몇 가지 kubectl secret 명령어 예시에 대해서 다뤄보겠습니다. Secret 생성 Secret 값 직접 명시 # kubectl create secret --from-literal== kubectl create secret generic my-secret --from-literal=username=admin Secret 값이 적힌 파일 사용 # kubectl create secret --from-file= kubectl create secret generic my-secret --from-file=cert.pem Secret 조회 kubectl get secr..
SOP(Same Origin Policy)란? SOP는 동일한 출처로부터의 리소스 접근만 허용하는 웹 보안 정책입니다. 웹 애플리케이션과 API 서버가 같은 서버에 있으면 동일 출처, 서로 다른 서버에 있으면 다른 출처라고 이해하시면 이해가 쉽습니다. 이해를 위해, 브라우저 스크립트(예: JavaScript)를 통해 서버 리소스에 접근하는 예를 들어보겠습니다. 당신은 은행 웹 사이트에 로그인하여 개인 정보를 입력하고 있습니다. 이때 당신의 개인 정보를 노리는 다른 악성 웹 페이지가 열려 있는 상태라면, 해당 악성 웹 페이지는 본인들의 악성 스크립트를 실행하여, 은행 웹 사이트로부터 당신의 개인 정보를 훔칠 수 있습니다. 따라서, SOP를 사용하지 않는다면, 다른 출처로부터의 예상치 못한 리소스 접근을 통..
들어가기 앞서, 해당 포스트에선, Terraform을 사용해, 동일한 GCP Service Account를 사용해 다중 프로젝트에 접근할 수 있도록 설정하는 방법에 대해서 다뤄보겠습니다. 예제 코드 예제 코드는, 프로젝트 C의 Service Account를 사용해 프로젝트 A와 B에 접근하는 설정을 다루고 있으며, 아래와 같은 방식으로 진행됩니다. 프로젝트 C에 Service Account 및 Key를 생성합니다. 프로젝트 C의 Service Account를 프로젝트 A와 B의 IAM 멤버로 추가합니다. 프로젝트 C의 Service Account가 프로젝트 A와 B 각각에 지정된 역할을 가질 수 있도록 설정합니다. 사용자는 프로젝트 C의 Service Account와 Key를 사용해 프로젝트 A와 B에 ..
들어가기 앞서, Terraform으로 특정 자원을 생성할 경우, 해당 자원이 이미 생성되어 있는 상태라면, already exists 에러가 발생하게 됩니다. 해당 경우엔, terraform import를 사용해 해당 자원에 대한 정보를 State 파일로 가져와야 terraform apply를 적용할 수 있게 됩니다. 즉, 자원을 생성하는 방향이 아닌, 존재하는 자원을 수정하는 방향으로 진행할 수 있게 됩니다. terraform import 사용 방법은 아래 링크에 정리해두었습니다. https://wooono.tistory.com/711
들어가기 앞서, 해당 포스트에선, Terraform을 사용해, Google Cloud Load Balancer(GCLB) 접근 시 특정 헤더 일치 여부에 따라 접근을 허용할 수 있도록 설정하는 방법에 대해서 다뤄보겠습니다. 예제 코드 resource "google_compute_url_map" "urlmap" { name = "urlmap" description = "a description" default_service = google_compute_backend_service.home.id host_rule { hosts = ["mysite.com"] path_matcher = "allpaths" } path_matcher { name = "allpaths" default_service = googl..
토큰 기반 인증이란? 토큰 기반 인증(Token-based authentication)은 웹 애플리케이션에서 사용자 인증을 처리하기 위한 인증 방식 중 하나입니다. 이 방식은 세션 기반 인증과는 다르게 서버에 사용자의 상태를 저장하지 않고, 토큰을 사용하여 인증을 수행합니다. 토큰 기반 인증의 주요 아이디어는, 클라이언트가 인증을 위해 사용자의 자격 증명(예: 로그인 정보)을 제공하면, 서버는 그 정보를 검증한 후에 클라이언트에게 토큰을 발급합니다. 이 토큰은 클라이언트에 저장되고, 일반적으로 HTTP 요청의 헤더에 포함되어 서버로 전송됩니다. 클라이언트가 서버에 요청을 보낼 때마다, 헤더에 포함된 토큰을 서버가 검증하고 인증을 확인합니다. 이를 통해 클라이언트는 인증된 상태를 유지하며, 서버는 클라이언..