2024/10 13

[AWS WAF] AWS WAF SQL Injection 정책 만들기 [T]

SQL Injection 공격이란?공격자가 웹서버의 중요 정보를 탈취하기 위하여 가장 자주 사용하는 공격 방법사용자의 입력을 데이터베이스의 쿼리에 반영되도록 구성된 시스템의 취약점을 이용한 공격즉, Admin이라는 계정의 비밀번호를 0000으로 변경 쿼리 보내기 사전 조건은 미리 WAF 깡통(규칙 없는)을 생성한 곳에서 진행한다.1) AWS WAF Console -> 왼쪽의 Web ACLs -> 생성한 WAF 선택2) 상단에 Rules -> Add rules -> Add managed rules and rule groups3) Rule type : Rule builder -> Name -> Regular rule4) If a request : matches the statement5) Inspect : ..

[AWS KMS] AWS CLI로 KMS 자체 암호화하기 [T]

1) 비밀 파일 생성echo "New secret text" > NewSecretFile.txt #비밀 파일 생성 2) CMK로 암호화aws kms encrypt --key-id alias/ImportedCMK --plaintext fileb://NewSecretFile.txt --encryption-context project=kmsworkshop --output text --query CiphertextBlob | base64 --decode > NewSecretsEncryptedFile.txt#CMK로 암호화하고 복호화 작업에서 제공해야 할 암호화 컨텍스트 사용cat NewSecretsEncryptedFile.txt #암호화 성공 3) 복호화aws kms decrypt --ciphertext-blo..

[AWS KMS] Encyption SDK 사용하여 봉투 암호화하기 [T]

Policy -> KMS -> 다음2) Write(Decrypt, Encrypt, GenerateDataKey, GenerateDataKeyWithoutPlaintxt)3) Tagging (All tagging actions)4) Resources All 선택 -> " data-og-host="seongduck.tistory.com" data-og-source-url="https://seongduck.tistory.com/384" data-og-url="https://seongduck.tistory.com/384" data-og-image="https://scrap.kakaocdn.net/dn/bWYR9r/hyXpxMXgDh/8V2cI22s3VVoUXEw5tnpG1/img.png?width=800&hei..

[AWS KMS] AWS CLI로 클라이언트 측 암호화하기 [T]

해당 작업을 진행하려면 사용할 EC2 권한에 다음을 추가해야 한다.1) IAM -> Policy -> KMS -> 다음2) Write(Decrypt, Encrypt, GenerateDataKey, GenerateDataKeyWithoutPlaintxt)3) Tagging (All tagging actions)4) Resources All 선택 -> 이름 생성 후 Create policy1) IAM -> Roles -> EC2에 부착되어 있는 Roles 선택2) 위에서 만든 정책을 넣어준다.1) 암호화할 대상 만들기sudo echo "암호화할 대상 데이터" > samplesecret.txt 2) DataKey 생성하기AWS KMS에 CMK를 참조하는 데이터 키를 생성하도록 요청 (CMK는 데이터 키를 암호..

[AWS KMS] AWS CLI로 외부 키를 AWS KMS로 생성하기 [T]

순서는 다음과 같다.AWS KMS에 빈 KMS 키를 생성 후, 외부 키를 해당 KMS에 채운다.외부 키를 가져오기위해 래핑 수행OpenSSL 라이브러리로 키 구성요소 생성하기API를 통해 빈 KMS 키로 가져오기 외부 키가 있는 경우는 바로 진행하면 되고, 없을 때를 가정하여 임의로 만들어서 진행한다.항상 진행은 EC2 CLI를 통해 진행한다. 우선 해당을 실행하려면 몇가지 IAM Role 및 Policy가 필요하다.1) IAM -> Policies -> Create Policy2) KMS -> Write(ImportKeyMaterial) -> ALL Resources3) 이름 작성 -> Create Policy1) IAM -> EC2에 붙여놓은 IAM Roles 클릭2) Add Permissions -..

[AWS KMS] AWS CLI로 AWS 고객 관리형 키(CMK) 생성하기 [T]

AWS Console 접속1) IAM -> Roles2) EC2에 할당시킨 IAM Roles 선택3) 해당 IAM Roles 선택 - Add Permissions -> Attach Polices4) AWSKeyManagement -> Add permissions 부여 완료 생성한 EC2내 AWS CLI로 진행합니다.aws kms create-key #kms key 생성하기 해당 KeyID를 복사aws kms create-alias --alias-name alias/FirstCMK --target-key-id '위 복사한 ID 넣기' #Aliases 생성 KMS 콘솔에서 확인하면 생성 완료

[Trouble Shooting] AWS EKS Pod로 생성된 Rabbitmq가 무한 Pending 일 때 (Rabbitmq pod가 Status pending)

AWS EKS로 Rabbitmq pod를 만들었는데 10분이 지나도록 Pending이 뜨면 무언가 문제가 있는 것이다.즉, Status가 Pending이라면 다음과 같은 원인들이 있고 해결할 수 있다.원인1 클러스터에 사용 가능한 스토리지 클래스인지 확인 해결법$ kubectl get storageclass생성한 EBS Volume의 Type과 해당 클러스터의 Type이 일치한지 확인한다.다르다면 AWS EBS를 해당 Type에 맞춰 다시 생성해준다.원인2Helm Chart로 RabbitMQ를 생성할 때, PV가 설정이 안되어 있는 경우 해결법 예시는 다음과 같다.1) RabbitMQ PV yaml 파일 만들기 (저장소)1) $ vi rabbitmq-pv.yaml"""apiVersion: v1kind: ..

[Trouble Shooting] AWS EKS rabbitmq pod 생성시 EBS 볼륨 에러 발생 "default-scheduler Successfully assigned default/rabbitmq-5d797cbcfd-8tv6s to ip-172-31-0-33.ap-northeast-2.compute.internal Warning FailedAttachVolume 70s (x2 over 3m11s) attachdetach-co

해당 에러는 AWS EBS CSI 드라이버가 없을 때 발생한다. 해결법eksctl utils associate-iam-oidc-provider --region --cluster --approveeksctl create addon --name aws-ebs-csi-driver --cluster --region --force

[Trouble Shooting] AWS EKS Pod에 RabbitMQ 설치시 "curl: (7) Failed to connect to my-rabbitmq port 15672 after 2 ms: Couldn't connect to servercommand terminated with exit code 7" 에러 발생

1. 원인필자는 RabbitMQ설치시 스토리지(EBS, 저장소)를 못찾거나 선언해주지 않았을 때 발생했다. 2. 해결1) AWS 콘솔에서 EKS와 Node와 같은 AZ에 EBS 생성2) pv.yaml 파일에 해당 코드 추가""" awsElasticBlockStore: volumeID: "생성한 EBS ID" #""는 제거"""3) $ kubectl apply -f pv.yaml #yaml 배포$4) kubectl get svc #서비스 생성 확인3. 해결을 봐도 모르겠으면 예시는 다음과 같다.1) RabbitMQ PV yaml 파일 만들기 (저장소)1) $ vi rabbitmq-pv.yaml"""apiVersion: v1kind: PersistentVolumemetadata: name: rab..