TLS 검사 설정

이 페이지에서는 Cloud Next Generation Firewall의 전송 계층 보안(TLS) 검사를 설정하는 방법을 설명합니다.

시작하기 전에

TLS 검사를 구성하기 전에 다음 섹션의 태스크를 완료하세요.

Certificate Authority Service 사용 설정

Cloud NGFW는 Certificate Authority Service를 사용하여 중간 인증 기관(CA)을 생성합니다. Cloud NGFW는 이러한 중간 CA를 사용하여 TLS 검사에 사용되는 인증서를 생성합니다.

Google Cloud 콘솔을 사용하여 CA Service API를 사용 설정할 수 있습니다.

Enable the API

Google Cloud CLI를 사용하여 CA 서비스를 사용 설정하려면 다음 명령어를 사용합니다.

   gcloud services enable privateca.googleapis.com
  

인증서 관리자 사용 설정

Cloud NGFW는 인증서 관리자를 사용하여 트러스트 구성을 만듭니다. 트러스트 구성을 사용하지 않으려면 이 단계를 건너뜁니다.

Google Cloud 콘솔을 사용하여 Certificate Manager API를 사용 설정할 수 있습니다.

Enable the API

Google Cloud CLI를 사용하여 인증서 관리자를 사용 설정하려면 다음 명령어를 사용합니다.

   gcloud services enable certificatemanager.googleapis.com
  

트러스트 구성 만들기

이 단계는 선택사항입니다. 트러스트 구성을 만들려면 이 섹션의 단계를 수행합니다.

  1. CA 풀을 만듭니다.

    이 단계에서 만드는 CA 풀은 TLS 검사 정책을 구성하기 위해 만드는 CA 풀과 다릅니다.

  2. 앞에서 만든 CA 풀을 사용하여 루트 CA를 만듭니다.

  3. 자동 생성된 키를 사용하여 인증서를 만듭니다. 앞에서 만든 이름과 동일한 CA 풀 이름을 사용합니다.

  4. 생성된 인증서에서 CA의 공개 인증서를 가져옵니다.

    $PEM-CERT=$(gcloud privateca roots describe ROOT_CA_NAME \
       --location LOCATION \
       --project PROJECT_ID \
       --pool CA_POOL \
       --format "value(pemCaCertificates)")
    

    다음을 바꿉니다.

    • ROOT_CA_NAME: 루트 CA 이름
    • LOCATION: 루트 CA 위치
    • PROJECT_ID: 루트 CA의 프로젝트 ID
    • CA_POOL: 인증서를 만들 CA 풀의 이름
  5. 이전 단계에서 가져온 PEM-CERT를 사용하여 트러스트 구성 만들고 가져옵니다. 자체 CA를 사용하는 경우 CA에서 가져온 공개 인증서를 사용합니다.

이 트러스트 구성을 사용하여 TLS 검사 정책을 만듭니다.

CA 풀 만들기

CA 서비스를 사용하여 CA를 만들려면 먼저 CA 풀을 만들어야 합니다. CA 풀을 만들려면 CA 풀 만들기의 안내를 따릅니다.

이 CA 풀을 사용하여 TLS 검사 정책을 만듭니다.

루트 CA 만들기

기존 루트 CA가 없으면 CA 서비스 내에 루트 CA를 만들 수 있습니다. 루트 CA를 만들려면 루트 CA 만들기의 안내를 따르고 앞에서 만든 동일한 CA 풀을 사용합니다. CA 풀 만들기 섹션을 참조하세요.

서비스 계정 만들기

서비스 계정이 없는 경우 서비스 계정을 만들고 필요한 권한을 부여해야 합니다.

  1. 서비스 계정을 만듭니다.

     gcloud beta services identity create \
         --service networksecurity.googleapis.com \
         --project PROJECT_ID
    

    PROJECT_ID를 서비스 계정의 프로젝트 ID로 바꿉니다.

    Google Cloud CLI에서 service-PROJECT_NUMBER@gcp-sa-networksecurity.iam.gserviceaccount.com이라는 서비스 계정을 만듭니다. 여기에서 PROJECT_NUMBER는 이전 명령어에서 제공한 PROJECT_ID의 고유 식별자입니다.

  2. CA 풀을 사용하는 인증서를 생성하도록 서비스 계정에 권한을 부여합니다.

     gcloud privateca pools add-iam-policy-binding CA_POOL \
         --member 'serviceAccount:SERVICE_ACCOUNT' \
         --role 'roles/privateca.certificateRequester' \
         --location REGION
    

    다음을 바꿉니다.

    • CA_POOL: 인증서를 만들 CA 풀의 이름
    • SERVICE_ACCOUNT: 이전 단계에서 만든 서비스 계정의 이름
    • LOCATION: CA 풀 리전

TLS 검사 구성

이 섹션의 태스크를 진행하기 전에 인증서를 구성했거나 시작하기 전에 섹션에 나열된 기본 요건 태스크를 완료했는지 확인합니다.

TLS 검사를 구성하려면 다음 섹션의 태스크를 완료하세요.

TLS 검사 정책 만들기

콘솔

  1. Google Cloud 콘솔에서 TLS 검사 정책 페이지로 이동합니다.

    TLS 검사 정책으로 이동

  2. 프로젝트 선택기 메뉴에서 프로젝트를 선택합니다.

  3. TLS 검사 정책 만들기를 클릭합니다.

  4. 이름에 이름을 입력합니다.

  5. 선택사항: 설명 필드에 설명을 입력합니다.

  6. 리전 목록에서 TLS 검사 정책을 만들려는 리전을 선택합니다.

  7. CA 풀 목록에서 인증서를 만들려는 CA 풀을 선택합니다.

    CA 풀을 구성하지 않았으면 새 풀을 클릭하고 CA 풀 만들기의 안내를 따릅니다.

  8. 선택사항: 최소 TLS 버전 목록에서 정책으로 지원되는 최소 TLS 버전을 선택합니다.

  9. 트러스트 구성에 대해 다음 옵션 중 하나를 선택합니다.

    • 공개 CA 전용: 공개적으로 서명된 인증서가 있는 서버를 신뢰하려면 이 옵션을 선택합니다.
    • 비공개 CA 전용: 비공개로 서명된 인증서가 있는 서버를 신뢰하려면 이 옵션을 선택합니다.

      비공개 트러스트 구성 목록에서 업스트림 서버 인증서를 신뢰하는 데 사용할 트러스트 저장소가 구성된 트러스트 구성을 선택합니다. 트러스트 구성을 만드는 방법에 대한 자세한 내용은 트러스트 구성 만들기를 참조하세요.

    • 공개 및 비공개 CA: 공개 및 비공개 CA를 모두 사용하려면 이 옵션을 선택합니다.

  10. 선택사항: 암호화 스위트 프로필 목록에서 TLS 프로필 유형을 선택합니다. 다음 값 중 하나를 선택할 수 있습니다.

    • 호환 가능: 오래된 TLS 기능만 지원하는 클라이언트 등 가장 폭넓은 클라이언트 세트를 지원해 TLS 협상이 가능합니다.
    • 최신: 다양한 TLS 기능을 지원하므로 최신 클라이언트에서 TLS를 협상할 수 있습니다.
    • 제한됨: 더욱 엄격한 규정 준수 요구사항이 충족되도록 축소된 TLS 기능 세트를 지원합니다.
    • 커스텀: TLS 기능을 개별적으로 선택할 수 있습니다.

      암호화 스위트 목록에서 커스텀 프로필로 지원되는 암호화 스위트 이름을 선택합니다.

  11. 만들기를 클릭합니다.

gcloud

  1. YAML 파일 TLS_INSPECTION_FILE.yaml을 만듭니다. TLS_INSPECTION_FILE를 원하는 파일 이름으로 바꿉니다.

  2. YAML 파일에 다음 코드를 추가하여 TLS 검사 정책을 구성합니다.

    name: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME
    caPool: projects/PROJECT_ID/locations/REGION/caPools/CA_POOL
    minTlsVersion: TLS_VERSION
    tlsFeatureProfile: PROFILE_TYPECIPHER_NAME
    excludePublicCaSet: `TRUE`|`FALSE`
    trustConfig: projects/PROJECT_ID/locations/REGION/trustConfigs/TRUST_CONFIG_NAME
    

    다음을 바꿉니다.

    • PROJECT_ID: TLS 검사 정책의 프로젝트 ID
    • REGION: TLS 검사 정책이 생성되는 리전
    • TLS_INSPECTION_NAME: TLS 검사 정책 이름
    • CA_POOL: 인증서를 만들 CA 풀의 이름

      CA 풀은 같은 리전 내에 있어야 합니다.

    • TLS_VERSION: Cloud NGFW에서 지원하는 최소 TLS 버전을 지정하는 선택적 인수입니다.

      다음 값 중 하나에서 선택할 수 있습니다.

      • TLS_1_0
      • TLS_1_1
      • TLS_1_2
    • PROFILE_TYPE: TLS 프로필 유형을 지정하는 선택적 인수입니다.

      다음 값 중 하나에서 선택할 수 있습니다.

      • PROFILE_COMPATIBLE: 오래된 TLS 기능만 지원하는 클라이언트 등 가장 폭넓은 클라이언트 세트를 지원해 TLS 협상이 가능합니다.
      • PROFILE_MODERN: 다양한 TLS 기능을 지원하므로 최신 클라이언트에서 TLS를 협상할 수 있습니다.
      • PROFILE_RESTRICTED: 더욱 엄격한 규정 준수 요구사항이 충족되도록 축소된 TLS 기능 세트를 지원합니다.
      • PROFILE_CUSTOM: TLS 기능을 개별적으로 선택할 수 있습니다.
    • CIPHER_NAME: 커스텀 프로필에서 지원하는 암호화 스위트의 이름을 지정하는 선택적 인수입니다.

      프로필 유형이 PROFILE_CUSTOM으로 설정된 경우에만 이 인수를 지정합니다.

    • excludePublicCaSet: 공개 CA 집합을 포함하거나 제외하는 선택적 플래그입니다. 기본적으로 이 플래그는 false로 설정됩니다. 이 플래그를 true로 설정하면 TLS 연결에서 공개 CA 서버를 신뢰하지 않습니다. 이 경우 Cloud NGFW는 트러스트 구성에서 CA가 서명한 인증서를 사용하여 서버에 대한 TLS 연결만 수행할 수 있습니다.

    • TRUST_CONFIG_NAME: 트러스트 구성 리소스 이름을 지정하는 선택적 인수입니다.

  3. TLS 검사 정책 만들기 섹션에서 만든 TLS 검사 정책을 가져옵니다.

    gcloud network-security tls-inspection-policies import TLS_INSPECTION_NAME \
        --source TLS_INSPECTION_FILE.yaml \
        --location REGION
    

    다음을 바꿉니다.

    • TLS_INSPECTION_NAME: TLS 검사 정책 이름
    • TLS_INSPECTION_FILE: TLS 검사 정책 YAML 파일의 이름

TLS 검사 정책 세부정보 보기

프로젝트에서 만든 TLS 검사 정책에 대한 정보를 볼 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 TLS 검사 정책 페이지로 이동합니다.

    TLS 검사 정책으로 이동

  2. 프로젝트 선택기 메뉴에서 프로젝트를 선택합니다.

  3. TLS 검사 정책이 TLS 검사 섹션에 나열됩니다.

  4. 세부정보를 보려면 TLS 검사 정책의 이름을 클릭합니다.

방화벽 엔드포인트 연결에 TLS 검사 정책 추가

TLS 검사 정책을 방화벽 엔드포인트 연결에 추가하려면 방화벽 엔드포인트 연결 만들기에 설명된 단계를 따릅니다.

TLS 검사로 방화벽 정책 규칙 구성

Virtual Private Cloud(VPC) 네트워크에 TLS 검사를 사용 설정하려면 방화벽 정책 규칙에서 --tls-inspect 플래그를 설정합니다. 이 플래그는 보안 프로필 그룹이 적용될 때 TLS 검사가 수행될 수 있음을 나타냅니다.

계층식 방화벽 정책 규칙에서 --tls-inspect 플래그를 사용 설정하는 방법에 대한 자세한 내용은 방화벽 규칙 만들기를 참조하세요.

전역 네트워크 방화벽 정책 규칙에서 --tls-inspect 플래그를 사용 설정하는 방법에 대한 자세한 내용은 전역 네트워크 방화벽 규칙 만들기를 참조하세요.

TLS 검사 정책 관리

프로젝트의 TLS 검사 정책을 나열, 업데이트, 삭제할 수 있습니다.

모든 TLS 검사 정책 나열

프로젝트에 있는 모든 TLS 검사 정책을 나열할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 TLS 검사 정책 페이지로 이동합니다.

    TLS 검사 정책으로 이동

  2. 프로젝트 선택기 메뉴에서 프로젝트를 선택합니다.

  3. TLS 검사 정책이 TLS 검사 섹션에 나열됩니다.

gcloud

모든 TLS 검사 정책을 나열하려면 gcloud network-security tls-inspection-policies list 명령어를 사용합니다.

gcloud network-security tls-inspection-policies list \
    --project PROJECT_ID \
    --location REGION

다음을 바꿉니다.

  • PROJECT_ID: TLS 검사 정책의 프로젝트 ID
  • REGION: TLS 검사 정책을 나열할 리전의 이름

TLS 검사 정책 수정

프로젝트에 있는 기존 TLS 검사 정책을 수정할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 TLS 검사 정책 페이지로 이동합니다.

    TLS 검사 정책으로 이동

  2. 프로젝트 선택기 메뉴에서 프로젝트를 선택합니다.

  3. TLS 검사 정책이 TLS 검사 섹션에 나열됩니다.

  4. 정책을 수정하려면 TLS 검사 정책의 이름을 클릭합니다.

  5. 수정을 클릭합니다.

  6. 필수 필드를 수정합니다. 각 필드에 대한 자세한 내용은 TLS 검사 정책 만들기를 참조하세요.

  7. 저장을 클릭합니다.

TLS 검사 정책 삭제

프로젝트에서 TLS 검사 정책을 삭제할 수 있습니다. 그러나 TLS 검사 정책이 방화벽 엔드포인트 연결에서 참조되는 경우에는 해당 TLS 검사 정책을 삭제할 수 없습니다.

콘솔

  1. Google Cloud 콘솔에서 TLS 검사 정책 페이지로 이동합니다.

    TLS 검사 정책으로 이동

  2. 프로젝트 선택기 메뉴에서 프로젝트를 선택합니다.

  3. TLS 검사 정책이 TLS 검사 섹션에 나열됩니다.

  4. TLS 검사 정책을 삭제하려면 이름 옆에 있는 체크박스를 선택합니다.

  5. 삭제를 클릭합니다.

  6. 삭제를 다시 클릭합니다.

gcloud

TLS 검사 정책을 삭제하려면 gcloud network-security tls-inspection-policies delete 명령어를 사용합니다.

gcloud network-security tls-inspection-policies delete \
    projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME \
    --location REGION

다음을 바꿉니다.

  • PROJECT_ID: TLS 검사 정책의 프로젝트 ID
  • TLS_INSPECTION_NAME: TLS 검사 이름
  • REGION: TLS 검사 정책이 생성되는 리전

다음 단계