SG 정책

또한 새로운 사용자 지정 자원 정의 (CRD - Custom Resource Definition)가 클러스터 생성 시에 자동으로 추가 됩니다. 클러스터 관리자는 securityGroupPolicy CRD를 통해 파드에 할당 할 보안 그룹을 지정할 수 있습니다. 네임스페이스 내에서 파드 레이블이나 파드와 관련된 service account의 레이블을 기반으로 파드를 선택 합니다. 일치하는 파드의 경우 적용 할 보안 그룹 ID도 정의합니다.

이 명령으로 CRD가 있는지 확인할 수 있습니다.

kubectl get crd securitygrouppolicies.vpcresources.k8s.aws

WebHook은 변경을 위해 SecurityGroupPolicy 사용자 정의 리소스를 확인하고 확장된 자원 요청이 일치하는 파드를 자동으로 주입 합니다. 자원 요청은 사용 가능한 분기 네트워크 인터페이스 용량이 있는 노드로 예약 되도록 파드를 스케쥴링 합니다. 파드가 예약되면 리소스 컨트롤러는 트렁크 인터페이스에 브랜치 인터페이스를 만들고 연결 합니다. 연결이 성공하면 컨트롤러는 분기 인터페이스 세부 정보가 있는 파드 객체에 주석을 추가 합니다.

이제 정책을 생성합니다.

cat << EoF > ~/environment/sg-per-pod/sg-policy.yaml
apiVersion: vpcresources.k8s.aws/v1beta1
kind: SecurityGroupPolicy
metadata:
  name: allow-rds-access
spec:
  podSelector:
    matchLabels:
      app: green-pod
  securityGroups:
    groupIds:
      - ${POD_SG}
EoF

보이는 것 처럼 파드에 app : green-pod라는 레이블이 있으면 보안 그룹이 여기에 연결 됩니다.

특정 네임스페이스에 배포 합니다.

kubectl create namespace sg-per-pod

kubectl -n sg-per-pod apply -f ~/environment/sg-per-pod/sg-policy.yaml

kubectl -n sg-per-pod describe securitygrouppolicy

Last updated