Dangil project(13)

Junyoung·2024년 5월 23일

Dangil Project

목록 보기
13/20

정적으로 띄워지는 컨테이너중 MySQL 의 PW를 파일이 아닌 EC2 리눅스 환경에 직접 지정하여 사용해보려고 한다.

해당 컴포즈에서는 하나의 네트워크에 expose로 설정해놨기 때문에 외부에서 접근이 불가하다 !

하지만 root의 비밀번호가 git에 노출된다면 이또한 위험요소가 될수있다

해당 DB, jenkins, Nginx는 정적 컨테이너로 미리 띄워놓고 사용한다.

따라서 ec2 자체의 환경변수로 설정해놓고 사용한다면 외부에서 접근이 불가하다 !

export MYSQL_ROOT_PASSWORD=root 로 전역 변수에 등록하고

printenv 명령어를 사용해보면 성공적으로 등록 되어있는것을 볼수있다 !

일반 계정으로 변환해서 환경변수를 조회해보면 MYSQL_ROOT_PASSWORD가 등록되어 있지 않는것을 볼수있다 !

다시 root 계정으로 접근해서 확인해보니 환경 변수가 사라졌다 ?

찾아보니 다음과 같다

  1. 전역 환경변수 설정:
    • /etc/profile: 이 파일에 환경변수를 추가하면 모든 사용자와 모든 쉘 로그인 세션에 대해 환경변수가 설정됩니다.
    • /etc/environment: 이 파일은 시스템 전체에서 모든 사용자에게 적용되는 환경변수를 설정할 때 사용합니다. 쉘 스크립트 문법이 아닌 단순 키-값 형태로 환경변수를 설정할 수 있습니다.
  2. 사용자별 환경변수 설정:
    • ~/.bashrc 또는 ~/.profile: 특정 사용자의 홈 디렉토리에 있는 이 파일들에 환경변수를 추가하면 해당 사용자가 로그인할 때마다 해당 환경변수가 적용됩니다. .bashrc는 bash 쉘에서 사용되며, .profile은 로그인 쉘에서 실행됩니다.
  3. 환경변수 일시적 적용:
    • 현재 세션에서만 환경변수를 적용하려면, 쉘에서 직접 export 변수이름=값 형태로 설정할 수 있습니다. 이 경우에는 사용자가 로그아웃하면 설정한 환경변수가 사라집니다.
  4. sudo로 환경변수 유지하기:
    • sudo 명령어를 사용할 때 E 옵션을 추가하여 현재 사용자의 환경변수를 root 권한으로 전환할 때 유지할 수 있습니다. 예를 들어, sudo -E 명령어 형태로 사용합니다.

나는 root 계정 한정으로 환경변수를 등록하고 싶다


환경변수를 등록해놨다

이후 로그아웃후 다시 ROOT 계정에 들어왔을때 해당 환경변수가 등록 되어있는것을 볼수있다 !

MYSQL이 문제없이 로드 되는것을 확인했다

환경변수로 설정한 root 비밀번호 root 도 잘 로드 되는것을 확인했다.

profile
라곰

0개의 댓글