네트워크 태그 및 서비스 계정을 사용하는 VPC 방화벽 규칙 마이그레이션

가상 프라이빗 클라우드(VPC) 방화벽 규칙에는 네트워크 태그 및 소스 서비스 계정이 포함될 수 있습니다. 다음 태스크를 수행하여 네트워크 태그 및 소스 서비스 계정이 포함된 VPC 방화벽 규칙을 전역 네트워크 방화벽 정책으로 마이그레이션합니다.

  1. 환경 평가
  2. 기존 네트워크 태그 및 서비스 계정 나열
  3. 각 네트워크 태그 및 소스 서비스 계정의 태그 만들기
  4. 생성한 태그에 네트워크 태그 및 서비스 계정 매핑
  5. 가상 머신(VM) 인스턴스에 태그 바인딩
  6. VPC 방화벽 규칙을 전역 네트워크 방화벽 정책으로 마이그레이션
  7. 새 네트워크 방화벽 정책 검토
  8. 마이그레이션 후 태스크 완료

시작하기 전에

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine API.

    Enable the API

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Compute Engine API.

    Enable the API

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. Compute 보안 관리자 역할(roles/compute.securityAdmin)이 있는지 확인합니다.

환경 평가

VPC 방화벽 규칙을 전역 네트워크 방화벽 정책으로 마이그레이션하기 전에 기존 환경과 Identity and Access Management(IAM) 역할 및 권한을 평가합니다.

  1. VPC 네트워크에서 VPC 방화벽 규칙 수를 확인합니다.
  2. 각 VPC 방화벽 규칙과 연결된 우선순위를 기록합니다.
  3. 전역 네트워크 방화벽 정책을 생성, 연결, 수정, 보기위해 필요한 IAM 역할 및 권한이 있는지 확인합니다.
  4. 보안 태그 정의를 생성, 업데이트, 삭제하는 데 필요한 IAM 역할 및 권한이 있는지 확인합니다.

    다음 표에는 태그를 만들고 관리하는 데 필요한 다양한 역할이 요약되어 있습니다.

    역할 이름 실행된 태스크
    태그 관리자 역할(roles/resourcemanager.tagAdmin) 태그 정의를 생성, 업데이트, 삭제합니다. 자세한 내용은 태그 관리를 참조하세요.
    태그 뷰어 역할(roles/resourcemanager.tagViewer) 태그 정의 및 리소스에 연결된 태그를 봅니다.
    태그 사용자 역할(roles/resourcemanager.tagUser) 리소스에 연결된 태그를 추가하고 삭제합니다.

기존 네트워크 태그 및 서비스 계정 나열

VPC 방화벽 규칙에 네트워크 태그 또는 서비스 계정이 사용되는지 여부를 확인하고 기존 네트워크 태그 및 서비스 계정의 세부정보를 저장할 JSON 파일을 만듭니다.

네트워크의 네트워크 태그와 서비스 계정을 매핑 JSON 파일로 내보내려면 --export-tag-mapping 플래그 및 함께 compute firewall-rules migrate 명령어를 사용합니다.

gcloud beta compute firewall-rules migrate \
    --source-network=NETWORK_NAME \
    --export-tag-mapping \
    --tag-mapping-file=TAG_MAPPING_FILE

다음을 바꿉니다.

  • NETWORK_NAME: 마이그레이션하려는 VPC 방화벽 규칙이 포함된 VPC 네트워크의 이름입니다.
  • TAG_MAPPING_FILE: 매핑 JSON 파일의 이름입니다.

VPC 방화벽 규칙에 서비스 계정만 포함된 경우 생성된 JSON 파일에 서비스 계정만 포함됩니다. 마찬가지로 VPC 방화벽 규칙에 네트워크 태그만 포함된 경우 생성된 JSON 파일에는 네트워크 태그만 포함됩니다. 서비스 계정에는 sa 프리픽스가 붙고 네트워크 태그에는 프리픽스가 붙지 않습니다.

예를 들어 생성된 다음 JSON 파일에는 네트워크 태그 sql-server와 서비스 계정 example@example.com이 포함되어 있습니다.

{"network-tag-1": null, "sa:service@account1.com": null}

태그 만들기

매핑 파일에 나열된 네트워크 태그와 소스 서비스 계정을 기준으로 네트워크에서 해당하는 보안 태그를 만들어야 합니다.

새 보안 태그는 네트워크 태그와 서비스 계정을 대체하며 마이그레이션 후 원래 네트워크 구성을 유지합니다.

태그 관리자 역할이 있는 주 구성원으로 각 네트워크 태그 및 서비스 계정에 대해 보안 태그 키-값 쌍을 만듭니다.

gcloud resource-manager tags keys create TAG_KEY \
    --parent organizations/ORGANIZATION_ID \
    --purpose GCE_FIREWALL \
    --purpose-data network=PROJECT_ID/NETWORK_NAME

gcloud resource-manager tags values create TAG_VALUE \
    --parent ORGANIZATION_ID/TAG_KEY

다음을 바꿉니다.

  • TAG_KEY: 태그 키의 이름입니다.
  • ORGANIZATION_ID: 조직의 ID
  • PROJECT_ID: 프로젝트의 ID입니다.
  • NETWORK_NAME: VPC 네트워크의 이름입니다.
  • TAG_VALUE: 태그 키에 할당할 값입니다.

예를 들어 sql-server라는 네트워크 태그가 포함된 VPC 방화벽 규칙이 있으면 해당하는 보안 태그 키-값 쌍 sql-server:production을 만듭니다.

gcloud resource-manager tags keys create sql-server \
    --parent organizations/123456 \
    --purpose GCE_FIREWALL \
    --purpose-data network=test-project/test-network

gcloud resource-manager tags values create production \
   --parent 123456/sql-server

네트워크 태그 및 서비스 계정을 태그에 매핑

VPC 방화벽 규칙에서 사용하는 각 네트워크 태그와 서비스 계정에 대해 IAM 적용 보안 태그를 만든 후에는 매핑 JSON 파일에서 해당하는 네트워크 태그 와 서비스 계정에 태그를 매핑해야 합니다.

JSON 파일을 수정하여 네트워크 태그와 서비스 계정을 해당하는 보안 태그에 매핑합니다.

{"sql-server": "tagValues/yyyyy", "sa:example@example.com": "tagValues/zzzzz"}

예를 들어 다음 JSON 파일은 네트워크 태그 sql-serversql-server 키의 태그 값에 매핑하고 서비스 계정 example@example.comexample@example.com 키의 태그 값에 매핑합니다.

{"sql-server": "tagValues/production", "sa:example@example.com": "tagValues/example"}

VM에 태그 바인딩

태그 매핑 JSON 파일에 따라 새로 만든 보안 태그를 기존 네트워크 태그가 연결된 VM에 바인딩합니다.

  1. 태그 관리자 역할이 있는 주 구성원은 다음을 실행합니다.

    1. Google Cloud 리소스에 보안 태그를 연결하는 데 필요한 권한을 검토합니다.
    2. 보안 태그를 사용하고 태그를 VM에 바인딩하는 주 구성원에게 태그 사용자 역할을 할당합니다.
  2. 태그 사용자 역할이 있는 주 구성원으로 --bind-tags-to-instances 플래그와 함께 compute firewall-rules migrate 명령어를 사용합니다.

    gcloud beta compute firewall-rules migrate \
       --source-network=NETWORK_NAME \
       --bind-tags-to-instances \
       --tag-mapping-file=TAG_MAPPING_FILE
    

    다음을 바꿉니다.

    • NETWORK_NAME: VPC 네트워크의 이름입니다.
    • TAG_MAPPING_FILE: 매핑 JSON 파일의 이름입니다.

VPC 방화벽 규칙을 전역 네트워크 방화벽 정책으로 마이그레이션

VPC 방화벽 규칙을 전역 네트워크 방화벽 정책으로 마이그레이션합니다. compute-firewall-rules migrate 명령어를 사용합니다.

gcloud beta compute firewall-rules migrate \
    --source-network=NETWORK_NAME \
    --target-firewall-policy=POLICY_NAME \
    --tag-mapping-file=TAG_MAPPING_FILE

다음을 바꿉니다.

  • NETWORK_NAME: 마이그레이션하려는 VPC 방화벽 규칙이 포함된 VPC 네트워크의 이름입니다.
  • POLICY_NAME: 마이그레이션 중에 만들 전역 네트워크 방화벽 정책의 이름입니다.

새 전역 네트워크 방화벽 정책 검토

새로 만든 정책을 VPC 네트워크에 연결하기 전에 정책을 검토하여 마이그레이션 프로세스가 정확하게 완료되었는지 확인하는 것이 좋습니다.

다음 사항을 확인하세요.

  • 방화벽 정책 규칙 구성이 올바르고 각 규칙에 대해 다음 규칙 구성요소가 올바르게 마이그레이션되었습니다.

    • 상대적 우선순위
    • 트래픽 방향
    • 일치 시 작업
    • 로그 설정
    • 대상 매개변수
    • 소스 매개변수(인그레스 규칙)
    • 대상 매개변수(이그레스 규칙)
    • 프로토콜 및 포트 제약조건
  • 보안 태그가 올바른 VM에 연결되었는지 확인합니다. resource-manager tags bindings list 명령어를 사용합니다.

    gcloud resource-manager tags bindings list \
        --location=ZONE_ID \
        --parent //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE_ID/instances/INSTANCE_NAME \
        --effective
    

    다음을 바꿉니다.

    • ZONE_ID: VM의 영역입니다.
    • PROJECT_ID: 프로젝트의 ID입니다.
    • INSTANCE_NAME: VM의 이름

마이그레이션 후 태스크

새 전역 네트워크 방화벽 정책을 활성화하고 사용하려면 마이그레이션 후 태스크를 완료하세요. 자세한 내용은 마이그레이션 후 태스크를 참고하세요.

다음 단계