이미지 사용 제한

기본적으로 프로젝트의 사용자는 공개 이미지프로젝트 구성원이 IAM 역할을 통해 액세스할 수 있는 이미지를 사용하여 영구 디스크를 만들거나 이미지를 복사할 수 있습니다. 하지만 일부 경우 프로젝트 구성원이 정책이나 보안 요구사항을 충족하는 승인 소프트웨어가 포함된 이미지에서만 부팅 디스크를 만들 수 있도록 제한할 수 있습니다.

신뢰할 수 있는 이미지 기능을 사용하여 프로젝트 구성원이 특정 프로젝트의 이미지에서만 영구 디스크를 만들도록 하는 조직 정책을 정의할 수 있습니다.

이미지를 사용할 수 있는 위치를 제한하려면 공유 이미지, 디스크, 스냅샷 사용 제한을 참조하세요.

시작하기 전에

제한사항

  • 신뢰할 수 있는 이미지 정책은 다음 이미지에 대한 액세스를 제한하지 않습니다.

    • 로컬 프로젝트의 커스텀 이미지

    • 다른 Google Cloud 서비스를 통해 인스턴스를 만들 때 사용 가능한 이미지

    • Cloud Storage 버킷의 이미지 파일

  • 신뢰할 수 있는 이미지 정책은 사용자가 자신의 로컬 프로젝트에 이미지 리소스를 만드는 것을 제한하지 않습니다.

이미지 액세스 제약조건 설정

프로젝트, 조직, 폴더 등에 compute.trustedImageProjects 제약조건을 설정하여 이미지 액세스 정책을 적용합니다. 이 제약조건을 설정하려면 조직 정책을 수정할 권한이 있어야 합니다. 예를 들어 resourcemanager.organizationAdmin 역할에 이러한 제약조건을 설정할 권한이 있습니다. 조직 수준에서 정책을 관리하는 방법에 대해서는 제약조건 사용을 참조하세요.

Console

  1. 조직 정책 페이지로 이동합니다.

    조직 정책 페이지로 이동

  2. 정책 목록에서 신뢰할 수 있는 이미지 프로젝트 정의를 클릭합니다.
  3. 편집을 클릭하여 기존의 신뢰할 수 있는 이미지 제약조건을 편집합니다.
  4. 프로젝트에서 이미지를 가져오는 소스가 되는 게시자 프로젝트 하나 이상을 허용하거나 거부하도록 제약조건을 설정합니다. 허용/거부 게시자 프로젝트 목록은 다음 형식의 문자열 목록입니다.

    projects/[PROJECT_ID]
    

    여기서 [PROJECT_ID]는 신뢰할 수 있는 이미지 소스로 표시할 프로젝트의 프로젝트 ID입니다.

    조직 또는 폴더에 기존 제약조건이 있는 경우 이 제약조건이 프로젝트 수준에서 설정해 둔 제약조건과 충돌할 수도 있습니다.

  5. 저장을 클릭하여 제약조건 설정을 적용합니다.

gcloud

  1. 프로젝트의 기존 정책 설정을 가져옵니다.

    gcloud beta resource-manager org-policies describe \
        compute.trustedImageProjects --effective \
        --project [PROJECT_ID] > policy.yaml
    

    여기서 [PROJECT_ID]는 프로젝트 ID입니다.

  2. 텍스트 편집기에서 policy.yaml 파일을 열고 compute.trustedImageProjects 제약조건을 수정합니다. 필요한 제한사항을 추가하고 더 이상 필요하지 않은 제한사항을 삭제합니다. 파일 수정이 끝나면 변경사항을 저장합니다. 예를 들어 정책 파일에서 설정할 수 있는 제약조건 항목은 다음과 같습니다.

    constraint: constraints/compute.trustedImageProjects
    listPolicy:
      allowedValues:
        - projects/debian-cloud
        - projects/cos-cloud
      deniedValues:
        - projects/unwanted-images
    

    원하는 경우 프로젝트에 있는 커스텀 이미지 외의 모든 이미지에 대한 액세스를 거부할 수 있습니다. 이런 경우 다음 예시를 사용합니다.

    constraint: constraints/compute.trustedImageProjects
    listPolicy:
      allValues: DENY
    
  3. 프로젝트에 policy.yaml 파일을 적용합니다. 조직 또는 폴더에 기존 제약조건이 있는 경우 이 제약조건이 프로젝트 수준에서 설정해 둔 제약조건과 충돌할 수도 있습니다.

    gcloud beta resource-manager org-policies set-policy
    --project [PROJECT_ID] policy.yaml
    

    여기서 [PROJECT_ID]는 프로젝트 ID입니다.

제약조건 구성을 완료한 후에는 이 제약조건을 테스트하여 제한사항이 원하는 대로 구현되는지 확인합니다.

다음 단계