이 페이지에서는 보안 웹 프록시 인스턴스에 전송 계층 보안(TLS) 검사를 사용 설정하는 방법을 설명합니다. Secure Web Proxy는 TLS 트래픽을 가로채고, 암호화된 요청을 검사하며, 보안 정책을 시행할 수 있게 해주는 TLS 검사 서비스를 제공합니다. TLS 검사에 관한 자세한 내용은 TLS 검사 개요를 참고하세요.
시작하기 전에
TLS 검사를 위해 Secure Web Proxy 인스턴스를 구성하기 전에 다음 섹션의 태스크를 완료하세요.
Certificate Authority Service 사용 설정
Secure Web Proxy는 Certificate Authority Service를 사용하여 TLS 검사에 사용되는 인증서를 생성합니다.
CA 서비스를 사용 설정하려면 다음 명령어를 사용합니다.
gcloud services enable privateca.googleapis.com
CA 풀 만들기
인증 기관 (CA) 풀은 공통 인증서 발급 정책과 Identity and Access Management (IAM) 정책이 적용되는 여러 CA의 모음입니다. CA 풀은 페이로드의 중단이나 다운타임 없이 신뢰 체인을 순환하는 기능을 제공합니다.
CA 서비스를 사용하여 CA를 만들려면 먼저 CA 풀을 만들어야 합니다. 이 섹션에서는 이 작업을 완료하는 데 필요한 권한을 살펴본 후 CA 풀을 만드는 방법을 설명합니다.
인증서를 생성하기 위해 TLS 검사는 service-[PROJECT_NUMBER]@gcp-sa-networksecurity.iam.gserviceaccount.com이라는 프로젝트마다 별도의 서비스 계정을 사용합니다.
이 서비스 계정에 CA 풀을 사용할 권한을 부여했는지 확인합니다. 이 액세스 권한이 취소되면 TLS 검사가 작동하지 않습니다.
CA 풀 프로젝트의 PROJECT_ID를 사용하여 PROJECT_NUMBER를 검색하려면 다음 명령어를 사용합니다.
gcloud projects describe <var>PROJECT_ID</var>
--format="value(projectNumber)"
풀을 만들려면 gcloud privateca pools create 명령어를 사용하고 하위 풀 ID, 등급, 프로젝트 ID, 위치를 지정합니다.
gcloud privateca pools create SUBORDINATE_POOL_ID \
--tier=TIER \
--project=PROJECT_ID \
--location=REGION
다음을 바꿉니다.
SUBORDINATE_POOL_ID: CA 풀의 이름TIER: CA 등급(devops또는enterprise)개별적으로 발급된 인증서를 추적할 필요가 없으므로
devops등급에서 CA 풀을 만드는 것이 좋습니다.PROJECT_ID: CA 풀 프로젝트의 IDREGION: CA 풀의 위치
하위 CA 풀 만들기
인증서 발급 시나리오가 여러 개 있는 경우 시나리오마다 하위 CA를 만들 수 있습니다. CA 풀에 하위 CA를 만들 수 있으며 루트 CA는 해당 CA 풀의 모든 CA에 서명합니다. 이러한 인증서는 TLS 검사를 위해 생성된 서버 인증서에 서명하는 데 사용됩니다.
하위 CA 풀을 만들려면 다음 방법 중 하나를 사용합니다.
Certificate Authority Service 내에 저장된 기존 루트 CA를 사용하여 하위 CA 풀 만들기
하위 CA를 만들려면 다음을 수행합니다.
외부에 있는 기존 루트 CA를 사용하여 하위 CA 풀 만들기
하위 CA를 만들려면 다음을 수행합니다.
루트 CA 만들기
루트 CA가 없으면 CA 서비스 내에 루트 CA를 만들 수 있습니다.
루트 CA를 만들려면 다음을 수행합니다.
서비스 계정 만들기
서비스 계정은 사용자 계정의 보안이나 Secure Web Proxy 인스턴스 자체를 손상시키지 않고 TLS 검사에 필요한 권한을 제공하는 데 도움이 됩니다.
서비스 계정이 없는 경우 서비스 계정을 만들고 해당 서비스 계정에 필요한 권한을 부여해야 합니다.
서비스 계정을 만듭니다.
gcloud beta services identity create \ --service=networksecurity.googleapis.com \ --project=PROJECT_ID이에 따라 Google Cloud CLI는
service-[PROJECT_NUMBER]@gcp-sa-networksecurity.iam.gserviceaccount.com이라는 서비스 계정을 만듭니다.CA 풀 프로젝트의
PROJECT_ID을 사용하여PROJECT_NUMBER을 검색하려면 다음 명령어를 사용합니다.gcloud projects describe PROJECT_ID --format="value(projectNumber)"생성한 서비스 계정에 CA 풀로 인증서를 생성할 수 있는 권한을 부여합니다.
gcloud privateca pools add-iam-policy-binding CA_POOL \ --member='serviceAccount:SERVICE_ACCOUNT' \ --role='roles/privateca.certificateManager' \ --location='REGION'
Secure Web Proxy의 TLS 검사 구성
시작하기 전에 섹션에 나열된 기본 요건 태스크를 완료한 후에만 이 섹션의 태스크를 진행할 수 있습니다.
TLS 검사를 구성하려면 다음 섹션의 태스크를 완료하세요.
TLS 검사 정책 만들기
콘솔
Google Cloud 콘솔에서 TLS 검사 정책 페이지로 이동합니다.
프로젝트 선택기 메뉴에서 프로젝트를 선택합니다.
TLS 검사 정책 만들기를 클릭합니다.
이름 필드에 정책 이름을 입력합니다.
선택사항: 설명 필드에 정책에 대한 설명을 입력합니다.
리전 목록에서 정책을 만들려는 리전을 선택합니다.
CA 풀 목록에서 인증서를 만들려는 CA 풀을 선택합니다.
CA 풀을 구성하지 않은 경우 새 풀을 클릭하고 CA 풀 만들기 섹션의 안내를 따릅니다.
만들기를 클릭합니다.
gcloud
TLS_INSPECTION_FILE.yaml파일을 생성합니다.TLS_INSPECTION_FILE을 필요한 파일 이름으로 바꿉니다.다음 코드를 YAML 파일에 추가하여 필요한 TlsInspectionPolicy를 구성합니다.
name: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME caPool: projects/PROJECT_ID/locations/REGION/caPools/CA_POOL다음을 바꿉니다.
PROJECT_ID: 프로젝트의 IDREGION: 정책을 만들 리전TLS_INSPECTION_NAME: Secure Web Proxy TLS 검사 정책의 이름CA_POOL: 인증서를 만들 CA 풀의 이름
CA 풀은 같은 리전 내에 있어야 합니다.
TLS 검사 정책 가져오기
이전 단계에서 만든 TLS 검사 정책을 가져옵니다.
gcloud network-security tls-inspection-policies import TLS_INSPECTION_NAME \
--source=TLS_INSPECTION_FILE.yaml \
--location=REGION
보안 정책에 TLS 검사 정책 추가
콘솔
웹 프록시 정책 만들기
Google Cloud 콘솔에서 SWP 정책 페이지로 이동합니다.
정책 만들기를 클릭합니다.
만들려는 정책의 이름을 입력합니다(예:
myswppolicy).정책의 설명을 입력합니다(예:
My new swp policy).리전 목록에서 Secure Web Proxy 정책을 만들 리전을 선택합니다.
TLS 검사를 구성하려면 TLS 검사 구성을 선택합니다.
TLS 검사 정책 목록에서 생성한 TLS 검사 정책을 선택합니다.
정책에 대한 규칙을 만들려면 계속을 클릭한 다음 규칙 추가를 클릭합니다. 자세한 내용은 보안 웹 프록시 규칙 만들기를 참조하세요.
만들기를 클릭합니다.
보안 웹 프록시 규칙 만들기
Google Cloud 콘솔에서 SWP 정책 페이지로 이동합니다.
프로젝트 선택기 메뉴에서 조직 ID 또는 정책이 포함된 폴더를 선택합니다.
정책 이름을 클릭합니다.
규칙 추가를 클릭합니다.
규칙 필드를 채웁니다.
- 이름
- 설명
- 상태
- 우선순위: 규칙의 평가 순서(번호순)입니다. 규칙은 가장 높은 우선순위에서 가장 낮은 우선순위로 평가되며
0는 가장 높은 우선순위입니다. - 작업 섹션에서 규칙과 일치하는 연결을 허용(허용)하거나 거부(거부)할지 지정합니다.
- 세션 일치 섹션에서 세션을 일치시키는 기준을 지정합니다.
SessionMatcher의 구문에 대한 자세한 내용은 CEL 일치자 언어 참조를 참조하세요. - TLS 검사를 사용 설정하려면 TLS 검사 사용 설정을 선택합니다.
- 애플리케이션 일치 섹션에서 요청을 일치시키는 기준을 지정합니다. TLS 검사에 대한 규칙을 사용 설정하지 않으면 해당 요청은 HTTP 트래픽만 일치시킬 수 있습니다.
- 만들기를 클릭합니다.
규칙 추가를 클릭하여 다른 규칙을 추가합니다.
만들기를 클릭하여 정책을 만듭니다.
웹 프록시 설정
Google Cloud 콘솔에서 웹 프록시 페이지로 이동합니다.
보안 웹 프록시 만들기를 클릭합니다.
만들려는 웹 프록시의 이름(예:
myswp)을 입력합니다.웹 프록시에 대한 설명(예:
My new swp)을 입력합니다.리전 목록에서 웹 프록시를 만들 리전을 선택합니다.
네트워크 목록에서 웹 프록시를 만들 네트워크를 선택합니다.
서브네트워크 목록에서 웹 프록시를 만들 서브네트워크를 선택합니다.
선택사항: Secure Web Proxy IP 주소를 입력합니다. 이전 단계에서 만든 서브네트워크에 있는 Secure Web Proxy IP 주소 범위의 IP 주소를 입력할 수 있습니다. IP 주소를 입력하지 않으면 Secure Web Proxy 인스턴스가 선택한 서브네트워크에서 IP 주소를 자동으로 선택합니다.
인증서 목록에서 웹 프록시를 만드는 데 사용할 인증서를 선택합니다.
정책 목록에서 웹 프록시를 연결하기 위해 만든 정책을 선택합니다.
만들기를 클릭합니다.
Cloud Shell
policy.yaml파일 만들기description: basic Secure Web Proxy policy name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1 tlsInspectionPolicy: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAMESecure Web Proxy 정책을 만듭니다.
gcloud network-security gateway-security-policies import policy1 \ --source=policy.yaml --location=REGIONrule.yaml파일 만들기name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/allow-example-com description: Allow example.com enabled: true priority: 1 basicProfile: ALLOW sessionMatcher: host() == 'example.com' applicationMatcher: request.path.contains('index.html') tlsInspectionEnabled: true보안 정책 규칙을 만듭니다.
gcloud network-security gateway-security-policies rules import allow-example-com \ --source=rule.yaml \ --location=REGION \ --gateway-security-policy=policy1TLS 검사 정책을 기존 보안 정책에 연결하려면
POLICY_FILE.yaml 파일을 만듭니다.POLICY_FILE을 파일 이름으로 바꿉니다.description: My Secure Web Proxy policy name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME tlsInspectionPolicy: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME