해당 방법은 docker-compose를 통한 .env 설정이 안되거나 etc/environment로 환경변수 설정이 안되는 사용자들을 위한 글 입니다.
!!!! 절대로 보안이 중요한 프로젝트는 해당 방법을 사용하는것을 금합니다.!!!!
몰론 AWS SDK를 통한 Amazon Secret manager를 사용하는게 가능합니다. 다만 이거는 추후에 다뤄질 예정
몰론 자신이 사용하는 레포지토리에서는 보통은 .gitignore에 .env를 명시해놔서(깃 봇들이 돌아다니기에 보안상 위배되는 코드가 있으면 경고장을 날리거나 푸쉬를 못하게 1차 적으로 막는다.) 젠킨스나 깃액션를 통해 배포를 하여도 환경변수에 대한 정보를 가져올 수 없습니다.
nano .env
EC2 ssh에 접속 후 해당 명령어를 통해 명시적으로 .env를 입력한다.
해당 파일에 필요한 환경변수를 주입합니다.
Ctrl + X 후 Y 그리고 Enter
그리고 배포 받은 파일이 (Java의 경우 .jar) 도커 이미지로 받았을 경우
도커 런 할때 .env 명시를 합니다.
ECR기준 (ec2에 aws cli이 설치되었다는 가정하에)
aws configure
해당 명령어를 클릭 후
aws-access-key
aws-secret-access-key
region name
output-format(보통은 json) 을 정확하게 입력 후
aws ecr get-login-password --region your-region | docker login --username AWS --password-stdin your-account-id.dkr.ecr.your-region.amazonaws.com
ECR에 로그인을 해줍니다.
로그인이 되면 login success! 라고 뜨면
docker run -d -p 80:80 -p 8080:8080 --env-file .env \
<IAM ID>.dkr.ecr.<region>.amazonaws.com/<ECR 이름>:<tag>
일반적으로 8080 포트를 사용하기에 8080으로 명시해놨지만 다른 포트번호를 사용하고 있다면 교체 필!
이렇게 하면 일시적으로 권한문제는 해결되었으나 추후에 docker-compose나 amazom-secret manager를 이용해 보안을 강화하길 지향합니다.
'AWS' 카테고리의 다른 글
AWS 미숙한 조작으로 인한 과금이 생길땐 (1) | 2024.11.03 |
---|