AWS 16

[AWS CloudWatch] 로그 필터링 [T]

AWS WAF는 Action(Allow, Block, Count 등)을 수행하면서 많은 로그를 생성한다.따라서 로그 분석에 많은 어려움이 있을 수 있어서 선별적으로 로그를 선택해 분석의 효율성을 높여야 한다. Log Filter 생성1) WAF Console -> Web ACLs -> 원하는 ACLs 선택2) Logging and metrics -> Edit -> Add filter"""Filter logs"""Match all of the filter conditionsCondition type = .Rule action on requestCondition value = BlockFilter behavior = Keep in logsDrop from logs3) Save

[AWS WAF] AWS WAF Label 활용 하여 규칙 생성 (JSON 기반 규칙) [T]

[AWS WAF] AWS WAF JSON 기반 규칙 생성 [T]AWS WAF에서 제공하는 Rule Visual Editor를 사용하면 간편하지만 복잡한 정책을 만들 때  JSON editor를 사용한다.혹은 AND 조건과 OR 조건의 중복 적용관련해서도 JSON으로 가능하다. 기본 WAF 규칙으로 생seongduck.tistory.com여기서 만든 JSON 정책에서 이어서 시작한다. 위의 정책 수정{"Name": "JSONRule","Priority": 0,"Action": {"Count": {}},"VisibilityConfig": {"SampledRequestsEnabled": true,"CloudWatchMetricsEnabled": true,"MetricName": "JSONRule"},"Stat..

[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] 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 EKS 생성 후 접속하기 (Node 그룹, Pod 생성하기, Pod 접속하기)

AWS EKS 클러스터를 생성하고 해당 EKS에 접속하기 위해서는 2가지 방법이 있다.EC2 접속AWS CLI 접속 필자는 EC2로 쉽게 실습해서 접속하는 방법을 소개합니다.이후 EKS를 생성하고 접속은 물론, Node 그룹을 만들며, Pod까지 생성 후 Pod에 접속까지 해보겠습니다.1) EKS 클러스터 환경 접속을 위한 전용 EC2(Bastion Server) 생성1-1) EC2 생성1) EC2를 생성할 Subnet 선택 -> 작업 -> 서브넷 설정 편집 -> 자동할당 IP 설정 체크(활성화)2) EC2 생성 - AWS Linux 2023 OS 선택 - 생성 1-2) EC2에서 EKS를 사용하기 위한 IAM 역할 생성1) IAM 역할 생성 - AdministratorAccess 정책 추가 후 생성 #..

[AWS Linux] ssh: connect to host IP port 22: Connection refused 에러 발생

AWS EC2 접속할때나, Bastion을 통해 서버를 들어갈 때 다음과 같은 에러가 뜰 때가 있다.ssh는 대부분 ssh/sshd_config 파일에서 주로 관리하므로 이 부분을 확인하자.AllowUsers 권한이 있을 경우, 제거나 본인의 IP를 넣어준다. 필자는 /ssh/sshd_config에서 AllowUsers 옵션을 사용하고 있었다.해당 서버에는 못들어가니, 다른 서버에 볼륨을 붙여 설정을 변경해보자.1) 콘솔에서 해당 EBS 볼륨 해제 후 장착1) Root 볼륨 해제2) Bastion 볼륨에 추가 2)  Bastion에서 마운트1) cd /svc2) sudo mount -o nouuid /dev/sdb1 /svc #svc 폴더에 마운트3) sudo vi /etc/ssh/sshd_config-..

terraform 기본 인프라 생성하기 (key pair, ec2, security group)

서로 다른파일에서 의존성을 가지고 있으므로 모두 선언해줘야 한다. terraform(테라폼으로) key pair 선언하기vi keypair.tf#ec2 keypairresource "tls_private_key" "ec2_key" { algorithm = "RSA" rsa_bits = 4096}resource "aws_key_pair" "ec2_key" { key_name = "ec2_key.pem" public_key = tls_private_key.ec2_key.public_key_openssh}resource "local_file" "private_key" { content = tls_private_key.ec2_key.private_key_pem filename =..

terraform 기본 인프라 생성하기 (vpc, igw, nat, subnet, routing table)

vi vpc.tf #생성하고 나서 아래 작성#vpc mainresource "aws_vpc" "main" { cidr_block = "172.31.190.0/24" tags = { Name = "amcamp" }}#create the internet gatewayresource "aws_internet_gateway" "internet-gateway" { vpc_id = aws_vpc.main.id tags = { Name = "igw-amcamp" }}#create the nat gatewayresource "aws_eip" "nat-gateway-eip" { domain = "vpc" tags = { Name = "nat..

[Linux] 하위폴더 소유자 변경

1) 소유자가 존재하지 않는 파일 찾기find / \( -nouser -o -nogroup \) -xdev -exec ls -al {} \; 2> /dev/null 2) 하위폴더 루트로 소유자 변경1) ll /home/ec2-user/tmp/solidagent/linux/ #해당 경로 권한 확인2) chown root:root -R /home/ec2-user/tmp/solidagent/linux/ #하위 루트로 변환 crontab 이용하여 cat 부분 분리하기cat /etc/passwd | cut -d: -f1 | xargs -I{} crontab -l -u {}