VPC 보안 그룹 작성 및 관리
Virtual Private Cloud
클러스터 작성 중 보안 그룹 추가
VPC 클러스터를 작성할 때 이름이 kube-<clusterID>
인 기본 작업자 보안 그룹이 자동으로 작성되어 클러스터의 모든 작업자에 적용됩니다. 기본 작업자 보안 그룹과 함께 추가 보안 그룹을 첨부할 수도 있습니다. 클러스터의 작업자에 적용되는 보안 그룹은 클러스터를 작성할 때와 작업자 풀을 작성할 때 적용되는 보안 그룹의 조합입니다. 기본 보안 그룹 및 작업자 풀에 적용된 보안 그룹을 포함하여
총 5개의 보안 그룹을 작업자에 적용할 수 있습니다. 작업자에 사용자 정의 보안 그룹을 추가하는 옵션은 CLI에서만 사용 가능합니다.
클러스터에 적용된 보안 그룹은 클러스터가 작성된 후에는 변경할 수 없습니다. 클러스터에 적용되는 보안 그룹의 규칙을 변경할 수 있지만 클러스터 레벨에서 보안 그룹을 추가하거나 제거할 수는 없습니다. 클러스터 작성 시 올바르지 않은 보안 그룹을 적용하는 경우 클러스터를 삭제하고 새 클러스터를 작성해야 합니다.
기본 보안 그룹만 원하는 경우
VPC 보안 그룹 작업자 보안 그룹
이는 클러스터 작성 시 기본 동작입니다.
클러스터를 작성할 때 추가 보안 그룹을 지정하지 마십시오.
기본 VPC및 kube-<clusterID>
클러스터 보안 그룹만 사용하여 VPC 클러스터를 작성하는 예제 명령:
ibmcloud ks cluster create vpc-gen2 --name <cluster-name> --zone <zone> --vpc-id <vpc-id> --subnet-id <subnet-id>
다음 보안 그룹이 적용됩니다.
- 기본 VPC 보안 그룹 (무작위로 생성된 이름)
kube-<clusterID>
작업자 보안 그룹입니다.
클러스터 보안 그룹 및 사용자 고유의 추가 보안 그룹을 원하는 경우
VPC 보안 그룹 작업자 보안 그룹 사용자 고유의 보안 그룹
클러스터를 작성할 때 --cluster-security-group cluster
및 사용자가 소유한 최대 4개의 추가 보안 그룹을 지정하십시오. 추가할 각 개별 보안 그룹에 대해 별도의 --cluster-security-group
옵션을 포함해야 합니다. 기본적으로 적용되는 보안 그룹을 포함하여 최대 5개의 보안 그룹을 작업자에 적용할 수 있습니다.
kube-<clusterID>
클러스터 보안 그룹 및 사용자 고유의 추가 보안 그룹을 사용하여 VPC 클러스터를 작성하는 예제 명령:
ibmcloud ks cluster create vpc-gen2 --name <cluster-name> --zone <zone> --vpc-id <vpc-id> --subnet-id <subnet-id> --cluster-security-group cluster --cluster-security-group <group-id-1> --cluster-security-group <group-id-2> --cluster-security-group <group-id-3>
다음 보안 그룹이 적용됩니다.
- 기본 VPC 보안 그룹 (무작위로 생성된 이름) 입니다.
kube-<clusterID>
작업자 보안 그룹- 최대 네 개의 추가 보안 그룹, 최대 총 다섯 개의 보안 그룹.
사용자 고유의 보안 그룹만 원하는 경우
VPC 보안 그룹 사용자 고유의 보안 그룹
이 옵션은 1.29 이전 버전에서 작성된 클러스터에서만 사용할 수 있습니다. 1.30부터 모든 클러스터는 작업자 노드 보안 그룹도 가져옵니다.
클러스터를 작성할 때 사용자가 소유하는 최대 5개의 보안 그룹을 지정하십시오. 추가할 각 개별 보안 그룹에 대해 별도의 --cluster-security-group
옵션을 포함해야 합니다.
사용자 고유의 보안 그룹만 사용하여 VPC 클러스터를 작성하는 예제 명령:
ibmcloud ks cluster create vpc-gen2 --name <cluster-name> --zone <zone> --vpc-id <vpc-id> --subnet-id <subnet-id> --cluster-security-group <group-id-1> --cluster-security-group <group-id-2> --cluster-security-group <group-id-3>
다음 보안 그룹이 적용됩니다.
- 기본 VPC 보안 그룹 (무작위로 생성된 이름)
- 최대 네 개의 추가 보안 그룹, 최대 총 다섯 개의 보안 그룹.
작성 중에 작업자 풀에 보안 그룹 추가
기본적으로 작업자 풀에 적용되는 보안 그룹은 클러스터 작성 시 표시되는 보안 그룹과 동일합니다. 그러나 작업자 풀에 적용할 추가 보안 그룹을 지정할 수 있습니다. 작업자 풀에 추가 보안 그룹을 적용하는 경우 클러스터의 작업자에 적용되는 보안 그룹은 클러스터 작성 시 적용되는 보안 그룹 과 작업자 풀에 적용되는 보안 그룹의 조합입니다.
기본적으로 적용되는 보안 그룹을 포함하여 최대 5개의 보안 그룹을 작업자에 적용할 수 있습니다.
작업자 풀이 작성되면 작업자 풀에 적용된 보안 그룹을 변경할 수 없습니다. 작업자 풀에 적용되는 보안 그룹의 규칙을 변경할 수 있지만 작업자 풀 레벨에서 보안 그룹을 추가하거나 제거할 수는 없습니다. 작업자 풀 작성 시 올바르지 않은 보안 그룹을 적용하는 경우 작업자 풀을 삭제하고 새 작업자 풀을 작성해야 합니다.
작업자 풀에 추가 보안 그룹을 첨부하지 않으려는 경우
작업자 풀을 작성할 때 추가 보안 그룹을 지정하지 마십시오.
이 시나리오는 1.29 이전 버전에만 적용됩니다.
보안 그룹을 적용하지 않고 작업자 풀을 작성하는 예제 명령:
ibmcloud ks worker-pool create vpc-gen2 --name <worker_pool_name> --cluster <cluster_name_or_ID> --flavor <flavor> --size-per-zone <number_of_workers_per_zone>
클러스터에 적용된 보안 그룹만 작업자에 적용됩니다.
작업자 풀에 추가 보안 그룹을 연결하려는 경우
워커 풀을 생성할 때 워커 풀 생성 시점에 추가 보안 그룹을 지정하세요. 추가할 각 개별 보안 그룹에 대해 별도의 --security-group
옵션을 포함해야 합니다.
사용자 고유의 보안 그룹이 적용된 작업자 풀을 작성하는 예제 명령:
ibmcloud ks worker-pool create vpc-gen2 --name <worker_pool_name> --cluster <cluster_name_or_ID> --flavor <flavor> --size-per-zone <number_of_workers_per_zone> --security-group <group-id-1> --security-group <group-id-2> --security-group <group-id-3>
작업자 풀의 작업자에 적용되는 보안 그룹은 작업자 풀이 첨부되는 클러스터에 적용되는 보안 그룹과 작성 시 작업자 풀에 적용되는 보안 그룹의 조합입니다.
보안 그룹 보기
VPC 보안 그룹에 대한 세부사항을 보려면 다음 단계를 수행하십시오.
-
클러스터를 나열하고 작업 중인 클러스터의 ID 를 기록하십시오.
클러스터가 있는 VPC를 확인하려면
ibmcloud ks cluster get --cluster <cluster_name_or_id>
를 실행하고 출력에서 VPC ID 를 확인하십시오.ibmcloud ks cluster ls --provider vpc-gen2
-
클러스터가 있는 VPC에 첨부된 보안 그룹을 나열하십시오. VPC 보안 그룹에는 무작위로 생성된 이름 (예:
trench-hexagon-matriarch-flower
) 이 지정됩니다. 클러스터 보안 그룹의 이름은kube-<cluster-ID>
형식으로 지정됩니다. VPC 보안 그룹의 이름은kube-<vpc-ID>
형식으로 지정됩니다.ibmcloud is sgs | grep <vpc_name>
출력 예
ID Name Rules Network interfaces VPC Resource group r006-111aa1aa-1a1a-1a11-1111-a111aaa1a11a trench-hexagon-matriarch-flower 4 0 my-vpc default r006-222aa2aa-2a2a-2a22-2222-a222aaa2a22a kube-a111a11a11aa1aa11a11 4 0 my-vpc default r006-333aa3aa-3a3a-3a33-3333-a333aaa3a33a kube-r006-111a11aa-aaa1-1a1a-aa11-1a1a111aa11 4 0 my-vpc default
-
보안 그룹의 세부사항을 가져옵니다. 보안 그룹에 첨부된 인바운드 및 아웃바운드 규칙을 보려면 출력에서 규칙 섹션을 찾으십시오.
ibmcloud is sg GROUP
출력 예
... Rules ID Direction IP version Protocol Remote r006-111bb1bb-1b1b-1b11-1111-b111bbb1b11b outbound ipv4 all 0.0.0.0/0 r006-222bb2bb-2b2b-2b22-2222-b222bbb2b22b inbound ipv4 all behind-unbuilt-guidable-anthill r006-333bb3bb-3b3b-3b33-3333-b333bbb3b33b inbound ipv4 icmp Type=8 0.0.0.0/0 r006-444bb4bb-4b4b-4b44-4444-b444bbb4b44b inbound ipv4 tcp Ports:Min=22,Max=22 0.0.0.0/0
콘솔에서 보안 그룹 보기
-
VPC 대시보드의 보안 그룹에서 클러스터가 있는 VPC에 연결된 보안 그룹을 찾으십시오.
-
보안 그룹을 클릭합니다.
보안 그룹이 첨부된 VPC별로 보안 그룹을 정렬하려면 테이블에서 가상 프라이빗 클라우드 열 표제를 클릭하십시오.
-
보안 그룹에 첨부된 인바운드 및 아웃바운드 규칙을 보려면 규칙 탭을 클릭하십시오.
콘솔에서의 보안 그룹 규칙 작성
- 가상 사설 클라우드 대시보드 에서 클러스터가 속한 VPC의 기본 보안 그룹 이름을 클릭합니다.
- 규칙 탭을 클릭하십시오.
- 작업자 노드에 대한 인바운드 트래픽을 제어하기 위한 새 인바운드 규칙을 작성하려면 인바운드 규칙 섹션에서 작성을 클릭하십시오.
- 작업자 노드에 대한 아웃바운드 트래픽을 제어하기 위한 새 규칙을 작성하려면 아웃바운드 규칙 섹션에서 모든 아웃바운드 트래픽을 허용하는 기본 규칙을 삭제하십시오. 그런 다음, 아웃바운드 규칙 섹션에서 작성을 클릭하십시오.
규칙을 만드는 것 외에도 필요한 인바운드 규칙과 아웃바운드 규칙을 만들어야 한다는 점을 명심하십시오.
명령행에서 보안 그룹 규칙 작성
IBM Cloud CLI를 사용하여 클러스터의 기본 보안 그룹에 인바운드 및 아웃바운드 규칙을 추가하십시오.
infrastructure-service
플러그인을 설치하십시오. 명령을 실행하기 위한 접두부는ibmcloud is
입니다.ibmcloud plugin install infrastructure-service
- VPC가 있는 지역을 대상으로 지정하십시오.
ibmcloud target -r REGION
- 클러스터의 ID를 가져오십시오.
ibmcloud ks cluster get -c CLUSTER
- 보안 그룹을 나열하고 VPC의 기본 보안 그룹의 ID를 기록해 두십시오. 기본 보안 그룹은 무작위로 생성된 이름을 사용하며
kube-<cluster_ID>
형식의 이름을 사용하지 않습니다.
무작위로 생성된 이름(ibmcloud is sgs
chamomile-dislodge-showier-unfilled
)의 VPC에 대한 기본 보안 그룹이 있는 출력 예입니다.ID Name Rules Network interfaces VPC Resource group 1a111a1a-a111-11a1-a111-111111111111 chamomile-dislodge-showier-unfilled 5 2 events-vpc default 2b222b2b-b222-22b2-b222-222222222222 kube-df253b6025d64744ab99ed63bb4567b6 5 3 gen2-vpn default
- 보안 그룹 ID를 환경 변수로 저장하십시오.
sg=GROUP
- 보안 그룹의 기본 규칙을 검토하십시오. 규칙을 만드는 것 외에도 필요한 인바운드 규칙과 아웃바운드 규칙을 만들어야 한다는 점을 명심하십시오.
ibmcloud is sg $sg
-
인바운드 트래픽 규칙을 작성하려면
ibmcloud is sg-rulec <sg> inbound
명령을 사용하십시오.ibmcloud is sg-rulec $sg inbound <protocol> [--remote <remote_address> | <CIDR_block> | <security_group_ID>] [--icmp-type <icmp_type> [--icmp-code <icmp_code>]] [--port-min <port_min>] [--port-max <port_max>]
-
아웃바운드 트래픽 규칙을 작성하려면
ibmcloud is sg-rulec <sg> outbound
명령을 사용하십시오.ibmcloud is sg-rulec $sg outbound <protocol> [--remote <remote_address> | <CIDR_block> | <security_group_ID>] [--icmp-type <icmp_type> [--icmp-code <icmp_code>]] [--port-min <port_min>] [--port-max <port_max>]
-
사용자 정의 아웃바운드 규칙을 작성한 후 모든 아웃바운드 트래픽을 허용하는 기본 규칙의 ID를 가져오십시오.
ibmcloud is sg $sg
출력 예
Rules ID Direction IP version Protocol Remote r010-e3a34cbb-d5e8-4713-a57e-3e35a7458272 inbound ipv4 all freeload-flavored-surging-repaying r010-036c3a13-1c16-4425-9667-a4ec34b1702b inbound ipv4 icmp Type=8 0.0.0.0/0 r010-15591636-6976-493f-a94f-70721702860a inbound ipv4 tcp Ports:Min=22,Max=22 0.0.0.0/0
-
모든 아웃바운드 트래픽을 허용하는 기본 규칙을 삭제하십시오.
ibmcloud is security-group-rule-delete $sg <rule_ID>
-
-
사용자 고유의 보안 그룹을 작성할 수 있을 뿐만 아니라 사용자가 작성하는 규칙에 추가된 규칙을 추가하거나 제거할 수 있다는 점을 유념하십시오. 필수 인바운드 및 아웃바운드 규칙 도 작성해야 합니다.
작업자 노드가 Ingress에 연결할 수 있도록 허용 LoadBalancer
작업자 노드가 Ingress LoadBalancer에 연결할 수 있도록 허용하는 단계를 따르십시오.
이 시나리오는 1.29 이전 버전에만 적용됩니다.
-
LoadBalancer 서비스의
EXTERNAL-IP
를 가져오십시오.kubectl get svc -o wide -n openshift-ingress router-default
-
EXTERNAL-IP
에 대해dig
를 실행하여 LoadBalancer와 연관된 IP 주소를 가져오십시오.dig <EXTERNAL-IP> +short
출력 예
150.XXX.XXX.XXX 169.XX.XXX.XXX
-
이전에 검색한 각 IP 주소와 포트 443에 대한 아웃바운드 보안 규칙을 작성하십시오.
ibmcloud is sg-rulec <sg> outbound tcp --port-min 443 --port-max 443 --remote 150.XXX.XXX.XXX
Ingress 또는 콘솔 운영자가 상태 확인에 실패하면, 이 단계를 반복하여 LoadBalancer 의 IP 주소가 변경되었는지 확인할 수 있습니다. 드물지만, LoadBalancers 에 대한 트래픽 양이 크게 달라지는 경우, 증가 또는 감소된 부하를 처리하기 위해 이러한 IP 주소가 변경될 수 있습니다.