2020년 3월 25일 보안정보 스크래핑

2020년 3월 25일 보안정보 스크래핑 3월 25일 보안정보 스크래핑 ==================================================================== + 주요 취약점 - 메일전송 프로토콜을 이용한 원격 명령어 실행 주의 권고 외 1건 1. 메일전송 프로토콜을 이용한 원격 명령어 실행 주의 권고 최근 OpenSMTPD* 취약점이 발견되는 등 메일전송 프로토콜에서 원격 명령어 실행이 가능하여 주의를 권고함 공격자는 취약점을 악용하여 피해를 발생시킬 수 있으므로, 해결방안을 참고하여 조치 필요 - https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=35302 2. Django 제품 SQL Injection 취약점 보안 업데이트 권고 최근 Django*에서 SQL Injection취약점(CVE-2020-9402)을 악용할 수 있는 개념증명코드(Proof of concept, PoC)가 인터넷상에 공개되어 사용자의 보안 업데이트 필요 - https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=35301 ==================================================================== + 취약점 - Apple Safari 취약점 1. Apple Safari 취약점 Apple Safari security bypass CVE-2020-3885 - https://exchange.xforce.ibmcloud.com/vulnerabilities/178339 Apple Safari security bypass CVE-2020-3887 - https://exchange.xforce.ibmcloud.com/vulnerabilities/178338 Apple Safari inform...

Django app AWS EB(elasticbeanstalk) 배포해보기

Django app AWS EB(elasticbeanstalk) 배포해보기

안녕하세요 물개발자입니다.

google trend of django

google trend 에 django를 찾아보면 위와 같은 검색어 흐름을 볼 수 있습니다. Django에 관심을 가지는 개발자 숫자가 많아지고 있음을 알수 있습니다. 그리고 최근에 제가 근무하는 회사 지인이 AWS 환경에서 django 서비스를 운용해보고자 하는 경우가 있어 이와 같이 문서로 정리해봅니다.

다행히 aws에서 아래와 같이 친절한 한글 문서를 제공하고 있으니 이것을 기반으로 하겠습니다.

Django 애플리케이션을 Elastic Beanstalk에 배포

https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/create-deploy-python-django.html

기억하면 좋은 것들

requirements.txt

pip freeze > requirements.txt

EB는 관리형 서비스로 내부적으로 EC2를 생성을 합니다. 그리고 개발자가 개발한 django 앱을 실행하는데요, 실행에 필요한 패키지는 requirements.txt 에 기록된 패키지명과 버젼이 기준이 됩니다. 그러니 개발과정에서 추가되거나 버젼이 변경이 되는 경우 반드시 requirements.txt 파일에 기록할 필요가 있습니다.

WSGIPath

.ebextensions/django.config option_settings: aws:elasticbeanstalk:container:python: WSGIPath: ebdjango/wsgi.py

문서에서는 ebdjango/wsgi.py 로 적혀있습니다만, 본인의 프로젝트명에 따라서 변경해 주어야 합니다. manage.py 의 위치를 기준으로 wsgi.py 의 상대 경로를 지정해 주면 됩니다.

예를 들어 저와 같이 아래의 구조를 가지고 있다면 main/wsgi.py 가 맞습니다.

$ tree . ├── main │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── manage.py

eb init

eb init -p python-3.6 django-tutorial You have not yet set up your credentials or your credentials are incorrect You must provide your credentials. (aws-access-id):

이와 같이 aws-access-id 의 입력을 요구하고 있습니다. 아래의 링크를 통해서 profile 생성할수 있습니다.

https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/create-deploy-python-django.html

그리고 만들어진 프로필 이름을 명시하면 계속 진행할 수 있습니다. 명령어 실행 결과 아래와 같이 region 설정이 되어있을수 있는데요.

default_region: us-west-2

$ cat .elasticbeanstalk/config.yml branch-defaults: default: environment: null global: application_name: django-tutorial branch: null default_ec2_keyname: null default_platform: python-3.6 default_region: us-west-2 include_git_submodules: true instance_profile: null platform_name: null platform_version: null profile: aws-profile repository: null sc: null workspace_type: Application

us-west-2 는 아래 링크에서 확인할수 있듯이 oregon 이므로 서울로 변경하고 싶다면 region 옵션도 추가해 주어야 합니다.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html

eb init -p python-3.6 django-tutorial --profile [프로필이름] -region ap-northeast-2

키 페어

EB 가 관리하는 EC2 자원에 접근하기 위한 키 설정과정입니다. 이 과정을 그냥지나치면 ssh 명령어로 접근할수 없으니 기존에 키 페어가 있다면 사용하고 그렇지 않은경우 새로 만들어도 문제가 되지는 않습니다. 새로 만들어진 경우 그 키는 ~/.ssh 경로에 자동으로 생기니 놀라지 않으셔도 됩니다.

마무리

EC2를 직접사용하는 IAAS 방식과 EB를 활용하는 PASS 방식 모두 클라우드 자원을 이용하는 접근하는 방식입니다. 각각이 주는 장단점이 있기때문에 절대적으로 한 방식이 옳다고 얘기하는 것은 무리가 있습니다. 하지만 AWS 에서 제공하는 서비스를 쉽게 활용하고 싶고, 서버 관리에 부담이 느껴지다면 EB 를 선택하는 것도 좋은 선택이 될수 있겠습니다.

from http://pointer81.tistory.com/77 by ccl(A) rewrite - 2020-03-14 19:20:12

댓글

이 블로그의 인기 게시물

[aws] deploy Angular app with s3 | AWS S3로 angular 앱 배포하기

django query 기초 3

Elasticsearch-dsl, Django 삽질 복기(2)