컨테이너 메타데이터를 사용하는 VM 생성 방지

조직의 리소스가 지원 중단된 컨테이너 시작 에이전트 및 관련 gce-container-declaration 메타데이터를 사용하지 않도록 하려면 조직 정책을 적용하는 것이 좋습니다. 관리 제약조건 compute.managed.disableVmsWithContainerStartupAgent이 적용되면 지원 중단된 메타데이터를 사용하는 리소스의 생성이 사용 중지됩니다.

이 문서에서는 다음 작업을 수행하는 방법을 설명합니다.

  • 컨테이너 시작 에이전트를 사용하는 Compute Engine 인스턴스 생성을 사용 중지하도록 조직 정책을 적용합니다.
  • 테스트 실행 모드에서 정책을 적용하여 조직 정책의 영향을 모니터링합니다.
  • 로그 탐색기를 사용하여 지원 중단된 에이전트를 사용하려고 시도하는 프로젝트를 식별합니다.

컨테이너 메타데이터를 사용하는 VM 생성을 사용 중지하도록 조직 정책 적용

지원 중단된 컨테이너 시작 에이전트를 사용하는 리소스의 생성을 방지하려면 조직 정책을 적용하는 것이 좋습니다. constraints/compute.managed.disableVmsWithContainerStartupAgent 제약 조건은 gce-container-declaration 메타데이터 키로 새 리소스가 생성되지 않도록 합니다. 이 제약 조건은 기존 인스턴스나 인스턴스 템플릿에 영향을 주지 않습니다.

Google Cloud 콘솔, Google Cloud CLI 또는 Compute Engine API를 사용하여 이 제약 조건을 적용할 수 있습니다.

콘솔

콘솔을 사용하여 조직 정책을 설정하려면 다음 단계를 완료하세요.

  1. Google Cloud 콘솔에서 조직 정책 페이지로 이동합니다.

    조직 정책으로 이동

  2. 프로젝트 선택 도구에서 조직 정책을 수정하려는 프로젝트, 폴더, 조직을 선택합니다.

    조직 정책 페이지에 사용 가능한 조직 정책 제약조건의 목록이 표시됩니다.

  3. 제약 조건 목록에서 지원 중단된 컨테이너 시작 에이전트 (konlet)를 사용하는 Compute Engine 인스턴스 생성 사용 중지 제약 조건을 선택합니다. 표시되는 정책 세부정보 페이지에 제약조건에 대한 설명과 제약조건이 적용되는 방식에 대한 정보가 제공됩니다.

  4. 이 리소스의 조직 정책을 업데이트하려면 정책 관리를 클릭합니다.

  5. 정책 수정 페이지에서 상위 정책 재정의를 클릭합니다.

  6. 규칙 추가를 선택합니다.

  7. 시행에서 사용을 선택합니다.

  8. 선택적으로 조직 정책 변경사항이 적용되기 전에 그 영향을 미리 보려면 변경사항 테스트를 클릭합니다. 조직 정책 변경사항 테스트에 대한 자세한 내용은 정책 시뮬레이터로 조직 정책 변경사항 테스트를 참고하세요.

  9. 테스트 실행 모드의 조직 정책을 적용하려면 테스트 실행 정책 설정을 클릭합니다. 자세한 내용은 라이브 정책에서 테스트 실행 모드의 조직 정책 만들기를 참고하세요.

  10. 테스트 실행 모드의 조직 정책이 의도한 대로 작동하는지 확인한 후 정책 설정을 클릭하여 라이브 정책을 설정합니다.

gcloud

  1. 조직 정책을 정의하는 YAML 파일을 만듭니다.

    name: RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME
    spec:
    rules:
        - enforce: ENFORCEMENT_STATE
    dryRunSpec:
      rules:
      - enforce: ENFORCEMENT_STATE
    

    다음을 바꿉니다.

    • RESOURCE_TYPE: organizations, folders 또는 projects

    • RESOURCE_ID: RESOURCE_TYPE에 지정된 리소스 유형에 따라 조직 ID, 폴더 ID, 프로젝트 ID 또는 프로젝트 번호

    • CONSTRAINT_NAME: 설정할 제약 조건의 이름.

    • 설정 시에 이 조직 정책을 적용하려면 ENFORCEMENT_STATEtrue로 바꾸고, 설정 시에 사용 중지하려면 false로 바꿉니다.

    필요에 따라 태그에 따라 조직 정책을 조건부로 설정하려면 condition 블록을 rules에 추가합니다. 조건부 규칙을 조직 정책에 추가하는 경우 비조건부 규칙을 최소 하나 이상 추가해야 합니다. 그렇지 않으면 정책을 저장할 수 없습니다. 자세한 내용은 태그를 사용하여 조직 정책 설정을 참조하세요.

  2. dryRunSpec 플래그와 함께 org-policies set-policy 명령어를 실행하여 테스트 실행 모드에서 조직 정책을 설정합니다.

     gcloud org-policies set-policy POLICY_PATH \
       --update-mask=dryRunSpec
    

    POLICY_PATH를 조직 정책 YAML 파일의 전체 경로로 바꿉니다.

    테스트 실행 조직 정책에 대한 자세한 내용은 테스트 실행 모드의 조직 정책 만들기를 참고하세요.

  3. policy-intelligence simulate orgpolicy 명령어를 사용하여 조직 정책 변경사항이 적용되기 전에 그 영향을 미리 봅니다.

    gcloud policy-intelligence simulate orgpolicy \
      --organization=ORGANIZATION_ID \
      --policies=POLICY_PATH
    

    다음을 바꿉니다.

    • ORGANIZATION_ID를 조직 ID(예: 1234567890123)로 바꿉니다. 여러 조직에 대한 변경사항 시뮬레이션은 지원되지 않습니다.

    • POLICY_PATH: 조직 정책 YAML 파일의 전체 경로

    조직 정책 변경사항 테스트에 대한 자세한 내용은 정책 시뮬레이터로 조직 정책 변경사항 테스트를 참고하세요.

  4. 테스트 실행 모드의 조직 정책이 의도한 대로 작동하는지 확인한 후 org-policies set-policy 명령어와 spec 플래그를 사용하여 실시간 정책을 설정합니다.

    gcloud org-policies set-policy POLICY_PATH \
      --update-mask=spec
    

    POLICY_PATH를 조직 정책 YAML 파일의 전체 경로로 바꿉니다.

REST

조직 정책을 설정하려면 organizations.policies.create 메서드를 사용합니다.

POST https://orgpolicy.googleapis.com/v2/{parent=organizations/ORGANIZATION_ID}/policies

요청 JSON 본문에는 조직 정책의 정의가 포함됩니다. 이 제약 조건이 매개변수를 지원하지 않으면 rules 아래에서 parameters 블록을 생략합니다.

{
  "name": "RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME",
  "spec": {
    "rules": [
      {
        "enforce": ["ENFORCEMENT_STATE"],
      }
    ]
  }
  "dryRunSpec": {
    "rules": [
      {
        "enforce": ["ENFORCEMENT_STATE"],
      }
    ]
  }
}

다음을 바꿉니다.

  • RESOURCE_TYPE: organizations, folders 또는 projects

  • RESOURCE_ID: RESOURCE_TYPE에 지정된 리소스 유형에 따라 조직 ID, 폴더 ID, 프로젝트 ID 또는 프로젝트 번호

  • CONSTRAINT_NAME: 설정할 제약 조건의 이름.

  • 설정 시에 이 조직 정책을 적용하려면 ENFORCEMENT_STATEtrue로 바꾸고, 설정 시에 사용 중지하려면 false로 바꿉니다.

필요에 따라 태그에 따라 조직 정책을 조건부로 설정하려면 condition 블록을 rules에 추가합니다. 조건부 규칙을 조직 정책에 추가하는 경우 비조건부 규칙을 최소 하나 이상 추가해야 합니다. 그렇지 않으면 정책을 저장할 수 없습니다. 자세한 내용은 태그를 사용하여 조직 정책 설정을 참조하세요.

테스트 실행 조직 정책에 대한 자세한 내용은 테스트 실행 모드의 조직 정책 만들기를 참고하세요.

테스트 실행 모드에서 정책을 적용하여 지원 중단된 메타데이터의 사용량 모니터링

컨테이너 선언 메타데이터를 사용하는 인스턴스의 생성을 차단하는 정책을 직접 적용하는 대신 드라이 런 모드에서 정책을 적용할 수 있습니다. 이 설정을 사용하면 실제로 작업에 영향을 주지 않고 정책에서 차단할 수 있는 작업을 모니터링하고 로깅할 수 있습니다. 자세한 내용은 테스트 실행 모드의 조직 정책 만들기를 참고하세요.

작업으로 테스트 실행 정책이 트리거되면 (예: gce-container-declaration 메타데이터 키로 인스턴스를 만들려고 시도하는 경우) Cloud 감사 로그에 로그 항목이 생성됩니다.

지원 중단된 에이전트를 사용하려고 시도하는 프로젝트를 식별하려면 다음 단계를 완료하세요.

  1. Google Cloud 콘솔에서 로그 탐색기 페이지로 이동합니다.

    로그 탐색기로 이동

  2. 쿼리 창에 다음 쿼리를 입력합니다.

    protoPayload.metadata.dryRun="true"
    protoPayload.methodName="CheckOrgPolicy"
    protoPayload.resourceName =~ "/compute.managed.disableVmsWithContainerStartupAgent"
    
  3. 쿼리 실행을 클릭합니다.

  4. 로그 항목을 검토하여 지원 중단된 에이전트를 사용하려고 시도하는 프로젝트를 식별합니다. 드라이런 위반 로그의 특징은 다음과 같습니다.

    • orgpolicy.googleapis.com와 관련이 있습니다.
    • protoPayload.metadata.dryRun 필드는 true으로 설정됩니다.
    • constraints/compute.managed.disableVmsWithContainerStartupAgent 제약 조건이 위반 세부정보에 포함됩니다.
  5. 감사 로그의 정보를 검토하여 지원 중단된 에이전트가 아직 사용되고 있는 위치와 이유를 파악합니다. 이 정보는 지원되는 대안으로 이러한 워크로드를 이전하는 데 도움이 됩니다.

  6. 테스트 실행 모드의 조직 정책이 의도한 대로 작동하는지 확인한 후 시행 상태를 테스트 실행 모드에서 라이브로 변경하여 정책을 시행합니다.

로그 탐색기 사용에 대한 자세한 내용은 로그 탐색기를 사용하여 로그 보기를 참고하세요.

다음 단계