"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 하드코딩된 비밀을 Secrets Manager로 이동

하드코딩된 비밀을 Secrets Manager로 이동

2024-11-03에 게시됨
검색:667

Move hardcoded secrets to a Secrets Manager

비밀 관리자는 비밀번호, API 키, 데이터베이스 자격 증명 및 애플리케이션에 필요한 기타 유형의 민감한 데이터를 저장하고 관리하기 위한 도구입니다.

애플리케이션 소스 코드에 하드 코딩되거나 코드에서 사용할 일반 텍스트 파일에 저장된 비밀은 시스템의 애플리케이션이나 구성 요소를 검사할 수 있는 악의적인 엔터티에 의해 악용될 수 있습니다. 이 위험은 비밀 관리자를 통해 완화할 수 있습니다.

dotenv-vault

dotenv-vault는 비밀을 코드에 저장하는 것보다 안전한 대안을 제공하는 비밀 관리자 중 하나입니다.

[!메모]
이것은 dotenv-vault 사용에 대한 튜토리얼이 아닙니다. 이 문서의 목적은 비밀 관리자가 개발자가 비밀을 하드 코딩하거나 일반 텍스트 파일에 저장하는 것을 피하도록 도울 수 있는 방법을 설명하는 것입니다. 여기에서 dotenv-vault를 시작하는 방법을 알아볼 수 있습니다.

영화 스타워즈: 에피소드 V의 특정 캐릭터에 대한 민감한 정보가 있고 내 프로그램에서 해당 정보를 사용하고 싶다고 가정해 보겠습니다.

def spoiler():
    spoiler = "Darth Vader is Luke Skywalker's father"
    return { "spoiler": spoiler }

정보를 하드 코딩하는 대신 .env 파일에 환경 변수로 작성합니다.

SPOILER="Darth Vader is Luke Skywalker's father"

dotenv-vault를 사용하면 내 프로그램이 환경 변수를 사용하여 민감한 정보에 액세스할 수 있습니다.

import os
from dotenv_vault import load_dotenv

load_dotenv() # Take environment variables from .env

def spoiler():
    spoiler = os.getenv("SPOILER") # Get the secret
    return { "spoiler": spoiler }

그런 다음 .env 파일을 동기화하여 환경 변수를 암호화합니다. 동기화가 완료되면 DOTENV_KEY라는 데이터가 생성될 수 있습니다. 이 출력은 내 프로그램에서 프로덕션 환경 변수로 읽을 수 있습니다.

DOTENV_KEY='dotenv://:[email protected]/vault/.env.vault?environment=production' python main.py

결과적으로 내 프로덕션 애플리케이션이 비밀에 액세스할 수 있습니다.

{ "spoiler": "Darth Vader is Luke Skywalker's father" }

귀하에게 적합한 Secrets Manager를 선택하세요

다양한 비밀 관리 솔루션을 사용할 수 있습니다. 각 비밀 관리자에는 고유한 장단점이 있습니다. 조직의 요구 사항에 가장 적합한 옵션을 선택하세요.

대체 Secret Manager 목록:

  1. 재정
  2. 도플러
  3. HashiCorp 금고
  4. AWS 비밀 관리자
  5. Azure Key Vault
릴리스 선언문 이 글은 https://dev.to/kjt/move-hardcoded-secrets-to-a-secrets-manager-2bmc?1에서 복제됩니다.1 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3