강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

조철호님의 프로필 이미지
조철호

작성한 질문수

streamlit에서 api key 숨기기

작성

·

1.8K

·

수정됨

0

안녕하세요.

 

google sheet에 있는 데이터를 가져와서 streamlit으로 배포를 하려고 하는데요!

 

깃허브에 google api key를 노출 시킬 수 없으니, 이걸 숨겨서 배포를 하고 싶은데 방법을 알고 계신 분이 있으실까요??

 

구글 api key는 TOML형식으로 만들 수가 없어서 어려움을 겪고 있습니다.

 

현재는 세팅 -> 시크릿 -> 액션에 구글 apikey를 저장해서

 

스크린샷 2023-12-03 오후 2.40.23.png코드로 이렇게 불러오는 걸로 했는데요. 이걸로는 안 되는 것 같더라구요 ..

 

도움 부탁드려요..!

 

https://github.com/Jofresh3/geojson/blob/main/delmap.py

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

Google API Key를 숨기기 위해서는 보통 환경 변수를 사용하는 것이 일반적인 방법입니다. Streamlit에 배포하는 경우 .streamlit/secrets.toml 파일을 생성하여 환경 변수를 정의할 수 있으며, 이 파일은 Streamlit 클라우드로 배포할 때 Streamlit에 의해 자동으로 처리되어 환경 변수로 사용됩니다.

다음은 .streamlit/secrets.toml 파일 예시입니다:

# secrets.toml
google_api_key = "YOUR_API_KEY_HERE"

이렇게 정의한 후, Streamlit 애플리케이션에서는 다음과 같이 환경 변수를 불러와서 사용할 수 있습니다:

import streamlit as st
# 환경 변수에서 API 키를 불러옵니다.
api_key = st.secrets["google_api_key"]

GitHub에 코드를 올리면서 secrets.toml 파일을 .gitignore에 추가하여 GitHub 리포지토리에는 포함되지 않도록 관리하는 것을 잊지 않도록 해야 합니다. 만약 이미 배포하고 있다면 Streamlit 클라우드에서 secrets 관리 섹션에 API 키를 추가해야 합니다.

Streamlit 공식 문서에서는 보안 설정에 대한 더 자세한 정보를 제공하고 있으니 참조하시면 좋겠습니다.

조철호 님, 구글 API 키를 안전하게 관리하시길 바라며, 문제 해결에 도움이 되시길 바랍니다!

조철호님의 프로필 이미지
조철호

작성한 질문수

질문하기