viewer requests// index.mjs (ES Module)export const handler = async (event, context, callback) => { var request = event.Records[0].cf.request; console.log("Original request:", JSON.stringify(request, null, 2)); // querystring 파싱 let querystring = request.querystring; let params = new URLSearchParams(querystring); // 'hello'가 있으면 'id'로 변경 if (params.has('hello')) { ..
전체 글
NodeJS CodeLambda@Edge로 배포할때 Viewer Request로 배포합니다.더보기// index.mjs (ES Module)export const handler = async (event, context, callback) => { var request = event.Records[0].cf.request; console.log(JSON.stringify(request.body)); // body data를 Base64로 디코딩 let body = Buffer.from(request.body.data, 'base64').toString('utf8'); let parsedBody = JSON.parse(body); // 'hello'가 있으면 ..
aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --db-instance-class db.t3.micro \ --storage-type gp3 \ --apply-immediately
SG_ID=""aws ec2 create-tags --resources $SG_ID --tags \ Key=Name,Value=$SG_NAME \ Key=ingress.k8s.aws/stack,Value=wsi/wsi \ Key=ingress.k8s.aws/resource,Value=ManagedLBSecurityGroup \ Key=elbv2.k8s.aws/cluster,Value=wsi-eks-cluster명령어를 실행하면 보안그룹에 태그를 추가해줍니다.이제 ALB의 보안그룹을 변경해주면 됩니다.
Config 규칙을 생성할때 꼭!!!!! 보안그룹 아이디를 지정해주세요람다가 Config에 접근할 수 있도록 권한 추가하기aws lambda add-permission --function-name --action lambda:InvokeFunction --statement-id config --principal config.amazonaws.comPython Code더보기import jsonimport boto3import timefrom datetime import datetime, timedelta# 클라이언트 초기화ec2 = boto3.resource('ec2')cloudwatch_logs = boto3.client('logs')config_client = boto3.client('config')..
{ "Name": "wsi-header-rule", "Priority": 1, "Action": { "Block": { "CustomResponse": { "ResponseCode": "403", "CustomResponseBodyKey": "403" } } }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "wsi-header-metric" }, "Statement": { "NotStatement": { "Statement": { "ByteMatchStatem..
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:*", "Resource": [ "arn:aws:s3:::*", "arn:aws:s3:::*/*" ] }, { "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": [ "arn:aws:s3:::j-s3-bucket-qqqqqqq-backup/2024", "arn:aws:s3:::j-s3-bucket-qqqqqqq-backup/2024/*" ] } ]} buckets=$(aws s3 ls | awk '{print..
kubectl create ns wsi-nswget https://raw.githubusercontent.com/wngnl-dev/AWS/main/Image/test/configmap.yamlwget https://raw.githubusercontent.com/wngnl-dev/AWS/main/Image/test/deployment.yaml POD_ID=$(kubectl get po -n wsi-ns -o jsonpath='{.items[0].metadata.name}')kubectl exec -it $POD_ID -n wsi-ns -- curl localhost:8080/2xxkubectl exec -it $POD_ID -n wsi-ns -- curl localhost:8080/3xxkubectl e..
FROM alpine:latestWORKDIR /COPY ./ /ENV RUN apk update && apk add --no-cache libc6-compat curl && adduser -D USER EXPOSE 8080CMD ["/"]
{ "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*" ], "Resource": "*", "Condition": { "ArnLike..
wsi-project: developer라는 태그가 들어간 인스턴스만 생성 할 수 있는 IAM 정책더보기{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOnlyAccess", "Action": [ "ec2:Describe*", "ec2:GetConsole*", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "iam:ListInstanceProfiles" ], ..
Deployment에서 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..
curl -LO https://github.com/grafana/k6/releases/download/v0.45.0/k6-v0.45.0-linux-amd64.rpmsudo yum localinstall k6-v0.45.0-linux-amd64.rpm -yk6 version
{ "Name": "CheckForLengthKey", "Priority": 1, "Action": { "Block": { "CustomResponse": { "ResponseCode": 403 } } }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "CheckForLengthKey" }, "Statement": { "AndStatement": { "Statements": [ { "ByteMatchStatement": { "FieldTo..
이름CIDRRouteTable 이름gwangju-VPC110.0.0.0/24 gwangju-VPC1-priv-a10.0.0.0/25gwangju-VPC1-priv-a-rtgwangju-VPC1-priv-b10.0.0.128/25gwangju-VPC1-priv-b-rt 이름CIDRRouteTable 이름gwangju-VPC210.0.1.0/24 gwangju-VPC2-priv-a10.0.1.0/25gwangju-VPC2-priv-a-rtgwangju-VPC2-priv-b10.0.1.128/25gwangju-VPC2-priv-b-rt 이름CIDRRouteTable 이름gwangju-EgressVPC10.0.2.0/24 gwangju-EgressVPC-priv-a10.0.2.0/25gwangju-EgressV..
ip 제한 해제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
명령어 뒤에 이 코드를 붙이면 됩니다. > /dev/null 2>&1
Link 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..
Ec2에서 Assume역활의 세션을 받아 RBAC을 적용하는 방식입니다. EC2 역활 신뢰 정책더보기{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam:::user/" }..
vi ~/.bash_logout2024.04.21 - [Aws] - EC2 접속 시 CloudWatch LogGroup에 USER 로그 작성하기
Github 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..
Lambda 역활 신뢰 정책더보기{ "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..
이름 변경하기export PS1="[]$ "접속할떄 마다 이름 변경하기echo 'export PS1="[]$ "' >> ~/.bashrc && source ~/.bashrc
설치하는 명령sudo yum install lynx -y접속하는 명령 -- 접속이 안될시 서버에 문제가 없나 확인해 줍니다.lynx
Python Flask에서는 index.html 파일을 /templates 경로에 위치 시켜야 합니다
URl 경로가 /v1으로 시작되고 QueryString에 "baduser"가 포함되어 있으면 차단하는 규칙입니다.아래는 Waf 규칙 Json 입니다.{ "Name": "query-waf", "Priority": 1, "Action": { "Block": { "CustomResponse": { "ResponseCode": 403 } } }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "query-waf" }, "Statement": { "AndStatement": { "Statement..
GET, POST를 제외한 Method를 차단하는 WAF 규칙입니다.아래는 WAF 규칙의 Json 입니다.{ "Name": "method-waf", "Priority": 0, "Statement": { "NotStatement": { "Statement": { "OrStatement": { "Statements": [ { "ByteMatchStatement": { "SearchString": "GET", "FieldToMatch": { "Method": {} }, "TextTra..
dynamodb, 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" } ..
Install 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..
로그 스트림 생성하기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..