Back End/AWS
-
[AWS] Setting up Cloudfront signed cookies for multiple paths in Java, KotlinBack End/AWS 2023. 5. 1. 18:29
What we need to do 1. Find AWS SDK Library 2. Assgin openssl rsa public key to Cloudfront 3. Set SignedCookie to Response in Application Code Example Kotlin Code fun getBookContentResponse( req: HttpServletRequest, res: HttpServletResponse, bookContentId: String ): BookContentResponse { val expireCalendar = Calendar.getInstance() expireCalendar.add(Calendar.MINUTE, 60) val resourcePath = "$bookC..
-
[AWS] CloudFront SignedCookie 특정경로 하위 모두 적용하기 (Java, Kotlin)Back End/AWS 2023. 5. 1. 18:10
서론 Node.js 에 대한 레퍼런스는 넘치는데에 비해 Java 에 대한 레퍼런스가 거의 없었다. GPT 에게 물어봐도 JS 레퍼런스 코드를 Java 형식으로 변환해놓은 듯한 괴랄한 코드를 주었다... (이게 편항된 학습인 것인가...) CookiesSigner 같은 생성자는 없었단 말이다.. 구글링해서 나온 JS 예제코드가 GPT 가 만들어준 Java 코드와 미칠듯이 흡사하다. Signed Cookie 목적 URI 에 대한 접근권한을 제어하고 싶을 때 사용한다. 보통 S3 를 Cloudfront 로 배포하여 서빙하게 되는데, CloudFront(S3)의 특정 URL 에 대해 Signed Cookie 를 획득한 사용자만 접근가능하도록 할 수 있다. 작업 목록 1. AWS SDK 라이브러리를 찾는다. 2...
-
[AWS] AWS WAF 적용 시, 주의해야 할 Default 설정들Back End/AWS 2022. 12. 17. 16:46
AWS Immersion Day 에서 소개 받은 AWS WAF v2 를 적용하면서 Default 설정 때문에 필자가 직면했던 문제점들에 대한 포스팅입니다. 이전 포스팅 [AWS] 서비스에 WAF 적용하기 WAF 란? WAF(Web application firewall) 는 OSI 4레벨 layer 가 아닌 7레벨 Layer 에 적용되는 방화벽이다. WAF 라는 서비스를 사용하여 OWASP’s Top 10 Web Application Vulnerabilities 에 대한 방어를 어느정도 쉽게 구축할 developer-ping9.tistory.com 서론 보통 회사의 직원으로써 자사상품은 항상 좋은점만 소개한다. AWS WAF 도 그랬다... (그래서 홀렸다...) AWS 에서 제공하는 Rule 들로 WAF..
-
[AWS] CloudWatch Log Insight value counts (CloudWatch Log Insight 에서 groupby count 사용하기)Back End/AWS 2022. 12. 17. 15:19
CloudWatch LogInsight 에서 GroupBy 문을 사용하여 Count 를 할 수 있다. 예제 데이터와 쿼리문은 아래와 같다. Example Data From CloudWatch { "timestamp": 1670839795503, "rule": [ { "ruleGroupId": "AWS#AWSManagedRulesCommonRuleSet", "terminatingRule": null, "nonTerminatingMatchingRules": [ { "ruleId": "SizeRestrictions_BODY", "action": "COUNT", "overriddenAction": "BLOCK", "ruleMatchDetails": [] } ], } ], "uri": "/my/api", "arg..
-
[AWS] EventBridge 에서 Lambda 를 Trigger 하기Back End/AWS 2022. 11. 13. 17:51
Rule 생성 EventBrdige -> Rules 에서 Rule 생성 Schedule Job 으로 이벤트를 발생시킬 것인지, Event Pattern 으로 이벤트를 발생시킬지 선택하고 생성한다. Target 은 당연히 Lambda 로 생성하면된다. Resource Based Policy Statements 추가 Add Permission 을 선택하여 Action = lambda:InvokeFunction 을 추가한다.
-
[AWS] CloudWatch 로그를 S3 로 보관하기 (Exporting CloudWatch logs to S3 Bucket)Back End/AWS 2022. 11. 7. 11:20
CloudWatch, S3 그리고 S3 Glacier 의 가격 CloudWatch 는 단순 저장말고도 Metrix 를 이용해 경보등의 서비스를 생성할 수 있으므로 당연히 CloudWatch Log 서비스의 가격이 S3 보다 비싸다. 또, S3 가 S3 Glacier 보다 가격이 비싸다. (액세스 속도 차이) 그렇다면 장애사후분석등 로그를 꼭 보관해야하는 상황에서는 Alarm 등의 서비스를 이용하기 위해 7일 정도로 CloudWatch 에 보관하고 CloudWatch 의 로그를 S3 로 옮겨 1~2달을 보관하고 이후에는 S3 Glacier 로 옮겨 Archive 하는 것이 비용적으로 가장 효율적일 것이다. 그런데 문제점은 CloudWatch -> S3 로 옮기는 버튼은 AWS 콘솔에 존재하지만 주기적으로 ..
-
[AWS] 서비스에 WAF 적용하기Back End/AWS 2022. 10. 10. 20:58
WAF 란? WAF(Web application firewall) 는 OSI 4레벨 layer 가 아닌 7레벨 Layer 에 적용되는 방화벽이다. WAF 라는 서비스를 사용하여 OWASP’s Top 10 Web Application Vulnerabilities 에 대한 방어를 어느정도 쉽게 구축할 수 있다. AWS WAF AWS 에서 제공하는 클라우드 환경에서 어려움 없이 쉽게 적용할 수 있는 WAF 서비스이다. OWASP’s Top 10 중 CSRF 를 제외하면 WAF를 적용하는 것 하나만으로 XSS공격, SQL Injection 공격을 포함하여 모두 쉽게 차단이 가능하다. 또한 Custom Rule 을 만들어서 특정 IP 가 일정시간 내에 규칙을 초과한 요청을 보낼 경우 Black List 에 넣거나..
-
[AWS] BeanStalk(EC2) 에 wkhtmltopdf 라이브러리 설치하기Back End/AWS 2022. 9. 25. 21:43
AWS CLI 를 통해 설치파일을 EC2 에 보내주는 방법도 있겠지만 AWS 용 wkhtmltopdf 도 있으므로 힘들이지 않고 아래와 같이 설치할 수 있다. sudo yum -y install wget wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.amazonlinux2.x86_64.rpm sudo yum install ./wkhtmltox-0.12.6-1.amazonlinux2.x86_64.rpm BeanStalk 에서의 설치 커스텀 AMI 로 만들지 않는 한, 환경재구축 시 라이브러리가 휘발되므로 .ebextension 을 이용하여 설치한다. 다만, 각 환경마다 위의 커맨드가 될 수..