전체 글

어차피 이 세상은 아만보
· Cloud/AWS
S3 버킷을 정적 호스팅용으로 사용하는 경우, 버킷을 퍼블릭으로 오픈 후, 퍼블릭하게 버킷으로 접근할 수 있도록 버킷 정책을 설정해주어야한다.그리고 이러한 정적 호스팅 페이지를 오리진으로 하는 Cloudfront 배포를 생성해 사용하고는 한다. 이렇게 생성된 Cloudfront 배포 URL을 타고 정적 호스팅 버킷으로 접근하는 로직을 타는 것이다.하지만, 이러한 설정에도 불구하고 여전히 정적 호스팅 버킷 URL을 통해서 직접 접근하는 것이 가능하다. 버킷 컨텐츠에 대한 직접 접근을 막기 위한 방법으로 Cloudfront의 OAI와 OAC가 존재한다. OAI(Origin Access Identity)Cloudfront를 통해서만 S3 오리진에 접근할 수 있도록 하는 설정정확히는 Cloudfront가 S3 ..
시나리오 개요There is an environment that is implemented as shown in the schematic drawing below. Glue service manager will accidentally upload their access keys through the web page. The manager hurriedly deleted the key from s3, but does not recognize that the key was stored in the DB. Find the manager's key and access the ssm parameter store with a vulnerable permission to find the parameter value ..
시나리오 목표Full Admin 권한 획득 시나리오 세팅./cloudgoat.py create iam_privesc_by_rollback User "raynor"가 주어지며 시작 Solution1. User "raynor" enumeration먼저 raynor에 연결된 policy들과 권한들을 확인한다.# User에 연결된 inline Policy 확인aws iam list-user-policies --user-name [user명] --profile raynor# User에 연결된 Managed Policy 확인aws iam list-attached-user-policies --user-name [user명] --profile raynor# 특정 Policy 정보 확인 (version 정보 확인)aws..
시나리오 목표Full Admin 권한 획득 시나리오 세팅./cloudgoat.py create lambda_privesc User "Chris"의 Access Key와 Secret key가 주어지며 시작 Solution1. 주어진 User의 Role확인먼저 enumerate-iam과 같은 툴을 이용해 전체적인 권한을 둘러볼 수 있다. 대략적으로 iam 계열의 권한을 확인할 수 있다. 이후 User에 붙은 Role과 Policy를 확인# User에 연결된 inline Policy 확인aws iam list-user-policies --user-name [user명] --profile chris# User에 연결된 Managed Policy 확인aws iam list-attached-user-policies..
· Study/K8s
Kubernetes에는 Secrets라는 리소스가 존재한다. Secrets에는 Application에서 사용하는 Credential과 같은 민감한 정보를 저장하여 관리하도록 한다.하지만 Secrets은 이름과는 다르게 정말 완벽한 비밀은 아니다. 이러한 Secrets는 Kubernetes 클러스터 Control plane에 위치한 etcd에 저장되는데, base64로 인코딩된 값이 평문으로 그대로 저장되기 때문이다. Secrets를 정말 Secret답게 사용하기 위해 보통 크게 3가지 방법을 사용하는 것이 제시된다.RBAC를 활용해 Secrets에 접근할 수 있는 User를 제한하는 방법외부 Secret Management 서비스를 이용해 저장 후, 클러스터로 가져와서 사용하는 방법Secrets가 저장되..
· Study/K8s
EC2 인스턴스내에서 AWS 서비스에 접근하기 위해서는 IAM User의 AccessKey Credential을 가져와서 사용하거나, 인스턴스에 IAM Role을 지정한 뒤 사용하고는 했다.그렇다면 Kubernetes의 클러스터에 존재하는 pod에서는 어떨까? pod 내에서도 마찬가지로 IAM User의 Credential을 넣고 사용하는 방법도 가능하다. 하지만 이러한 방법이 정말 안전하다고 말할 수는 없다.IAM User의 AccessKey Credential은 탈취의 위협이 항상 존재하므로 Application내에 하드코딩하거나 Application 구동 환경의 환경변수 등에 삽입하여 사용하는 것은 권고되지 않는 방식이다. 이런 문제를 위해 EC2 인스턴스에 연결하는 IAM Role이 존재한다. 하..
· 생산성
OpenAI의 chatGPT와 Github의 Copilot을 시작으로 다양한 LLM이 생겨나고 발전하면서 Coding에 특화된 모델이나 이를 활용한 서비스들이 속속 등장하는 시대가 도래했다. 필자도 Coding 작업을 할때는 이전에 간단하게 소개를 했었던 AWS Codewhisperer를 주로 사용하고, chatGPT나 Claude를 코드 리펙토링이나 로직 구현 등에 이용을 했었다. 이 밖에도 Cursor IDE도 한 달간 체험을 해본 경험이 있다. Continue오픈소스 AI-code assistant, LLM을 연결해 커스텀 code completion과 chatting을 이용할 수 있는 툴이다.VSCode와 JetBrain의 플러그인 방식으로 설치할 수 있다.  GitHub - continuedev..
· Cloud/AWS
EBS CSI Driverkubernetes 클러스터와 AWS EBS 서비스의 연동을 위한 드라이버로, AWS EBS를 Storage로써 사용하기 위해 설치한다.EKS 클러스터에 PV를 프로비저닝, 마운트 작업을 수행하고, StorageClass를 이용해 EBS 볼륨을 동적으로 생성/삭제(Dynamic Provision)하는 역할을 수행한다. EBS CSI Driver는 다음과 같은 특성을 가진다.생성한 EBS의 PVC AccessMode는 ReadWriteOnce로 구성 EBS는 node(EC2)와 1:1로 매핑되는 구성을 갖기에, 동시에 같은 EBS에 접근 불가동시에 여러 액세스가 필요한 상황에서는 EBS가 아닌 EFS를 사용할 수 있다. EBS가 위치한 가용영역으로 PV의 nodeAffinity를 ..
Omoknooni
Memorize