본문 바로가기

반응형

AWS

(14)
[ECS] ECS Exec를 사용하여 ECS Fargate 컨테이너에 접속하기 Fargate는 기본적으로 AWS에서 서버를 관리하기 때문에 운영 관리에 대한 부분을 최소화할 수 있다. 하지만 컨테이너에 Issue가 발생했다거나, 디버깅을 위해 컨테이너에 접속하고 싶을 경우에 상당히 까다로울 수 있다. EC2 기반의 ECS를 운영할 경우 그냥 EC2에 접속하여 docker exec -it {container_id} /bin/sh 등의 명령어를 수행하면 되지만 Fargate일 경우 EC2에 접속할 수 없기 때문이다. Fargate에 작업을 배포하는 ECS 사용자들은 주로 Fargate를 사용하면 SSH로 연결할 수 있는 EC2 인스턴스가 없기 때문에 EC2 인스턴스에 SSH로 연결하는 옵션도 없었다. Fargate의 ECS에서는 컨테이너로 실행하는 것이 불가능하다. 그럼 어떻게 해야할..
[AWS] Multi Account에서 IAM 내역 감사하기 #3 - 테라폼으로 인프라 프로비저닝 2 https://nyyang.tistory.com/145 [AWS] Multi Account에서 IAM 내역 감사하기 #2 - 테라폼으로 인프라 프로비저닝 1. 개요 Multi Account 환경에서 IAM 관련 Action에 대한 감사를 하기 위해서는 Log들을 Security 관련 Account에서 수집해야 한다. 이에 대한 인프라 프로비저닝은 Terraform을 사용하였다. (부분 부분 웹 콘솔 nyyang.tistory.com 위 글에 이어서 작성하는 글이며, Security Account 외 다른 어카운트들에서 동일한 Resource를 배포하기 위한 Terraform 코드이다. 가장 중요한 부분은 Provider Alias를 이해하는 부분이다. 아래 글을 읽으면 빠르게 이해가 될 것이라고 생각한다..
[AWS] Multi Account에서 IAM 내역 감사하기 #2 - 테라폼으로 인프라 프로비저닝 1. 개요 Multi Account 환경에서 IAM 관련 Action에 대한 감사를 하기 위해서는 Log들을 Security 관련 Account에서 수집해야 한다. 이에 대한 인프라 프로비저닝은 Terraform을 사용하였다. (부분 부분 웹 콘솔로 진행한 부분도 있기 때문에 참고만 하면 좋을 것이다.) 2. 구조 프로젝트의 폴더 구조는 아래와 같다. 별도의 모듈은 굳이 사용하지 않았으며, resource, data, variable, local 등을 활용하여 리소스를 Code로써 표현하였다. # another-accounts EventBridge에서 기 정의한 IAM Action이 Pattern에 걸릴 경우 Security Account의 EventBus로 전달한다. # security-accounts..
[AWS] Multi Account에서 IAM 내역 감사하기 #1 - 개요, 아키텍쳐, 고려 사항 1. 개요 Multi Account 환경에서 IAM 관련 Action에 대한 감사를 하기 위해서는 Log들을 Security 관련 Account에서 수집해야 한다. 이에 대해 다음의 AWS 서비스들을 활용하였다. Terraform : 인프라스트럭쳐 프로비저닝 CloudTrail : AWS API 감사해주는 서비스 Event Bus : AWS Event가 흐르는 통로 Event Rule : AWS 특정 Pattern을 지닌 API를 잡아내기 위함 CloudWatch Logs : 각 Account에서 발생하는 Log들을 수집 Subscription Filter : CloudWatch Logs로 적재되는 Log들을 Amazon ES로 보내기 위한 구독 필터 설정 Amazon OpenSearch : Log 중앙..
[Python] 웹크롤링으로 AWS Personal health dashboard 이벤트 긁어오기 자동화 1. 개요 [1] AWS PHD(Personal Health Dashboard)에서는 하드웨어 메인터넌스 및 VPN 싱글 터널 알림, 보안 패치 등에 대한 내용을 알려준다. [2] AWS Support Plan은 Basic, Developer, Business, Enterprise, ..로 구성되어 있다. => 여기서 AWS Health API는 Business 티어 이상부터 사용이 가능하다. 그 말은 즉슨 Basic 티어나 Developer 티어는 AWS Health API를 사용할 권한이 부여되지 않는다는 뜻이다. => Developer 이하 고객사는 AWS API를 활용하여 프로그래밍 방식으로 PHD를 확인할 수 없다. [3] Developer 이하 고객사가 여러개일 경우 AWS Web Consol..
[Elasticsearch] Nginx 로그 Fluentd를 통해 Elasticsearch로 보내기 Nginx의 로그를 Fluentd를 통해 취합하고, 이를 ElasticSearch로 보낸 다음 Kibana에서 Nginx의 Access Logs를 Dashboard로 시각화하여 확인할 수 있다. 실습 환경 - OS : CentOS7 - Container Runtime : Docker - Tool : docker compose [도구 소개] - Nginx 웹 서비스이며 리버스 프록시로써 많이 사용된다. - FluentD Log(데이터) 수집기(Collector)라고 생각하면 된다. Fluentd로 전달된 데이터는 ‘tag, time, record(JSON)으로 구성된 이벤트로 처리되며, 원하는 형태로 가공되어 다양한 목적지 (S3, ElasticSearch, ..)로 전달될 수 있다. 만약 더 적은 메모리..
[Terraform] terraform state mv 명령어 알아보기 및 활용법 Terraform은 tfstate 파일 기반으로 동작한다. 1. main.tf에 정의된 인프라스트럭쳐 2. tfstate 파일에 정의된 인프라스트럭쳐 위 2가지를 대조한 뒤, terraform plan 명령어를 수행하면 tfstate에 정의된 인프라스트럭쳐와 main.tf에 정의한 인프라스트럭쳐를 맞추려고 한다. 예를 들어, 예전에 Terraform 코드로 생성한 IAM User가 아래와 같이 존재한다고 가정해보자. resource "aws_iam_user" "user1" { name = "user1" } resource "aws_iam_user" "user2" { name = "user2" } IAM User : user1, user2가 존재할 것이다. 이 상태에서 user1, user2를 유지하되 c..
[IAM] A 계정의 IAM 유저 리스트를 B 계정의 Lambda에서 조회하기 (Cross account - STS Assume role) 동일 계정내에서 A 리소스 → B 리소스에 접근하기 위해서는 고려할 사항이 적지만 멀티 어카운트에서는 고려해야 할 사항이 늘어나게 된다. A계정에서 B계정을 신임해야 하며, B 계정에서도 A 계정을 신임해야 한다. ⇒ STS: Assume Role에 대해 이해해야 함 A 계정 : 1111111111 B 계정 : 2222222222 이라고 가정하겠음 A 계정 Role 1. A 계정의 IAM User, 각각 IAM User들의 Access Key를 확인하도록 허용해주는 Policy 추가 { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListIAMUserandListAccessKeys", "Action": [ "iam:ListUsers", "iam:Lis..

반응형