Fernet
Fernet
Airflow는 connection 설정과 variable 설정에 담긴 비밀번호를 암호화하기 위해 Fernet을 사용해요. Fernet으로 암호화된 비밀번호는 키 없이는 조작하거나 읽을 수 없다는 점을 보장해 준답니다. Fernet은 대칭(비밀 키) 인증 암호화 방식의 구현이에요.
출처: 문서
본문
Airflow는 connection 설정과 variable 설정의 비밀번호를 암호화하기 위해 Fernet을 사용해요. Fernet은 암호화된 비밀번호가 키 없이는 조작되거나 읽힐 수 없음을 보장해요. Fernet은 대칭(일명 "secret key") 인증 암호화의 구현이에요.
Airflow를 처음 시작하면 기본 설정과 함께 고유한 Fernet 키가 담긴 airflow.cfg 파일이 생성돼요. 키는 [core] 섹션의 fernet_key 옵션에 저장돼요.
환경 변수를 이용해 fernet 키를 설정할 수도 있어요. 이 값은 airflow.cfg 파일의 값을 덮어쓰게 돼요.
# 밑줄이 두 개라는 점에 주의하세요
export AIRFLOW__CORE__FERNET_KEY=your_fernet_key
Fernet 키 생성하기
새로운 fernet 키가 필요하다면 다음 코드 조각을 사용하면 돼요.
from cryptography.fernet import Fernet
fernet_key = Fernet.generate_key()
print(fernet_key.decode()) # your fernet_key, keep it in secured place!
암호화 키 교체하기 (Rotating encryption keys)
connection 자격 증명과 variable이 fernet 키로 암호화된 후에는, 키를 바꾸면 기존 자격 증명의 복호화가 실패하게 돼요. 기존 암호화된 값을 무효화하지 않고 fernet 키를 교체하려면, 새 키를 fernet_key 설정 앞에 붙이고 airflow rotate-fernet-key를 실행한 다음 원래 키를 fernet_key에서 제거하면 돼요:
fernet_key를new_fernet_key,old_fernet_key로 설정해요airflow rotate-fernet-key를 실행해서 기존 자격 증명을 새 fernet 키로 다시 암호화해요fernet_key를new_fernet_key로 설정해요