Elastic Beanstalk의 환경 변수는 비밀 값을 저장하기에 적절한 장소입니까?


15

/programming//a/17878600에 설명 된대로 환경 변수 구성 인터페이스를 사용하여 API 키를 소스에 저장하지 않고 저장하기 위해 Django 애플리케이션을 Elastic Beanstalk에 배포했습니다 .

이 작업을 수행 한 후 Beanstalk가 환경 변수라고 부르는 것은 실제로 쉘 환경 변수가 아니며 ( /programming//a/24564832/378638 ) 인스턴스 파일에 구성 파일에 저장되어 있음을 알았습니다. /programming//a/24566283/378638 )에 설명되어 있습니다 .

이것은 나에게 보안 문제처럼 보입니다. 비밀 키를 소스에서 유지하려는 목적을 이기지 않습니까? 더 이상 레포지토리에 속하지 않지만 인스턴스에서 계속 액세스 할 수 있음을 이해합니다.

위험을 오해하고 있습니까? 나는 상속으로 시스템 관리자이므로 여기에 내 무지를 용서하십시오. 구성 파일을 통해 Beanstalk 변수를 쉘 환경 변수로로드하고 파일이 루트를 통해서만 액세스 할 수 있습니까? 아니면 우려 사항이 유효합니까? 감사합니다.

답변:


12

소스 코드에서 비밀을 지키는 요점은 소스 제어에 들어 가지 않도록하는 것 입니다. 이것은 오픈 소스 프로젝트에서 특히 유용합니다.

배포시 비밀이 파일 또는 envvar에 있는지 여부는 중요하지 않습니다. 중요한 것은 프로그램을 실행중인 OS 사용자 만 읽을 수 있다는 것입니다. 이것이 envvars의 기본값이며 편리합니다.

루트는 항상 모든 것을 읽을 수 있습니다. 따라서 Amazon은 루트 값이기 때문에 원하는 경우 비밀 값을 알 수 있습니다.

그들은 지원 할 열쇠를 읽을 만들 것 고가의 하드웨어 보안 모듈 (HSM) 생각을. 물론 그들은 여전히 HSM을 사용 하여 물건을 해독 할 수 있습니다. 실제 키를 얻지 마십시오.

따라서 아마존을 신뢰하거나 직접 물건을 호스팅하거나 배치해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.