Gatekeeper를 이용해 validation 을 통한 deny/audit 등을 수행할수도 있지만 muatation을 통한 특정조건을 강제화시킬수도 있다. mutation은 gatekeeper 3.10 이상부터 v1으로 제공되며 다음과 같은 4가지 방식의 CRD가 제공되어 이를 통한 강제화를 수행할수 있다. assign assignmetadata assignimage ModifySet How it works 아래 pod를 기반으로 위 4가지 CRD를 확인해보자. 동일한 내용을 가진 container를 name을 다르게 하여 비교하여 확인해볼 예정이다. jacob@laptop:~ $ cat testpod.yaml apiVersion: v1 kind: Pod metadata: name: testpod na..
Rego 로 policy 생성시 단순히 정해진 결과만이 아닌 dynamic하게 data를 가져오는것도 가능하다. 아래와 같은 http.send 함수를 사용하여 생성이 가능하며 간단한 sample code를 기반으로 사용법을 익혀해보도록 하자. http.send를 사용한 rego test 다음 작업을 위해서는 아래 사항이 필수적으로 존재해야 한다. opa cli 설치 json 결과를 return 해주는 웹서버 (이는 http.send를 사용하기 위해) 위 사항이 준비되었다면 이제 rego 파일 생성과 opa command를 통한 테스트 결과를 출력해보자. 먼저 아래와 같이 json result가 출력되는 테스트 서버를 구현하고 jacob@laptop:~ $ curl http://localhost/res/j..
introduce kubernetes node상에 다수의 image들이 존재함으로 인해 디스크 사용률이 높아지고 이로인한 부가적인 이슈들이 생길수 있어 이를 최소화할수 있도록 사용하지 않는 이미지를 주기적으로 삭제하는 도구이다. https://azure.github.io/eraser/docs/ how it works eraser는 주기적으로 삭제도 하지만 즉시 삭제해야하는 경우 특정 이미지를 추가하면 삭제도 가능하다. 또한 취약점 기반으로 이미지를 삭제할수도 있다. 우선 두가지 모드에 대하여 알아보자. manual 설명 : 삭제할 이미지리스트를 imagelist로 생성하면 노드별로 삭제진행 CRD: imagelist automated 설명 : 지정시간마다 자동으로 동작중이지 않은 이미지들을 제거를 한다...
Logic Apps 에서 Azure Resourece Manager 사용시 어떻게 사용할지 좀 애매한 부분들이 있어 이를 정리하고자 한다. Prerequisite 먼저 logic Apps 로 control할 resource에 대한 기본정보를 확인한다. 아래와 같이 특정 provider에 control할 resource의 resourceType을 확인한다. jacob@laptop:~ $ az provider list --query "[?namespace == 'Microsoft.ContainerService'].resourceTypes[].resourceType" -o json [ "ManagedClusters/eventGridFilters", "containerServices", "fleetMembers..
Azure Network Policy는 다음 링크에서 설명되어 있듯이 NSG(Network Security Groups)처럼 kubernetes cluster 내부의 통신을 micro-segmentation 으로 관리하기 위한 서비스이다. https://learn.microsoft.com/en-us/azure/virtual-network/kubernetes-network-policies 설치 일반적으로 AKS(Azure Kubernetes Service) 생성시 argument로 전달하여 설치가 가능하다. $ az aks create -g resourcegroup -n clustername --network-plugin azure --network-policy azure https://learn.micr..
trivy database 내 존재하는 CVE를 확인해볼수 있는 방법을 기술한다. images database 다음과 같은 명령을 통해 database file을 다운로드 한다. TRIVY_TEMP_DIR=$(mktemp -d) trivy --cache-dir $TRIVY_TEMP_DIR image --download-db-only tar -cf ./db.tar.gz -C $TRIVY_TEMP_DIR/db metadata.json trivy.db https://github.com/aquasecurity/trivy-db#version-2 trivy db는 boltdb로 되어 있기에 아래 boltbrowser를 다운로드 받아 이를 통해 접근해 리스트를 확인해볼수 있다. https://github.com/br..
trivy는 security scanner로 다양한 방식의 스캔을 제공하고 명령 기반의 실행방식과 결과를 제공한다. 명령 기반이기에 harbor와 같은 registry나 gitlab, circleCI와 같은 CI/CD 도구들과 통합되지 않는 경우 코드기반의 수작업이 사전에 필요하다는 의미이다. 즉, 다양한 방식의 스캔과 이에 따른 결과를 제공하기에 이를 활용하기 위해서는 추가적인 사용법 및 기타 도구들과의 통합 작업이 필요하다. 이를 한번에 제공하는 도구가 있다면 좋을듯 한데 이런 기능을 제공해주는 trivy-operator가 존재하여 이에 대하여 알아보기로 하자. Trivy-operator Trivy-operator는 kubernetes cluster를 보안 이슈에 대해 지속적으로 scan 하고 CRD..
webhookinterface를 이용해 입력 메세지를 받은 메세지를 라우팅해주는 어플리케이션으로 사전에 정의된 output과 통합하여 강제화 액션을 수행할 수도 있다. Postee는 취약점 스캔결과를 전달하거나 Aqua Platform에서 협업시스템들에 감사 알람을 전달할수 있다. (Aqua platform은 Postee를 개발한 회사의 platform으로 opensource로 제공되고 있지만 해당 기업이 contributing하고 있다.) Rego rule을 이용하여 route를 수행하고 그에 맞는 action(ex, slack webhook 실행)을 수행한다. Installation helm은 다음 aquasecurity helm repo를 등록하고 사용하면 되고 jacob@laptop:~$ helm..
- Total
- Today
- Yesterday
- socket
- jenkins
- vmware openstack
- minio
- DevSecOps
- macvlan
- K3S
- Terraform
- OpenStack
- azure policy
- aquasecurity
- ansible
- Helm Chart
- open policy agent
- nginx-ingress
- GateKeeper
- crashloopbackoff
- kata container
- mattermost
- ceph
- metallb
- kubernetes
- openstacksdk
- minikube
- kubernetes install
- openstack backup
- wsl2
- hashicorp boundary
- Jenkinsfile
- boundary ssh
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |