신뢰할 수 있는 이미지 정책 설정


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

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

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

시작하기 전에

  • 조직 수준에서 정책을 관리하는 방법은 제약조건 사용 페이지를 참조하세요.
  • 조직 정책 전파 방법은 계층 구조 평가 이해 페이지를 참조하세요.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음 옵션 중 하나를 선택하여 Compute Engine에 인증하면 됩니다.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      자세한 내용은 Google Cloud 인증 문서의 REST 사용을 위한 인증을 참고하세요.

제한사항

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

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

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

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

Compute Engine에서 사용할 수 있는 모든 공개 이미지에 제약조건을 설정할 수 있습니다. 이미지 프로젝트 이름 목록은 운영체제 세부정보를 참조하세요. 또한 ml-images 프로젝트를 사용하여 Compute Engine에서 사용할 수 있는 머신러닝(ML) 이미지를 제한할 수도 있습니다. 서버리스 VPC 액세스를 사용하는 경우 serverless-vpc-access-images 프로젝트에서 Compute Engine VM 이미지 사용 권한을 프로젝트에 부여합니다.

Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 이미지 액세스에 대한 제약조건을 설정합니다.

Console

예를 들어 프로젝트 수준에서 제약조건을 설정하려면 다음을 수행합니다.

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

    조직 정책으로 이동

  2. 정책 목록에서 신뢰할 수 있는 이미지 프로젝트 정의를 클릭합니다. 정책 세부정보 페이지가 표시됩니다.

  3. 정책 세부정보 페이지에서 정책 관리를 클릭합니다. 정책 수정 페이지가 표시됩니다.

  4. 정책 수정 페이지에서 맞춤설정을 선택합니다.

  5. 정책 시행에서 시행 옵션을 선택합니다. 상속 및 리소스 계층 구조에 관한 자세한 내용은 계층 구조 평가 이해를 참고하세요.

  6. 규칙 추가를 클릭합니다.

  7. 정책 값 목록에서 이 조직 정책을 통해 모든 이미지 프로젝트에 대한 액세스를 허용할지 아니면 모든 이미지 프로젝트에 대한 액세스를 거부할지 선택하거나 액세스 허용 또는 거부할 프로젝트의 커스텀 집합을 지정할 수 있습니다.

    정책 규칙을 설정하려면 다음 옵션 중 하나를 완료하세요.

    • 사용자가 모든 공개 이미지에서 부팅 디스크를 만들 수 있도록 하려면 모두 허용을 선택합니다.
    • 사용자가 모든 공개 이미지에서 부팅 디스크를 만들지 못하도록 제한하려면 모두 거부를 선택합니다.
    • 사용자가 부팅 디스크를 만들 수 있는 일부 공개 이미지 집합을 지정하려면 맞춤을 선택합니다. 정책 유형맞춤 값 필드가 표시됩니다.

      1. 정책 유형 목록에서 허용 또는 거부를 선택합니다.
      2. 커스텀 값 필드에 projects/IMAGE_PROJECT 형식을 사용하여 이미지 프로젝트의 이름을 입력합니다.

        IMAGE_PROJECT를 제약조건을 설정할 이미지 프로젝트로 바꿉니다.

        이미지 프로젝트를 여러 개 추가할 수 있습니다. 추가하려는 각 이미지 프로젝트에 대해 추가를 클릭하고 이미지 프로젝트 이름을 입력합니다.

  8. 규칙을 저장하려면 완료를 클릭합니다.

  9. 조직 정책을 저장하고 적용하려면 저장을 클릭합니다.

조직 정책 만들기에 대한 자세한 내용은 조직 정책 만들기 및 관리를 참조하세요.

gcloud

예를 들어 프로젝트 수준에서 제약조건을 설정하려면 다음을 수행합니다.

  1. resource-manager org-policies describe 명령어를 사용하여 프로젝트의 기존 정책 설정을 가져옵니다.

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

    PROJECT_ID를 프로젝트 ID로 바꿉니다.

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

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

    IMAGE_PROJECT를 프로젝트에서 제한하고자 하는 이미지 프로젝트의 이름으로 바꿉니다.

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

    constraint: constraints/compute.trustedImageProjects
    listPolicy:
     allValues: DENY
    

  3. 프로젝트에 policy.yaml 파일을 적용합니다. 조직 또는 폴더에 기존 제약조건이 있는 경우 이 제약조건이 프로젝트 수준에서 설정해 둔 제약조건과 충돌할 수도 있습니다. 제약조건을 적용하려면 resource-manager org-policies set-policy 명령어를 사용합니다.

    gcloud resource-manager org-policies set-policy \
       policy.yaml --project=PROJECT_ID
    

    PROJECT_ID를 프로젝트 ID로 바꿉니다.

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

다음 단계