조직의 모든 GKE 노드에서 VM 에이전트 실행


이 페이지에서는 조직 정책 서비스를 사용하여 조직, 폴더 또는 프로젝트의 Google Kubernetes Engine VM을 비롯한 모든 Compute Engine 인스턴스에서 VM 관리자를 사용 설정하는 방법을 설명합니다.

이 가이드는 보안 및 모니터링 에이전트와 같은 모든 필수 프로그램이 조직, 폴더 또는 프로젝트의 모든 인스턴스에서 실행되도록 하려는 보안팀을 위해 작성되었습니다. 조직 정책으로만 구성을 적용하려면 이 가이드를 사용하세요. 코드로 구성 방식의 경우 구성 동기화를 사용하세요. 구성 동기화를 사용하면 클러스터의 여러 측면을 구성하고 제어할 수 있으며 조직 정책을 넘어서는 가치를 제공합니다.

이 페이지를 읽기 전에 VM 관리자리소스 관리자 제약조건에 익숙해야 합니다.

이 가이드에서는 조직 또는 폴더의 모든 프로젝트에서 VM Manager 사용을 적용하는 방법을 보여줍니다. 이 가이드에서는 OS 정책으로 VM 관리자를 설정하고 사용하는 방법을 설명하지 않습니다. 자세한 내용은 OS 정책 할당 만들기를 참고하세요.

VM Manager 정보

VM Manager는 Compute Engine에서 Windows 및 Linux를 실행하는 대규모 가상 머신 (VM) Fleet의 운영체제를 관리할 수 있는 도구 모음입니다. VM Manager를 사용하여 OS 정책을 적용하여 VM에서 실행되는 프로그램을 맞춤설정할 수 있습니다. 예를 들어 리소스에 에이전트를 설치하는 정책을 정의하고 여러 리소스에서 이 정책을 재사용할 수 있습니다. VM Manager는 기본적으로Google Cloud 프로젝트에서 사용 중지되어 있습니다.

OSPolicyAssignments를 사용하여 VM Manager가 정책을 적용하는 위치를 미세 조정할 수 있습니다. 이를 통해 선택기를 사용하여 OS 정책의 범위를 특정 VM으로 지정할 수 있습니다. 예를 들어 모든 GKE 노드 VM에는 goog-gke-node 라벨이 있으며, 이 라벨은 OS 정책 할당으로 타겟팅할 수 있습니다.

조직 정책 및 VM 관리자

Google Cloud 조직에 폴더 및 하위 폴더와 같은 여러 수준의 계층 구조가 있는 경우 이러한 모든 프로젝트에서 VM Manager를 수동으로 사용 설정하면 불필요한 관리 오버헤드가 발생할 수 있습니다. constraints/compute.requireOsConfig 제약조건과 함께 조직 정책 서비스를 사용하여 폴더 또는 조직의 모든 프로젝트에서 모든 VM에 VM Manager를 사용 설정하도록 요구할 수 있습니다. 조직 정책을 사용하여 VM Manager를 적용하면 다음과 같은 이점이 있습니다.

  • 모든 새 프로젝트는 모든 프로젝트 및 VM에 enable-osconfig=TRUE 메타데이터 라벨을 추가합니다.
  • 누군가 이 라벨을 삭제하거나 true이 아닌 값으로 설정하려고 하면 변경사항이 거부됩니다.
  • enable-osconfig 메타데이터 키를 true가 아닌 값으로 설정하는 방식으로 VM을 만들거나 업데이트하려고 하면 변경사항이 거부됩니다.

시작하기 전에

시작하기 전에 다음 태스크를 수행했는지 확인합니다.

  • Google Kubernetes Engine API를 사용 설정합니다.
  • Google Kubernetes Engine API 사용 설정
  • 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화하세요. 이전에 gcloud CLI를 설치한 경우 gcloud components update를 실행하여 최신 버전을 가져옵니다.
  • 이미 OS 정책 및 OS 정책 할당과 함께 VM Manager를 사용하여 VM에서 에이전트를 실행하고 있는지 확인합니다. 자세한 내용은 OS 정책 할당 만들기를 참고하세요.
  • Enable the Cloud Resource Manager API, OS Config API APIs.

    Enable the APIs

제한사항

constraints/compute.requireOsConfig 조직 정책에는 다음과 같은 제한사항이 있습니다.

  • 기존에 정책을 위반한 리소스는 새 조직 정책의 영향을 받지 않습니다. 정책의 메타데이터를 수동으로 설정하거나 기존 리소스에서 gcloud를 사용하여 설정할 수 있습니다.
  • 프로젝트의 Compute Engine 인스턴스에서 메타데이터를 변경할 권한이 있는 사용자는 osconfig-disabled-features 메타데이터 필드를 설정하여 VM에서 osconfig-agent를 사용 중지할 수 있습니다.
  • osconfig-agent가 실행되지 않으면 VM이 VM 관리자 대시보드에 규정을 준수하지 않는 것으로 표시됩니다. 예를 들어 사용자가 상담사를 수동으로 사용 중지한 경우 이러한 상황이 발생할 수 있습니다.

필요한 역할

조직 정책을 관리하는 데 필요한 권한을 얻으려면 관리자에게 조직의 조직 정책 관리자(roles/orgpolicy.policyAdmin) IAM 역할을 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

조직 전체에 compute.requireOsConfig 사용 설정

VM Manager를 사용 설정하고 OSPolicyAssignment를 VM에 범위 지정한 후 constraints/compute.requireOsConfig 조직 정책을 사용하여 새 프로젝트에서 VM Manager가 기본적으로 사용 설정되도록 할 수 있습니다. constraints/compute.requireOsConfig를 적용하는 방법은 사용하는 API 버전에 따라 다릅니다.

Organization Policy v2 API

gcloud CLI 또는 Google Cloud 콘솔을 사용하여Google Cloud 리소스(예: 폴더 또는 조직) 전체에 constraints/compute.requireOsConfig 제약조건을 적용할 수 있습니다.

gcloud

  1. compute.requireOsConfig 제약조건이 아직 적용되지 않았는지 확인합니다.

    gcloud org-policies describe \
        constraints/compute.requireOsConfig \
        --organization=ORGANIZATION_ID
    

    ORGANIZATION_ID조직 ID로 바꿉니다.

    정책이 설정되지 않은 경우 이 명령어는 NOT_FOUND 오류를 반환합니다.

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    

    정책이 있는 경우 명령어는 현재 정책을 반환합니다. 새 정책을 적용하면 기존 정책이 있는 경우 기존 정책이 덮어쓰기됩니다.

  2. 정책을 저장할 /tmp/policy.yaml 임시 파일을 만듭니다.

    name: organizations/ORGANIZATION_ID/policies/constraints/compute.requireOsConfig
    spec:
      rules:
      - enforce: true
    
  3. set-policy 명령어를 실행합니다.

    gcloud org-policies set-policy /tmp/policy.yaml
    
  4. 새 정책이 적용되었는지 확인합니다.

    gcloud org-policies describe \
        constraints/compute.requireOsConfig --effective \
        --organization=ORGANIZATION_ID
    

    이 명령어 출력은 다음과 비슷합니다.

    name: organizations/ORGANIZATION_ID/policies/constraints/compute.requireOsConfig
    spec:
      rules:
      - enforce: true
    

Console

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

    조직 정책으로 이동

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

  3. 조직 정책 페이지에서 필터를 사용하여 compute.requireOsConfig를 검색합니다.

  4. 정책 이름을 클릭하여 정책 세부정보 페이지를 엽니다.

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

  6. 정책 수정 페이지에서 상위 정책 재정의를 선택합니다.

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

  8. 시행에서 이 조직 정책 시행을 사용으로 변경합니다.

  9. 정책을 시행하려면 정책 설정을 클릭합니다.

Resource Manager v1 API

  1. compute.requireOsConfig 제약조건이 아직 적용되지 않았는지 확인합니다.

    gcloud resource-manager org-policies describe constraints/compute.requireOsConfig \
        --organization ORGANIZATION_ID
    

    ORGANIZATION_ID조직 ID로 바꿉니다.

    정책이 설정되지 않은 경우 이 명령어는 다음 예와 같이 불완전한 정책을 반환합니다.

    constraint: "constraints/compute.requireOsConfig"
    etag: BwVJi0OOESU=
    

    정책이 있는 경우 명령어는 현재 정책을 반환합니다. 새 정책을 적용하면 기존 정책이 있는 경우 기존 정책이 덮어쓰기됩니다.

  2. 조직에 적용할 정책을 설정합니다.

    gcloud resource-manager org-policies enable-enforce constraints/compute.requireOsConfig \
        --organization ORGANIZATION_ID
    

    이 명령어 출력은 다음과 비슷합니다.

    booleanPolicy:
      enforced: true
    constraint: constraints/compute.requireOsConfig
    etag: BwVJitxdiwY=
    
  3. 새 정책이 적용되었는지 확인합니다.

    gcloud resource-manager org-policies describe constraints/compute.requireOsConfig \
        --effective \
        --organization ORGANIZATION_ID
    

    이 명령어 출력은 다음과 비슷합니다.

    booleanPolicy:
      enforced: true
    constraint: constraints/compute.requireOsConfig
    

조직 정책 변경사항이 완전히 적용되는 데 최대 15분이 걸릴 수 있습니다.

적용할 수 있는 다른 정책 또는 정책을 수정하거나 삭제하는 방법에 관한 자세한 내용은 Resource Manager 문서를 참고하세요.

다음 단계

GKE 감사 로깅 자세히 알아보기