- 특정 태그가 들어간 인스턴스만 생성 및 삭제할 수 있도록 정책 설정하기wngnl05wsi-project: developer라는 태그가 들어간 인스턴스만 생성 할 수 있는 IAM 정책더보기{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOnlyAccess", "Action": [ "ec2:Describe*", "ec2:GetConsole*", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "iam:ListInstanceProfiles" ], ..
- 2024-12-27 15:21:24
- EKS Fargate Fluent-bit to Cloudwatchwngnl05Deployment에서 Fargat로 pod를 배포한뒤아래의 파일을 이용해서 namespace와 configmap을 생성해줍니다. pod에 exec로 접속하여 호출하였음에도 로그 그룹에 로그가 생성되지 않는다면deployment.yaml을 삭제하고 다시 시도해보세요. Down filewget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/CloudWatch/Fargate/aws-observability-namespace.yamlwget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/CloudWatch/Fargate/configmap.yaml Testaws logs filter-log-events..
- 2024-12-27 15:20:54
- WAF를 이용하여 POST Body에 특정 Key만 허용하기wngnl05{ "Name": "CheckForLengthKey", "Priority": 1, "Action": { "Block": { "CustomResponse": { "ResponseCode": 403 } } }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "CheckForLengthKey" }, "Statement": { "AndStatement": { "Statements": [ { "ByteMatchStatement": { "FieldTo..
- 2024-12-27 15:20:31
- EKS Node의 Pod Limit 해제하기wngnl05ip 제한 해제kubectl set env daemonset aws-node -n kube-system ENABLE_PREFIX_DELEGATION=truekubectl set env ds aws-node -n kube-system WARM_PREFIX_TARGET=100kubectl set env ds aws-node -n kube-system WARM_IP_TARGET=150kubectl set env ds aws-node -n kube-system MINIMUM_IP_TARGET=150노드의 남은 CPU와 메모리 확인kubectl top nodes
- 2024-12-27 15:20:01
- EKS External Secretwngnl05Link External Secret 역활 & 정책 만들기더보기REGION=""CLUSTER_NAME=""NAMESPACE=""cat >secret-policy.json External Secret 설치하기helm repo add external-secrets https://charts.external-secrets.io helm install external-secrets \ external-secrets/external-secrets \ -n kube-system \ --set serviceAccount.create=false Secret Reloader 설치하기helm repo add stakater https://stakater.github.io/stakater-chartshelm re..
- 2024-12-27 15:19:36
- EKS RBACwngnl05Github Cluster Rolek8s cluster의 모든 네임스페이스와 리소스에 대한 권한을 설정할려면wget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/RBAC/Cluster_Role/configmap.yamlwget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/RBAC/Cluster_Role/rolebinding.yamlRolek8s cluster의 특정 네임스페이스 내의 리소스에 대한 권한을 설정할려면wget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/RBAC/Role/configmap.yamlwget https://ra..
- 2024-12-27 15:19:11
- Lambda@edge로 S3 presigned URL 반환하기wngnl05Lambda 역활 신뢰 정책더보기{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "edgelambda.amazonaws.com", "lambda.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ]}Lambda 코드이 코드는 S3 버킷 /frontend 폴더에 있는 이미지를 params로 받고s3 presigned u..
- 2024-12-27 15:18:40
- Linux에서 lynx 사용하기wngnl05설치하는 명령sudo yum install lynx -y접속하는 명령 -- 접속이 안될시 서버에 문제가 없나 확인해 줍니다.lynx
- 2024-12-27 15:18:14
- WAF를 이용하여 특정 QueryString 차단하기wngnl05GET, POST를 제외한 Method를 차단하는 WAF 규칙입니다.아래는 WAF 규칙의 Json 입니다.{ "Name": "method-waf", "Priority": 0, "Statement": { "NotStatement": { "Statement": { "OrStatement": { "Statements": [ { "ByteMatchStatement": { "SearchString": "GET", "FieldToMatch": { "Method": {} }, "TextTra..
- 2024-12-27 15:17:40
- WAF를 이용하여 특정 Method 차단하기wngnl05GET, POST를 제외한 Method를 차단하는 WAF 규칙입니다.아래는 WAF 규칙의 Json 입니다.{ "Name": "method-waf", "Priority": 0, "Statement": { "NotStatement": { "Statement": { "OrStatement": { "Statements": [ { "ByteMatchStatement": { "SearchString": "GET", "FieldToMatch": { "Method": {} }, "TextTra..
- 2024-12-27 15:16:45
- WAF를 이용하여 User-Agent 차단하기wngnl05dynamodb, ecr.dk, ecr.apiURL 경로가 /static으로 시작하고 User-Agent가 safe-client가 아니면 차단하도록 구성했습니다.아래는 WAF 규칙의 Json 입니다.{ "Name": "user-agent-check", "Priority": 0, "Statement": { "NotStatement": { "Statement": { "ByteMatchStatement": { "SearchString": "safe-client", "FieldToMatch": { "SingleHeader": { "Name": "user-agent" } ..
- 2024-12-27 15:16:09
- EC2 CodeDeploy로 배포하기wngnl05Install Modulesudo yum updatesudo yum install ruby -ysudo yum insatll wget -ywget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/installchmod +x ./installsudo ./install autoChecksudo systemctl status codedeploy-agentsudo systemctl start codedeploy-agent블로그Ec2 & CodeDeploy 역활 신뢰 정책역활을 생성하고 EC2와 CodeDeploy에 연결해주세요.{ "Version": "2012-10-17", "Statement": [ { "Effect..
- 2024-12-27 15:15:51
- SSM으로 EC2 접근 시 CloudWatch에 로그 기록하기wngnl05로그 스트림 생성하기aws logs create-log-stream \ --log-group-name \ --log-stream-name ssm_login.sh #!/bin/bashSESSION_ID=$(aws ssm describe-sessions --state Active --query 'Sessions[*]' --output json | jq -r 'max_by(.StartDate) | .SessionId')LOG_ENTRY=$(jq -n \ --arg eventTime "$(date '+%Y-%m-%dT%H:%M:%SZ')" \ --arg eventSource "ssm.amazonaws.com" \ --arg state "Active" \ --arg accountId "6546544..
- 2024-12-27 15:15:27
- Eks ArgoCD 실습wngnl05동영상ArgoCD 설치더보기#ArgoCD 설치curl -LO https://github.com/argoproj/argo-cd/releases/download/v1.4.2/argocd-linux-amd64chmod u+x argocd-linux-amd64sudo mv argocd-linux-amd64 /usr/local/bin/argocdexport PATH=/usr/local/bin:$PATHecho 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrckubectl create namespace argocdkubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests..
- 2024-12-27 15:15:01
- Docker Nginx 배포하기wngnl05nginx.conf더보기events {}http { server { listen 80; server_name localhost; location / { root /usr/share/nginx; index index.html; } }}Dockerfile더보기FROM nginx:alpineCOPY nginx.conf /etc/nginx/nginx.confCOPY index.html /usr/share/nginx/index.htmlEXPOSE 80CMD ["nginx", "-g", "daemon off;"]
- 2024-12-27 15:14:39
- Vpc Lattice를 이용하여 외부로 부터 /health 차단하기wngnl05Link Lattice를 설정하기 전에 Node의 보안그룹에서 인바운드를 AnyOpen 해줍니다. Lattice 대상그룹을 먼저 만들어줍니다.대상 유형은 ip로 선택하고Ipv4 주소는 EKS에서 만든 대상그룹에 연결되어 있는 IP를 넣어줍니다,이제 Lattice 서비스를 생성해줍니다. 마지막으로 Lattice 서비스 네트워크를 생성해줍니다.Lattice 서비스 네트워크에서 위에서 만든 서비스를 연결해주고Vpc Lattice Service 에 호출을 보낼 VPC를 연결해줍니다.보안그룹은 선택하지 않습니다 Lattice 대상그룹 확인TARGET_GROUP_ID=$(aws vpc-lattice list-target-groups --target-group-type IP | jq -r '.items[].id')a..
- 2024-12-27 15:14:23
- CodePipeline 스테이지에서 검토할 URL 설정하기wngnl05buildspec.yaml더보기version: 0.2env: variables: - 코드phases: pre_build: commands: - 코드 build: commands: - 코드 post_build: commands: - 코드 - echo $CODEBUILD_RESOLVED_SOURCE_VERSION > commit_id.txtartifacts: files: - 코드 - 'commit_id.txt' 우선 Code Pipeline을 준비해줍니다. Code Pipeline > 편집 > 편집 : Source 를 편집해 줍니다.변수 네임스페이스에 "NewCommit"을 작성해줍니다. CodeBuild와 CodeDeploy 사이에 스테이즈 ..
- 2024-12-27 15:13:44
- CodeBuild ID로 ECR 업데이트 및 ECS 서비스 업데이트 하기wngnl05appspec.yml : CodeDeploy에서 애플리케이션 배포를 정의하고 제어하는 설정 파일buildspec.yml : CodeBuild에서 실행할 명령어를 작성한 파일taskdef.json : ECS의 작업정의 ECS Service를 배포할때 Blue&Green으로 설정해주세요.CMD-SHELL, curl --fail http://localhost:8080/health || exit 1Download Filewget https://raw.githubusercontent.com/wngnl-dev/AWS/main/ECS/appspec.yamlwget https://raw.githubusercontent.com/wngnl-dev/AWS/main/ECS/taskdef.jsoncurl -o buildspec..
- 2024-12-27 15:13:15
- ECR PULL 차단하기wngnl05{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyPullForSpecificUser", "Effect": "Deny", "Principal": { "AWS": "" }, "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "arn:aws:ecr:{REGION}:{AWS_ACCOUNT_ID}:repository/{REPOSITORY_NAME}" } ]}
- 2024-12-27 15:12:51
- Fluentbit Sidecarwngnl05NameSpacekubectl create ns fluentdApply CloudWatch-Namespacekubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/cloudwatch-namespace.yamlCLUSTER_NAME=REGION=FluentBitHttpPort='2020'FluentBitReadFromHead='Off'[[ ${FluentBitReadFromHead} = 'On' ]] && Flue..
- 2024-12-27 15:12:31
- Linux Server에서 OpenSearch로 로그 보내기wngnl05OpenSerch 생성하기 참고2024.04.17 - [Aws] - EKS Fluent-Bit to OpenSearchOpenSearch 설정Security 선택하기Create new roleEc2에 연결된 역활 이름역활 넣어주기역활 넣어주기Mapped users를 누르고EC2 역활의 ARN 작성하고 생성Python app을 Ec2에서 nohup으로 실행Install Fluentbitcurl https://raw.githubusercontent.com/fluent/fluent-bit/master/install.sh | shsudo systemctl enable --now fluent-bitsudo ln -s /opt/fluent-bit/bin/fluent-bit /bin/Fluentbit 설정 파일sud..
- 2024-12-27 15:03:38
- Dockerfile 로 Python 앱 배포하기wngnl05FROM ubuntu:latestRUN apt update -y && \ apt install -y curl python3 python3-pip python3-venvRUN python3 -m venv /opt/venv && \ /opt/venv/bin/pip install --upgrade pip && \ /opt/venv/bin/pip install flaskCOPY . .RUN mkdir /logsENV PATH="/opt/venv/bin:$PATH"EXPOSE 8080CMD ["python3", "app.py"]
- 2024-12-27 15:03:06
- EKS CloudWatch Insightwngnl05Link 시작하기 전에 EKS NodeGroup IAM 역활에 아래의 정책을 추가해줍니다.CloudWatchAgentServerPolicy CloudWatch Insight 역활 생성하기CLUSTER_NAME=""OIDC_ID=$(aws eks describe-cluster --name $CLUSTER_NAME --query "cluster.identity.oidc.issuer" --output text | sed 's|https://||')ACCOUNT_ID=$(aws sts get-caller-identity --query "Account" --output text)OIDC_ARN="arn:aws:iam::$ACCOUNT_ID:oidc-provider/$OIDC_ID"aws iam create-rol..
- 2024-12-27 15:02:48
- Node.js로 Lambda@Edge 이미지 리사이징 하기wngnl05Lambda Edge 역활더보기{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "edgelambda.amazonaws.com", "lambda.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ]}Lambda Edge 정책더보기{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", ..
- 2024-12-27 15:01:47
- IAM USER ap-northeast-2 외의 국가는 제한하기wngnl05mfaBucketDeleteControl 정책에서 만들기{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "s3:DeleteBucket", "Resource": "arn:aws:s3:::YourBucketName", "Condition": { "Bool": { "aws:MultiFactorAuthPresent": "false" } } } ]}regionAccessControl{ "Version": ..
- 2024-12-27 15:01:26
- 앤드포인트로 EC2 접속하는 방법wngnl05Ec2 사용자 데이터#!/bin/bashsudo yum install ec2-instance-connect -y Vpc 앤드포인트에서 앤드포인트를 생성하고Ec2 > 인스턴스 > 연결에서앤드포인트를 선택하고 연결해주면 됩니다. aws sqs send-message --queue-url https://sqs.ap-northeast-2.amazonaws.com// --message-body "Hello from EC2!"
- 2024-12-27 15:01:03
- S3에 개체가 생성되면 SQS로 메시지 보내기wngnl05LinkSQS 정책 설정더보기{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SQS:SendMessage" ], "Resource": "", "Condition": { "ArnLik..
- 2024-12-27 15:00:39
- ApiGateway Post 에 특정한 문자 들어있으면 오류 발생시키기wngnl05통합요청 매핑 템플릿 코드- id에 "admin"이 포함되어 있지 않으면 DynamoDB에 저장더보기#set($inputRoot = $input.path('$'))#if(!$input.params('id').contains('admin')) { "TableName": "serverless-user-table", "Item": { "id": { "S": "$input.params('id')" }, "age": { "N": "$input.params('age')" }, "company": { "S": "$input.params('company')" } } ..
- 2024-12-27 15:00:11
- Config를 이용해서 Ec2-SecurityGroup REVOKEwngnl05Config 만들때 전체 보안그룹 이벤트 확인 람다에 Config가 접근할 수 있도록 권한 추가하기aws lambda add-permission --function-name --action lambda:InvokeFunction --statement-id config --principal config.amazonaws.com Python Code더보기import jsonimport boto3from datetime import datetimeec2 = boto3.resource('ec2')def lambda_handler(event, context): instance_name = "wsi-test" inbound_ports = [22, 80, 3306] outbound_ports = ..
- 2024-12-27 14:59:28
- Eks Nginx Ingress Controller 설치하기wngnl05Nignx Ingress Controller 설치하기kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.0/deploy/static/provider/aws/deploy.yaml 확인하기kubectl get pods -n ingress-nginxkubectl get all -n ingress-nginx Manifest File ( svc, ingress )curl -o service.yaml https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/NginxController/service.yamlcurl -o ingress.yaml https://..
- 2024-12-27 14:58:43
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)