[MAC] 콘다(Conda) 환경에서 환경 변수 설정하기: AWS Access Key와 Secret Key 등록법

Conda 환경에서 환경 변수 설정하기

AWS의 Access Key와 Secret Key 등의 환경 변수를 Conda 환경에 설정하는 방법에 대해 아카이브를 진행할 것이다. 환경 변수를 사용하면 중요한 키 값들을 코드에서 분리하여 보안을 유지하고, 여러 프로그램 간에 키 값을 공유하는 등의 작업을 용이하게 할 수 있다.

Conda 환경이란?

먼저, Conda 환경에 대해 간단히 설명하자면, Conda는 오픈 소스 패키지 관리 시스템이며, Python 등 여러 언어의 소프트웨어 패키지를 설치하고 관리하는 데 사용된다. Conda 환경은 독립적인 공간으로, 각 환경마다 다른 패키지의 버전이나 설정을 가질 수 있기에, 필자는 각 프로젝트마다 새로운 환경에서 프로그래밍을 진행한다.

환경 변수 설정하기

  1. 먼저, 설정하려는 Conda 환경에 들어간다. 예를 들어, myenv라는 환경에 들어가려면 터미널에서 다음 명령어를 실행한다.
    1
    $ conda activate myenv
    
  2. 이제 해당 Conda 환경의 위치를 확인한다. conda env list 명령어를 실행하면 현재 설치된 모든 Conda 환경의 목록과 각 환경의 위치를 볼 수 있다.
  3. 해당 위치로 이동하여 etc/conda/activate.d 디렉토리를 찾는다. 이 디렉토리가 없는 경우 생성한다.
  4. activate.d 디렉토리 안에 환경 변수를 설정할 새 스크립트를 만든다. 예를 들어, env_vars.sh라는 새 스크립트를 만들어서 환경 변수를 설정한다.
    1
    $ nano env_vars.sh
    
  5. 이 스크립트에 다음과 같은 코드를 추가한다.
    1
    2
    3
    #!/bin/sh
    export AWS_ACCESS_KEY_ID="your_access_key_id"
    export AWS_SECRET_ACCESS_KEY="your_secret_access_key"
    

    여기서 your_access_key_id와 your_secret_access_key는 실제 AWS 액세스 키 ID와 시크릿 액세스 키로 바꿔야 한다.

  6. 변경사항을 저장하고 나가려면 Ctrl + X를 누르고, Y를 누른 후 Enter를 눌러 저장하고 나간다.

이제 해당 환경을 활성화할 때마다 환경 변수가 자동으로 설정된다. 이렇게 하면, AWS 액세스 키와 시크릿 키를 안전하게 관리하고, 필요한 프로그램에서 쉽게 접근할 수 있게 된다.

파이썬에서 환경 변수 사용하기

파이썬에서 등록한 환경 변수를 사용하는 것은 매우 간단하다. os 모듈의 environ 객체를 사용하여 환경 변수에 접근할 수 있다. 이 객체는 환경 변수의 이름을 키로, 해당 환경 변수의 값을 값으로 가지는 사전과 같은 객체이다.

예를 들어, 앞서 설정한 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 환경 변수를 파이썬에서 사용하는 코드는 다음과 같다.

1
2
3
4
import os

AWS_ACCESS_KEY_ID = os.environ['AWS_ACCESS_KEY_ID']
AWS_SECRET_ACCESS_KEY = os.environ['AWS_SECRET_ACCESS_KEY']

위 코드에서 os.environ['AWS_ACCESS_KEY_ID']os.environ['AWS_SECRET_ACCESS_KEY']는 각각 AWS_ACCESS_KEY_ID와 AWS_SECRET_ACCESS_KEY 환경 변수의 값을 반환한다.

환경 변수가 설정되어 있지 않을 때 기본값을 사용하도록 하려면 os.environ.get 메서드를 사용할 수 있다. 이 메서드는 첫 번째 인자로 환경 변수의 이름을, 두 번째 인자로 해당 환경 변수가 설정되어 있지 않을 때 사용할 기본값을 받는다. 예를 들어, AWS_ACCESS_KEY_ID 환경 변수가 설정되어 있지 않을 때 기본값으로 'default_access_key_id'를 사용하도록 하려면 다음과 같이 코드를 작성할 수 있다.

1
2
3
import os

AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID', 'default_access_key_id')

이상으로, Conda 환경에서 환경 변수를 설정하고, 파이썬에서 이 환경 변수를 사용하는 방법에 대해 알아보았다. 환경 변수를 이용하면, 코드에서 중요한 키 값을 분리하고, 여러 프로그램에서 키 값을 공유하는 등의 작업을 용이하게 할 수 있다. 이 외에도 환경 변수는 여러가지 용도로 사용될 수 있으니, 활용해보길 적극 추천한다.

부록. 환경 변수의 다양한 용도

  1. 설정 값 관리: 환경 변수는 애플리케이션의 설정 값을 관리하는 데 널리 사용된다. 예를 들어, 데이터베이스 연결 문자열, API 키, AWS 액세스 키, 비밀번호 등과 같은 민감한 정보는 코드에 직접 포함시키기보다는 환경 변수에 저장하는 것이 안전하다. 또한, 이렇게 하면 개발, 테스트, 프로덕션 등 다른 환경에서 다른 설정 값을 쉽게 사용할 수 있다.
  2. 환경 구별: 환경 변수를 사용하여 실행 중인 환경을 구별할 수 있다. 예를 들어, NODE_ENV라는 환경 변수를 사용하여 Node.js 애플리케이션의 실행 환경이 개발 환경인지 프로덕션 환경인지 구별할 수 있다.
  3. 파일 경로 지정: 환경 변수는 파일 시스템의 경로를 지정하는 데도 사용된다. 예를 들어, PATH 환경 변수는 운영 체제가 실행 파일을 찾을 위치를 지정하는 데 사용된다.
  4. 시스템 행동 변경: 운영 체제나 어떤 소프트웨어의 행동을 변경하기 위해 사용된다. 예를 들어, LANG 환경 변수는 소프트웨어의 로케일을 설정하는 데 사용된다.
  5. 시스템 리소스 제어: 환경 변수를 사용하여 시스템 리소스를 제어할 수도 있다. 예를 들어, Java 애플리케이션에서 JAVA_HOME은 JDK의 위치를 가리키고, Xmx와 Xms는 JVM의 힙 메모리 크기를 제어하는 데 사용된다.
0%