GCP 프로젝트 연결을 위한 사전 요건
GCP 프로젝트를 멀티 클라우드 방어에 연결하기 전에 수동으로 구성하려면 다음 단계를 모두 완료하십시오.
-
2개의 서비스 계정을 생성합니다.
-
다음 API를 활성화합니다.
-
계산 엔진
-
비밀 관리자
-
-
다음 2개의 VPC를 생성합니다.
-
관리
-
데이터 경로
-
-
데이터 경로 VPC에서 멀티 클라우드 방어 게이트웨이(앱 트래픽)에 대한 트래픽을 허용하는 방화벽 규칙을 생성합니다.
-
관리 VPC에서 관리 트래픽이 멀티 클라우드 방어 게이트웨이에서 멀티 클라우드 방어 컨트롤러(으)로 이동할 수 있도록 방화벽 규칙을 생성합니다.
이러한 작업은 GCP 클라우드 콘솔 웹 UI 또는 gcloud CLI를 사용하여 실행할 수 있습니다. 컴퓨터가 GCP CLI 액세스용으로 구성되지 않은 경우 GCP 클라우드 콘솔에서 명령줄 쉘을 사용할 수 있습니다.
쉘 스크립트
기본 서비스 계정 옵션을 사용하는 위의 모든 단계를 수행하는 셸 스크립트는 여기의 온보딩 지침과 함께 사용할 수 있습니다.
이 단계를 수동으로 수행하려면 또는 위에서 언급한 스크립트로 작성된 설정을 실행할 수 없는 경우 다음 항목의 단계를 수행하십시오.
-
멀티 클라우드 방어 컨트롤러 서비스 계정을 생성합니다.
-
멀티 클라우드 방어 방화벽 서비스 계정을 생성합니다.
-
API 활성화
-
데이터 경로 VPC에서 멀티 클라우드 방어 게이트웨이(앱 트래픽)에 대한 트래픽을 허용하는 방화벽 규칙을 생성합니다.
-
관리 VPC에서 관리 트래픽이 멀티 클라우드 방어 게이트웨이에서 멀티 클라우드 방어 컨트롤러(으)로 이동할 수 있도록 방화벽 규칙을 생성합니다.
GCP 폴더 제한 사항
23.10부터는 GCP 폴더를 Terraform에 연결할 수 있습니다. 수동 프로세스에서 멀티 클라우드 방어은(는) 환경을 개선할 수 있는 여러 작업을 자동화하지 않습니다. 다음과 같은 제한 사항을 고려하십시오.
-
roles/compute.admin
권한이 활성화되지 않은 폴더는 비어 있는 것으로 간주되어 사용되지 않습니다. -
온보딩된 폴더와 연결된 프로젝트는 자산 및 트래픽 검색에만 사용됩니다.
-
온보딩된 폴더와 연결된 프로젝트에서는 오케스트레이션 서비스 VPC 또는 게이트웨이 생성을 수용하지 않습니다.
서비스 어카운트
멀티 클라우드 방어에는 GCP 프로젝트에서 2개의 서비스 계정을 생성해야 합니다.
-
멀티 클라우드 방어-controller: 이 계정은 멀티 클라우드 방어 컨트롤러이(가) GCP 프로젝트에 액세스하여 멀티 클라우드 방어 게이트웨이에 대한 리소스(멀티 클라우드 방어 게이트웨이), 로드 밸런서를 생성하고 VPC, 서브넷, 보안 그룹 태그 등에 대한 정보를 읽는 데 사용됩니다.
-
멀티 클라우드 방어-gateway: 이 계정은 멀티 클라우드 방어 게이트웨이(컴퓨팅 VM 인스턴스)에 할당됩니다. 계정은 암호 관리자(TLS 암호 해독용 개인 키) 및 스토리지에 대한 액세스를 제공합니다.
이러한 서비스 계정은 UI에서 제공되는 서비스를 사용하거나 클라우드 서비스 제공자의 CLI를 사용하는 두 가지 방법 중 하나로 생성할 수 있습니다.
GCP 클라우드 콘솔을 사용하여 멀티 클라우드 방어 컨트롤러 서비스 계정 생성
멀티 클라우드 방어 컨트롤러 서비스 계정은 멀티 클라우드 방어 컨트롤러에서 GCP 프로젝트의 리소스에 액세스하고 관리하는 데 사용됩니다. 계정을 생성하고 키를 생성해야 합니다. 키는 컨트롤러에 계정을 온보딩할 때 컨트롤러에 추가됩니다.
Procedure
Step 1 |
GCP 프로젝트에서 IAM을 엽니다. |
||
Step 2 |
Service Accounts(서비스 계정)를 클릭합니다. |
||
Step 3 |
Service Account(서비스 계정)를 생성합니다. |
||
Step 4 |
이름 및 ID(예: 멀티 클라우드 방어-fcontroller)를 제공하고 Create(생성)를 클릭합니다. |
||
Step 5 |
컴퓨팅 관리자 및 서비스 계정 사용자 역할을 추가합니다. |
||
Step 6 |
Continue(계속)를 클릭합니다. |
||
Step 7 |
Done(완료)을 클릭합니다.
|
||
Step 8 |
새로 생성된 계정을 클릭하고 Keys(키)가 나올 때까지 아래로 스크롤한 다음 Add Key(키 추가) 드롭다운에서 Create New Key(새 키 생성)를 선택합니다. |
||
Step 9 |
JSON(기본 옵션)을 선택하고 Create(생성)를 클릭합니다. |
||
Step 10 |
파일이 컴퓨터에 다운로드됩니다. 이 파일을 저장합니다. |
CLI를 사용하여 멀티 클라우드 방어 컨트롤러 서비스 계정 생성
멀티 클라우드 방어 컨트롤러 서비스 계정을 생성하는 명령:
# change these two (2) variable values
ciscomcd_controller_account_name="ciscomcd-controller"
project_name="project1-lastname-123456"
ciscomcd_controller_account_email="$ciscomcd_controller_account_name@$project_name.iam.gserviceaccount.com"
gcloud iam service-accounts create $ciscomcd_controller_account_name \
--description="service account used by Multicloud to create resources in the project" \
--display-name="ciscomcd-controller-account"
gcloud projects add-iam-policy-binding $project_name \
--member serviceAccount:$ciscomcd_controller_account_email \
--role "roles/compute.admin"
gcloud projects add-iam-policy-binding $project_name \
--member serviceAccount:$ciscomcd_controller_account_email \
--role "roles/iam.serviceAccountUser"
gcloud iam service-accounts keys create ~/key.json \
--iam-account $ciscomcd_controller_account_emailmail
GCP 프로젝트 권한
콘솔에서 제공되는 스크립트를 사용하면 이러한 권한이 프로젝트에 자동으로 적용됩니다. CLI를 사용하여 GCP 프로젝트에 연결하고 온보딩할 때는 프로젝트 레벨에서 다음 권한이 활성화되어 있는지 확인합니다.
-
# 로깅 관리자 - roles/loggingg.admin
-
# Pub/Sub 관리자 - roles/pubsub.admin
-
# 보안 관리자 - roles/iam.securityAdmin
-
# 서비스 계정 관리자 - roles/iam.serviceAccountAdmin
-
# 서비스 계정 키 관리자 - roles/iam.serviceAccountKeyAdmin
-
# 서비스 사용 관리자 - roles/serviceusage.serviceUsageAdmin
-
# 스토리지 관리자 - roles/storage.admin
-
# 컴퓨팅 관리자 - roles/compute.admin
-
# DNS 관리자 - roles/dns.admin
GCP 폴더 권한
terraform을 사용하여 GCP 폴더를 멀티 클라우드 방어 컨트롤러에 온보딩하는 경우 서비스 계정을 만들고 온보딩할 폴더 아래에 중첩된 프로젝트 중 하나에 연결해야 합니다. 서비스 계정이 생성되면 프로젝트가 포함된 폴더에 다음 권한을 적용해야 합니다.
-
# roles/viewer
-
# roles/resourcemanager.folderViewer
이러한 권한은 반드시 폴더 레벨에서 활성화되어야 하며, 폴더 내에 있는 프로젝트에 대해서는 활성화되지 않습니다. terraform에서 GCP 폴더를 온보딩하는 방법에 대한 자세한 내용은 Terraform 저장소의 내용을 참조하십시오.
GCP 클라우드 콘솔을 사용하여 멀티 클라우드 방어 방화벽 서비스 계정 생성
멀티 클라우드 방어방화벽 서비스 계정은 멀티 클라우드 방어 게이트웨이GCP 프로젝트 내부에서 실행 중인 인스턴스에서 사용합니다. 게이트웨이는 (사용자가 구성한 경우) PCAP 파일 등을 저장하기 위해 TLS 암호 해독 및 액세스 스토리지를 위해 SecretManager에 저장된 개인 키에 액세스해야 할 수 있습니다. 또한 여러 게이트웨이에는 (사용자가 구성한 경우) 멀티 클라우드 방어 게이트웨이에서 GCP 기록 인스턴스로 로그를 전송하려면 로그 작성자 권한이 필요합니다.
다음은 이 서비스 계정을 생성하는 두(2) 가지 방법입니다.
Procedure
Step 1 |
GCP 프로젝트에서 IAM을 엽니다. |
||
Step 2 |
Service Accounts(서비스 계정)를 클릭합니다. |
||
Step 3 |
Service Account(서비스 계정)를 생성합니다. |
||
Step 4 |
이름 및 ID(예: 멀티 클라우드 방어-firewall)를 제공하고 Create(생성)를 클릭합니다. |
||
Step 5 |
Secret Manager(비밀 관리자), Secret Accessor(비밀 접속자) 및 Logs Writer roles(로그 작성자 역할)를 추가합니다. |
||
Step 6 |
Continue(계속)를 클릭합니다. |
||
Step 7 |
Done(완료)을 클릭합니다.
|
CLI를 사용하여 멀티 클라우드 방어 컨트롤러 방화벽 서비스 계정 생성
멀티 클라우드 방어 컨트롤러 방화벽 서비스 계정을 생성하는 명령:
# change these two (2) variable values
ciscomcd_firewall_account_name="ciscomcd-firewall"
project_name="project1-lastname-123456"
ciscomcd_firewall_account_email="$ciscomcd_firewall_account_name@$project_name.iam.gserviceaccount.com"
gcloud iam service-accounts create $valtix_firewall_account_name \
--description="service account used by Multicloud firewall to access secrets, storage" \
--display-name="ciscomcd-firewall-account"
gcloud projects add-iam-policy-binding $project_name \
--member serviceAccount:$ciscomcd_firewall_account_email \
--role "roles/secretmanager.secretAccessor"
gcloud projects add-iam-policy-binding $project_name \
--member serviceAccount:$ciscomcd_firewall_account_email \
--role "roles/logging.logWriter"
API 활성화
GCP 콘솔 또는 클라우드 서비스 공급자의 CLI를 사용하여 멀티 클라우드 방어 컨트롤러과(와) GCP 계정 간의 통신에 API를 활성화할 수 있습니다.
API 활성화-GCP 클라우드 콘솔 사용
멀티 클라우드 방어 컨트롤러이(가) 멀티 클라우드 방어 게이트웨이(가상 머신, 로드 밸런서)를 생성할 수 있도록 프로젝트/계정에서 API를 활성화합니다.
Procedure
Step 1 |
검색 창에서 Compute Engine API를 검색합니다. |
Step 2 |
Enable(활성화)을 클릭합니다. |
Step 3 |
검색 창에서 Secret Manager API를 검색합니다. |
Step 4 |
Enable(활성화)을 클릭합니다. |
Step 5 |
검색 창에서 Identity and Access Management(IAM) API를 검색합니다. |
Step 6 |
Enable(활성화)을 클릭합니다. |
Step 7 |
검색 창에서 Cloud Resource Manager API를 검색합니다. |
Step 8 |
Enable(활성화)을 클릭합니다. |
API 활성화-CLI 사용
json
gcloud services enable secretmanager.googleapis.com
gcloud services enable compute.googleapis.com
gcloud services enable iam.googleapis.com
gcloud services enable cloudresourcemanager.googleapis.com
VPC 설정
멀티 클라우드 방어 게이트웨이 인스턴스는 엣지 또는 허브 모드를 사용하여 구축할 수 있습니다. 엣지 모드에서 게이트웨이 인스턴스는 애플리케이션과 동일한 VPC에서 실행됩니다. 이 문서는 엣지 모드 구축을 중점적으로 설명하며, 멀티 클라우드 방어 게이트웨이 구축을 위해 VPC를 준비하는 방법을 안내합니다.
두 VPC에서 모두 멀티 클라우드 방어 게이트웨이이(가) 필요한 지역에서 각각 하나의 서브넷을 생성합니다.
VPC 및 서브넷
멀티 클라우드 방어 게이트웨이 구축 시 멀티 클라우드 방어 컨트롤러에서 관리 및 데이터 경로 VPC 정보를 입력하라는 메시지가 표시됩니다. 멀티 클라우드 방어 게이트웨이 인스턴스에는 2개의 네트워크 인터페이스가 필요합니다. GCP에서 VM 인스턴스의 네트워크 인터페이스는 다른 서브넷에만 있을 수 있는 다른 클라우드 제공자와 달리 다른 VPC에 있어야 합니다. 애플리케이션이 실행 중인 VPC가 이미 있는 경우에는 데이터 경로 VPC 및 서브넷이 있습니다. 관리를 위해 다른 VPC를 생성하거나 다른 기존 VPC를 사용해야 합니다. 자동 생성된 서브넷을 사용하거나 수동으로 생성할 수 있습니다.
datapath vpc는 애플리케이션이 실행 중인 VPC이며 다음 섹션에서 지칭합니다.
각 VPC에서 멀티 클라우드 방어에는 서브넷이 필요합니다. 멀티 클라우드 방어 게이트웨이를 구축하려는 모든 지역에서 서브넷을 생성합니다.
관리 서브넷은 인터넷에 대한 기본 경로가 있는 라우트 테이블과 연결해야 하는 퍼블릭 서브넷입니다. 멀티 클라우드 방어 게이트웨이 인스턴스에 멀티 클라우드 방어 컨트롤러과(와)의 통신에 사용하는 이 서브넷에 연결된 인터페이스가 있습니다. 이 인터페이스는 멀티 클라우드 방어 컨트롤러 및 멀티 클라우드 방어 게이트웨이 인스턴스 간의 정책 푸시와 기타 관리, 텔레메트리 활동에 사용됩니다. 고객 애플리케이션 트래픽은 이 인터페이스 및 서브넷을 통과하지 않습니다. 인터페이스는 아래의 네트워크 태그 섹션에서 설명하는멀티 클라우드 방어-management 네트워크 태그(또는 팀 요구 사항에 기반한 모든 태그)와 연결되어 있습니다.
데이터 경로 서브넷은 인터넷에 대한 기본 경로가 있는 라우트 테이블과 연결해야 하는 퍼블릭 서브넷입니다. 멀티 클라우드 방어 컨트롤러은(는) 이 서브넷에 네트워크 로드 밸런서(NLB)를 생성합니다. 또한, 멀티 클라우드 방어 게이트웨이 인스턴스에 이 서브넷에 연결된 인터페이스가 있습니다. 고객 애플리케이션 트래픽은 이 인터페이스를 통해 흐릅니다. 이 인터페이스를 통해 인그레스하는 트래픽에 보안 정책이 적용됩니다. 인터페이스는 아래의 네트워크 태그 섹션에서 설명하는멀티 클라우드 방어-datapath 네트워크 태그(또는 팀 요구 사항에 기반한 모든 태그)와 연결되어 있습니다.
CLI를 사용하여 샘플 VPC 및 서브넷
프로시저
단계 1 |
VPC 앱 및 서브넷 apps-us-east1을 생성합니다. |
단계 2 |
VPC 멀티 클라우드 방어-mgmt 및 서브넷 멀티 클라우드 방어-mgmt-us-east1을 생성합니다. |
단계 3 |
대상 태그가 멀티 클라우드 방어-mgmt인 VPC 멀티 클라우드 방어-mgmt용 방화벽 규칙.
|
단계 4 |
VPC 앱에 대한 방화벽 규칙.
위 명령을 실행한 후에는 앱 VPC에서 VM 인스턴스를 만들고 포트 8000에서 테스트 웹 애플리케이션을 시작할 수 있습니다.
|