커스텀 이미지에 대한 액세스 관리


사용자가 커스텀 이미지를 생성, 삭제, 사용 또는 공유할 수 있도록 하려면 적절한 IAM(Identity and Access Management) 역할을 부여해야 합니다. 이 문서에서는 커스텀 이미지를 만들고 관리하는 데 필요한 IAM 권한과 사용자에게 권한을 부여하는 방법을 설명합니다.

Compute Engine 리소스에 대한 액세스 권한을 부여하는 방법에 대한 일반적인 정보는 Compute Engine 리소스에 대한 액세스 관리를 참조하세요. IAM에 대한 자세한 내용은 IAM 문서를 참조하세요.

시작하기 전에

  • IAM 문서를 읽어봅니다.
  • Compute Engine IAM 역할, 특히 Compute 이미지 사용자 역할(roles/compute.imageUser)에 대해 알아보세요.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 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 사용을 위한 인증을 참고하세요.

      필요한 역할

      맞춤 이미지에 대한 액세스를 관리하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

      역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

      이러한 사전 정의된 역할에는 맞춤 이미지에 대한 액세스를 관리하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

      필수 권한

      맞춤 이미지에 대한 액세스를 관리하려면 다음 권한이 필요합니다.

      • 사용자 또는 서비스 계정에 맞춤 이미지를 만들고 공유하는 데 필요한 권한을 부여하려면 다음 단계를 따르세요.
        • 프로젝트에 대한 resourcemanager.projects.getIamPolicy
        • 프로젝트에 대한 resourcemanager.projects.setIamPolicy 권한
      • 사용자 또는 서비스 계정에 맞춤 이미지를 삭제하는 데 필요한 권한을 부여하려면 다음 단계를 따르세요.
        • 프로젝트에 대한 resourcemanager.projects.getIamPolicy
        • 프로젝트에 대한 resourcemanager.projects.setIamPolicy
        • 이미지에 대한 compute.images.getIamPolicy
        • 이미지에 대한 compute.images.setIamPolicy
      • 맞춤 이미지에 대한 사용자 또는 서비스 계정 액세스 권한을 취소하려면 다음 단계를 따르세요.
        • 프로젝트에 대한 resourcemanager.projects.getIamPolicy
        • 프로젝트에 대한 resourcemanager.projects.setIamPolicy 권한
      • 공유 이미지를 사용하여 VM을 만들려면 다음 단계를 따르세요.
        • 프로젝트에 대한 compute.instances.create 권한
        • 커스텀 이미지를 사용하여 VM 만들기: 이미지에 대한 compute.images.useReadOnly 권한
        • 스냅샷을 사용하여 VM 만들기: 스냅샷에 대한 compute.snapshots.useReadOnly 권한
        • 인스턴스 템플릿을 사용하여 VM 만들기: 인스턴스 템플릿에 대한 compute.instanceTemplates.useReadOnly 권한
        • VM에 기존 네트워크 할당: 프로젝트에 대한 compute.networks.use 권한
        • VM의 고정 IP 주소 지정: 프로젝트에 대한 compute.addresses.use 권한
        • 기존 네트워크 사용 시 VM에 외부 IP 주소 할당: 프로젝트에 대한 compute.networks.useExternalIp 권한
        • VM의 서브넷 지정: 프로젝트 또는 선택한 서브넷에 대한 compute.subnetworks.use 권한
        • VPC 네트워크를 사용할 때 VM에 외부 IP 주소 할당: 프로젝트 또는 선택한 서브넷에 대한 compute.subnetworks.useExternalIp 권한
        • VM에 VM 인스턴스 메타데이터 설정: 프로젝트에 대한 compute.instances.setMetadata 권한
        • VM에 태그 설정: VM에 대한 compute.instances.setTags 권한
        • VM에 라벨 설정: VM에 대한 compute.instances.setLabels 권한
        • VM에 사용할 서비스 계정 설정: VM에 대한 compute.instances.setServiceAccount 권한
        • VM의 새 디스크 만들기: 프로젝트에 대한 compute.disks.create 권한
        • 기존 디스크를 읽기 전용 또는 읽기-쓰기 모드로 연결: 디스크에 대한 compute.disks.use 권한
        • 기존 디스크를 읽기 전용 모드로 연결: 디스크에 대한 compute.disks.useReadOnly 권한

      커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

      제한사항

      이미지에서는 특수 구성원 유형인 allUsers에 역할을 부여할 수 없습니다.

      커스텀 이미지 생성 권한 부여

      조직 또는 프로젝트에서 사용자가 커스텀 이미지를 생성할 수 있도록 권한을 부여할 수 있습니다.

      Compute Engine은 사용자가 이미지, 디스크, 스냅샷 등의 스토리지 관련 리소스를 생성, 삭제, 관리할 수 있도록 사용자에게 할당 가능한 사전 정의된 Compute 스토리지 관리자 역할(roles/compute.storageAdmin)을 제공합니다. 이미지 생성만을 허용하는 역할이 필요한 경우 커스텀 역할을 만들어야 합니다. 커스텀 역할에 다음 권한을 포함합니다.

      • compute.images.create를 통해 새 이미지 생성
      • compute.images.list를 통해 프로젝트의 이미지 나열
      • compute.disks.use를 통해 디스크에서 이미지 생성
      • compute.disks.list를 통해 사용자가 프로젝트의 모든 디스크를 나열

      사용자가 조직 수준에서 커스텀 이미지를 생성할 수 있도록 권한을 부여하면 사용자는 조직 내 모든 프로젝트의 커스텀 이미지를 생성할 수 있습니다.

      콘솔

      1. Google Cloud 콘솔에서 프로젝트 또는 조직의 IAM 페이지로 이동합니다.

        IAM으로 이동

      2. 신규 회원을 추가하려면 액세스 권한 부여를 클릭합니다.

      3. 새 주 구성원 필드에서 액세스 권한을 부여할 ID의 이메일 주소를 입력합니다.

        예를 들면 다음과 같습니다.

        • Google 계정 이메일: test-user@gmail.com
        • Google 그룹: admins@googlegroups.com
        • 서비스 계정: server@example.gserviceaccount.com
        • Google Workspace 도메인: example.com
      4. 역할 선택 목록에서 Compute Engine > Compute 스토리지 관리자를 선택하거나, 커스텀 역할을 생성한 경우에는 커스텀 역할을 선택합니다.

      5. 선택사항: Google Cloud 리소스에 대한 사용자의 액세스를 추가로 제어하려면 조건부 역할 결합을 추가합니다.

      6. 변경사항을 저장합니다.

      gcloud

      조직 수준에서 roles/compute.storageAdmin 역할을 부여하려면 gcloud organizations add-iam-policy-binding 명령어를 사용합니다.

      gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
          --member='MEMBER' \
          --role='roles/compute.storageAdmin'
      

      프로젝트 수준에서 roles/compute.storageAdmin 역할을 부여하려면 gcloud projects add-iam-policy-binding 명령어를 사용합니다.

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member='MEMBER' \
          --role='roles/compute.storageAdmin'
      

      다음을 바꿉니다.

      • ORGANIZATION_ID 또는 PROJECT_ID: 조직 ID 또는 프로젝트 ID(예: my-organization-1 또는 my-project-1)
      • MEMBER: 역할을 부여할 유효한 ID

        예를 들면 다음과 같습니다.

        • Google 계정 이메일: user:user@gmail.com
        • Google 그룹: group:admins@googlegroups.com
        • 서비스 계정: serviceAccount:server@example.gserviceaccount.com
        • Google Workspace 도메인: domain:example.com

      REST

      1. 리소스의 getIamPolicy 메서드로 기존 정책을 읽습니다. 프로젝트의 경우 projects.getIamPolicy 메서드를 사용합니다.

        POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
        

        PROJECT_ID를 프로젝트 ID(예: my-project-1)로 바꿉니다.

        조직의 경우 organizations.getIamPolicy 메서드를 사용합니다.

        POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:getIamPolicy
        

        ORGANIZATION_ID를 조직 ID(예: 123456578920)로 바꿉니다.

        Compute Engine은 응답의 현재 정책을 반환합니다.

      2. 구성원과 연결된 역할을 추가하거나 삭제하려면 텍스트 편집기로 정책을 수정합니다. 구성원을 추가하려면 다음 형식을 사용하세요.

        • user:test-user@gmail.com
        • group:admins@example.com
        • serviceAccount:test123@example.domain.com
        • domain:example.domain.com

        예를 들어 group:admins@example.comroles/compute.storageAdmin 역할을 부여하려면 다음 binding을 정책에 추가합니다.

        {
         "members": [
           "group:admins@example.com"
         ],
         "role":"roles/compute.storageAdmin"
        }
        
      3. setIamPolicy 메서드를 사용하여 업데이트된 정책을 작성합니다.

        예를 들어 프로젝트 수준에서 정책을 설정하려면 project.setIamPolicy 메서드를 사용합니다. 요청 본문에 이전 단계에서 업데이트한 IAM 정책을 제공합니다.

        POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
        

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

      커스텀 이미지 삭제 권한 부여

      필요에 따라 사용자에게 다음 작업에 대한 권한을 부여할 수 있습니다.

      • 특정 이미지 삭제
      • 특정 프로젝트에서 소유한 이미지 삭제
      • 조직 내 모든 프로젝트의 이미지 삭제

      프로젝트 수준에서 권한을 부여하면 사용자가 프로젝트에서 소유한 모든 이미지를 삭제할 수 있습니다. 조직 수준에서 권한을 부여하면 사용자가 프로젝트에 관계없이 해당 조직에서 소유한 모든 이미지를 삭제할 수 있습니다.

      Compute Engine은 사용자가 이미지, 디스크, 스냅샷 등의 스토리지 관련 리소스를 생성, 삭제, 관리할 수 있도록 사용자에게 할당 가능한 사전 정의된 Compute 스토리지 관리자 역할(roles/compute.storageAdmin)을 제공합니다. 이미지 삭제만을 허용하는 역할이 필요한 경우 커스텀 역할을 만들어야 합니다. 커스텀 역할에 다음 권한을 포함합니다.

      • compute.images.delete를 통해 이미지 삭제
      • compute.images.list를 통해 프로젝트 또는 조직의 이미지 나열
      • compute.images.get을 통해 이미지 가져오기

      콘솔

      특정 이미지를 삭제할 권한을 부여하려면 다음 안내를 따르세요.

      1. Google Cloud 콘솔에서 이미지 페이지로 이동합니다.

        이미지로 이동

      2. 권한을 부여할 이미지를 선택합니다.

      3. 권한 열을 펼치려면 정보 패널 표시를 클릭합니다.

      4. 구성원을 하나 이상 추가하려면 주 구성원 추가를 클릭합니다.

      5. 새 주 구성원 필드에서 이미지를 공유할 ID의 이메일 주소를 입력합니다.

        예를 들면 다음과 같습니다.

        • Google 계정 이메일: test-user@gmail.com
        • Google 그룹: admins@googlegroups.com
        • 서비스 계정: server@example.gserviceaccount.com
        • Google Workspace 도메인: example.com
      6. 역할 목록에서 Compute Engine 위에 마우스 포인터를 올려놓고 스토리지 관리자를 선택하거나 커스텀 목록에서 커스텀 역할을 선택합니다.

      7. 선택사항: Google Cloud 리소스에 대한 사용자의 액세스를 추가로 제어하려면 조건부 역할 결합을 추가합니다.

      8. 변경사항을 저장합니다.

      프로젝트 또는 조직의 이미지를 삭제할 수 있는 권한을 부여하려면 다음 안내를 따르세요.

      1. 프로젝트 또는 조직의 IAM 페이지로 이동합니다.

        IAM으로 이동

      2. 액세스 권한 부여를 클릭합니다.

      3. 새 주 구성원 필드에서 액세스 권한을 부여할 ID의 이메일 주소를 입력합니다. 예를 들면 다음과 같습니다.

        • Google 계정 이메일: test-user@gmail.com
        • Google 그룹: admins@googlegroups.com
        • 서비스 계정: server@example.gserviceaccount.com
        • Google Workspace 도메인: example.com
      4. 역할 목록에서 Compute Engine 위에 마우스 포인터를 올려놓고 스토리지 관리자를 선택하거나 커스텀 목록에서 커스텀 역할을 선택합니다.

      5. 선택사항: Google Cloud 리소스에 대한 사용자의 액세스를 추가로 제어하려면 조건부 역할 결합을 추가합니다.

      6. 변경사항을 저장합니다.

      gcloud

      조직 수준에서 이미지를 삭제할 수 있는 권한을 부여하려면 gcloud organizations add-iam-policy-binding 명령어를 사용합니다.

      gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
          --member='MEMBER' \
          --role='ROLE'
      

      프로젝트 수준에서 이미지를 삭제할 수 있는 권한을 부여하려면 gcloud projects add-iam-policy-binding 명령어를 사용합니다.

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member='MEMBER' \
          --role='ROLE'
      

      특정 이미지를 삭제할 수 있는 권한을 부여하려면 gcloud compute images add-iam-policy-binding 명령어를 사용합니다.

      gcloud compute images add-iam-policy-binding IMAGE_NAME \
          --member='MEMBER' \
          --role='ROLE'
      

      다음을 바꿉니다.

      • ORGANIZATION_ID 또는 PROJECT_ID 또는 IMAGE_NAME: 12자리 숫자로 된 조직 ID, 프로젝트 ID 또는 이미지 이름(예: 123456578920, my-project-1 또는 my-custom-image)
      • MEMBER: 역할을 부여할 유효한 ID

        예를 들면 다음과 같습니다.

        • Google 계정 이메일: user:user@gmail.com
        • Google 그룹: group:admins@googlegroups.com
        • 서비스 계정: serviceAccount:server@example.gserviceaccount.com
        • Google Workspace 도메인: domain:example.com
      • ROLE: 이 ID에 할당할 역할(예: roles/compute.storageAdmin 역할 또는 roles/customImageDeletionRole과 같은 커스텀 역할)

      REST

      1. 리소스의 해당 getIamPolicy 메서드로 기존 정책을 읽습니다. 프로젝트의 경우 projects.getIamPolicy 메서드를 사용합니다.

        POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
        

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

        조직의 경우 organizations.getIamPolicy 메서드를 사용합니다.

        POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:getIamPolicy
        

        ORGANIZATION_ID를 12자리 숫자로 된 조직 ID로 바꿉니다.

        특정 이미지의 경우 images.getIamPolicy 메서드를 사용합니다.

        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
        

        다음을 바꿉니다.

        • PROJECT_ID: 프로젝트 ID입니다.
        • IMAGE_NAME: 이미지의 이름입니다.

        Compute Engine은 응답의 현재 정책을 반환합니다.

      2. 구성원과 연결된 역할을 추가 또는 삭제하려면 텍스트 편집기로 정책을 수정하면 됩니다. 구성원을 추가하려면 다음 형식을 사용하세요.

        • user:test-user@gmail.com
        • group:admins@example.com
        • serviceAccount:test123@example.domain.com
        • domain:example.domain.com

        예를 들어 user:test-email@example.comroles/compute.storageAdmin 역할을 부여하려면 다음 binding을 정책에 추가합니다.

        {
         "members": [
           "user:test-email@example.com"
         ],
         "role":"roles/compute.storageAdmin"
        }
        
      3. setIamPolicy 메서드를 사용하여 업데이트된 정책을 작성합니다.

        예를 들어 프로젝트 수준에서 정책을 설정하려면 project.setIamPolicy 메서드를 사용합니다. 요청 본문에 이전 단계에서 업데이트한 IAM 정책을 제공합니다.

        POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
        

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

      조직 내에서 커스텀 이미지를 공유할 수 있는 권한 부여

      프로젝트가 조직에 속한 경우 조직은 다른 프로젝트에 대한 액세스 수준이 다양한 여러 프로젝트를 가질 수 있습니다. 커스텀 이미지를 생성할 때 조직 내 다른 프로젝트의 다른 사용자와 이미지를 공유할 수 있습니다.

      Compute Engine은 이미지 관리에 사용할 수 있는 다음과 같은 사전 정의된 IAM 역할을 제공합니다.

      • Compute 이미지 사용자(roles/compute.imageUser): 이미지에 대한 다른 권한 없이 요청에 이미지를 나열하고 읽고 사용할 수 있는 권한입니다.
      • Compute 스토리지 관리자(roles/compute.storageAdmin): 디스크, 이미지, 스냅샷을 생성, 수정, 삭제할 수 있는 권한입니다.

      또는 자체적인 커스텀 IAM 역할을 만들 수도 있습니다.

      모든 커스텀 이미지를 호스팅하는 전용 단일 프로젝트에 해당 이미지를 보관하는 것이 좋습니다. 이렇게 하면 이러한 이미지 관리를 개선하고 특정 팀에게 필요한 이미지에만 액세스하도록 허용할 수 있습니다. 팀에게 전체 이미지 프로젝트에 대한 액세스 권한을 부여할 수도 있지만, 전체 이미지 프로젝트에 대한 팀 액세스 권한은 최소 권한의 원칙에 위배되므로 권장하지 않습니다.

      아래의 예시는 해당 그룹의 사용자가 이미지에 액세스할 수 있도록 그룹을 추가하는 방법을 보여줍니다.

      콘솔

      1. Google Cloud 콘솔에서 이미지 페이지로 이동합니다.

        이미지로 이동

      2. 다른 사용자와 공유할 이미지를 선택합니다.

      3. 권한 열을 펼치려면 정보 패널 표시를 클릭합니다.

      4. 구성원을 하나 이상 추가하려면 주 구성원 추가를 클릭합니다.

      5. 새 주 구성원 필드에서 이미지를 공유할 ID의 이메일 주소를 입력합니다.

        예를 들면 다음과 같습니다.

        • Google 계정 이메일: test-user@gmail.com
        • Google 그룹: admins@googlegroups.com
        • 서비스 계정: server@example.gserviceaccount.com
        • Google Workspace 도메인: example.com
      6. 역할 목록의 Compute Engine 위에 마우스 포인터를 올려놓고 이미지 사용자 또는 스토리지 관리자를 선택하거나 커스텀 역할을 선택합니다.

      7. 선택사항: Google Cloud 리소스에 대한 사용자의 액세스를 추가로 제어하려면 조건부 역할 결합을 추가합니다.

      8. 변경사항을 저장합니다.

      사용자가 Google Cloud 콘솔에서 공유 커스텀 이미지를 실행하도록 하려면 이미지 프로젝트에 대한 뷰어 IAM 역할(roles/viewer)을 사용자에게 부여합니다. 이 역할을 부여하면 공유 이미지가 이미지 선택 목록에 표시되는 데 도움이 됩니다.

      1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

        IAM으로 이동

      2. 액세스 권한 부여를 클릭합니다.

      3. 새 주 구성원 필드에서 이미지를 공유할 ID의 이메일 주소를 입력합니다. 예를 들면 다음과 같습니다.

        • Google 계정 이메일: test-user@gmail.com
        • Google 그룹: admins@googlegroups.com
        • 서비스 계정: server@example.gserviceaccount.com
        • Google Workspace 도메인: example.com
      4. 역할 목록에서 프로젝트 위에 마우스 포인터를 올려놓고 뷰어를 선택합니다.

      5. 선택사항: Google Cloud 리소스에 대한 사용자의 액세스를 추가로 제어하려면 조건부 역할 결합을 추가합니다.

      6. 변경사항을 저장합니다.

      gcloud

      특정 이미지의 IAM 정책을 업데이트하려면 gcloud compute images add-iam-policy-binding 명령어를 사용합니다.

      gcloud compute images add-iam-policy-binding IMAGE_NAME \
          --member='MEMBER' \
          --role='ROLE'
      

      다음을 바꿉니다.

      • IMAGE_NAME: 이미지의 이름(예: custom-centos-8)
      • MEMBER: 역할을 부여할 유효한 ID

        예를 들면 다음과 같습니다.

        • user:test-user@gmail.com
        • group:admins@example.com
        • serviceAccount:test123@example.domain.com
        • domain:example.domain.com
      • ROLE: roles/compute.imageUser, roles/compute.storageAdmin 또는 커스텀 역할 등 이 ID를 할당할 역할

      필요한 경우 images.list 요청에서 사용자가 공유 이미지를 볼 수 있도록 하려면 gcloud projects add-iam-policy-binding 명령어를 사용해 이미지 프로젝트의 뷰어 IAM 역할(roles/viewer)을 사용자에게 부여합니다. 사용자가 공유 이미지 목록을 볼 필요가 없는 경우에는 이 단계를 건너뜁니다.

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member='MEMBER' \
          --role='roles/viewer'
      

      REST

      1. 리소스의 getIamPolicy 메서드로 기존 정책을 읽습니다. 예를 들어 특정 이미지의 정책을 가져오려면 images.getIamPolicy 메서드를 사용합니다.

        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
        

        다음을 바꿉니다.

        • PROJECT_ID: 이 이미지가 속한 프로젝트의 프로젝트 ID입니다.
        • IMAGE_NAME: 이미지의 이름입니다.

        Compute Engine은 응답의 현재 정책을 반환합니다.

      2. 구성원과 연결된 역할을 추가하거나 삭제하려면 텍스트 편집기로 정책을 수정합니다. 구성원을 추가하려면 다음 형식을 사용하세요.

        • user:test-user@gmail.com
        • group:admins@example.com
        • serviceAccount:test123@example.domain.com
        • domain:example.domain.com

        예를 들어 test-email@example.comroles/compute.imageUser 권한을 부여하려면 다음 binding을 정책에 추가합니다.

        {
         "members": [
           "user:test-email@example.com"
         ],
         "role":"roles/compute.imageUser"
        }
        
      3. setIamPolicy 메서드를 사용하여 업데이트된 정책을 작성합니다. 예를 들어 특정 이미지에 대한 정책을 설정하려면 project.setIamPolicy 메서드를 사용합니다. 요청 본문에 이전 단계에서 업데이트한 IAM 정책을 제공합니다.

        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:setIamPolicy
        

        다음을 바꿉니다.

        • PROJECT_ID: 이 이미지가 속한 프로젝트의 프로젝트 ID입니다.
        • IMAGE_NAME: 이미지의 이름입니다.

      필요한 경우 images.list 요청에서 사용자가 공유 이미지를 볼 수 있도록 하려면 projects.setIamPolicy 메서드를 사용해 이미지 프로젝트의 뷰어 IAM 역할(roles/viewer)을 사용자에게 부여합니다. 사용자가 공유 이미지 목록을 볼 필요가 없는 경우에는 이 단계를 건너뜁니다.

      POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
      

      조직 간 커스텀 이미지 공유 권한 부여

      커스텀 이미지 카탈로그를 생성하면 조직 외부의 파트너, 사용자 또는 계약자와 이미지를 공유할 때 유용합니다. 조직 외부 사용자와 이미지를 공유하려면 조직 외부 사용자를 이미지 사용자로 프로젝트에 추가합니다.

      콘솔

      1. Google Cloud 콘솔에서 이미지 페이지로 이동합니다.

        이미지로 이동

      2. 다른 사용자와 공유할 이미지를 선택합니다.

      3. 권한 열을 펼치려면 정보 패널 표시를 클릭합니다.

      4. 구성원을 하나 이상 추가하려면 주 구성원 추가를 클릭합니다.

      5. 새 주 구성원 필드에서 이미지를 공유할 그룹의 이메일 주소를 입력합니다. 예를 들면 admins@example.com입니다.

      6. 역할 목록에서 Compute Engine 위에 마우스 포인터를 올려놓고 Compute 이미지 사용자를 선택합니다.

      7. 선택사항: Google Cloud 리소스에 대한 사용자의 액세스를 추가로 제어하려면 조건부 역할 결합을 추가합니다.

      8. 변경사항을 저장합니다.

      사용자가 Google Cloud 콘솔에서 공유 커스텀 이미지를 실행하도록 하려면 이미지 프로젝트에 대한 뷰어 IAM 역할(roles/viewer)을 사용자에게 부여합니다. 이 역할을 부여하면 공유 이미지가 이미지 선택 목록에 표시되는 데 도움이 됩니다.

      1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

        IAM으로 이동

      2. 액세스 권한 부여를 클릭합니다.

      3. 새 주 구성원 필드에서 이미지를 공유할 ID의 이메일 주소를 입력합니다. 예를 들면 admins@example.com입니다.

      4. 역할 목록에서 프로젝트 위에 마우스 포인터를 올려놓고 뷰어를 선택합니다.

      5. 선택사항: Google Cloud 리소스에 대한 사용자의 액세스를 추가로 제어하려면 조건부 역할 결합을 추가합니다.

      6. 변경사항을 저장합니다.

      gcloud

      사용자에게 roles/compute.imageUser 역할을 부여하려면 gcloud compute images add-iam-policy-binding 명령어를 사용합니다.

      gcloud compute images add-iam-policy-binding IMAGE_NAME \
          --member='MEMBER' \
          --role='roles/compute.imageUser'
      

      다음을 바꿉니다.

      • IMAGE_NAME: 이미지의 이름(예: custom-centos-8)
      • MEMBER: 역할을 부여할 유효한 ID(예: group:admins@example.com)

      필요한 경우 images.list 요청에서 사용자가 공유 이미지를 볼 수 있도록 하려면 gcloud projects add-iam-policy-binding 명령어를 사용해 이미지 프로젝트의 뷰어 IAM 역할(roles/viewer)을 사용자에게 부여합니다. 사용자가 공유 이미지 목록을 볼 필요가 없는 경우에는 이 단계를 건너뜁니다.

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member='MEMBER' \
          --role='roles/viewer'
      

      REST

      1. 리소스의 getIamPolicy 메서드로 기존 정책을 읽습니다. 예를 들어 특정 이미지의 정책을 가져오려면 images.getIamPolicy 메서드를 사용합니다.

        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
        

        다음을 바꿉니다.

        • PROJECT_ID: 이 이미지가 속한 프로젝트의 프로젝트 ID입니다.
        • IMAGE_NAME: 이미지의 이름입니다.

        Compute Engine은 응답의 현재 정책을 반환합니다.

      2. 구성원과 연결된 역할을 추가 또는 삭제하려면 텍스트 편집기로 정책을 수정하면 됩니다. 구성원을 추가하려면 다음 형식을 사용하세요.

        • user:test-user@gmail.com
        • group:admins@example.com
        • serviceAccount:test123@example.domain.com
        • domain:example.domain.com

        예를 들어 test-user@example.comroles/compute.imageUser 권한을 부여하려면 다음 binding을 정책에 추가합니다.

        {
          "members": [
            "user:test-user@example.com"
          ],
          "role":"roles/compute.imageUser"
        }
        
      3. setIamPolicy 메서드를 사용하여 업데이트된 정책을 작성합니다. 예를 들어 특정 이미지에 대한 정책을 설정하려면 images.setIamPolicy 메서드를 사용합니다. 요청 본문에 이전 단계에서 업데이트한 IAM 정책을 제공합니다.

        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:setIamPolicy
        

        다음을 바꿉니다.

        • PROJECT_ID: 이 이미지가 속한 프로젝트의 프로젝트 ID입니다.
        • IMAGE_NAME: 이미지의 이름입니다.

        필요한 경우 images.list 요청에서 사용자가 공유 이미지를 볼 수 있도록 하려면 projects.setIamPolicy 메서드를 사용해 이미지 프로젝트의 뷰어 IAM 역할(roles/viewer)을 사용자에게 부여합니다. 사용자가 공유 이미지 목록을 볼 필요가 없는 경우에는 이 단계를 건너뜁니다.

        POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
        

      커스텀 이미지를 공개적으로 공유할 수 있는 권한 부여

      조직이나 프로젝트에 속해 있는지 여부에 관계없이 인증된 모든 Compute Engine 사용자와 커스텀 이미지를 공유할 수 있습니다.

      이미지와 같은 리소스는 모든 인증된 사용자와만 공유할 수 있으며, 프로젝트 또는 조직을 인증된 모든 사용자와 공유할 수는 없습니다. 이러한 제한사항과 리소스 계층 구조를 사용하면 조직이 실수로 모든 프로젝트를 인증된 모든 Compute Engine 사용자와 공유하는 것을 방지할 수 있습니다.

      다음 예시에서는 인증된 모든 Compute Engine 사용자에게 커스텀 이미지에 대한 Compute 이미지 사용자 역할(roles/compute.imageUser)을 부여하는 방법을 보여줍니다.

      gcloud

      이미지를 공개로 설정하려면 gcloud compute images add-iam-policy-binding 명령어를 사용합니다.

      gcloud compute images add-iam-policy-binding IMAGE_NAME \
          --member='allAuthenticatedUsers' \
          --role='roles/compute.imageUser'
      

      IMAGE_NAME을 리소스 이름으로 바꿉니다(예: my_image).

      REST

      1. getIamPolicy 메서드로 기존 정책을 읽습니다. 예를 들어 특정 이미지의 정책을 가져오려면 images.getIamPolicy 메서드를 사용합니다.

        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
        

        다음을 바꿉니다.

        • PROJECT_ID: 이 이미지가 속한 프로젝트의 프로젝트 ID입니다.
        • IMAGE_NAME: 이미지의 이름입니다.

        Compute Engine은 응답의 현재 정책을 반환합니다.

      2. 구성원과 연결된 역할을 추가하거나 삭제하려면 텍스트 편집기로 정책을 수정합니다.

        {
         "members": [
           "allAuthenticatedUsers"
         ],
         "role":"roles/compute.imageUser"
        }
        
      3. setIamPolicy 메서드를 사용하여 업데이트된 정책을 작성합니다. 예를 들어 특정 이미지에 대한 정책을 설정하려면 images.setIamPolicy 메서드를 사용합니다. 요청 본문에 이전 단계에서 업데이트한 IAM 정책을 제공합니다.

        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:setIamPolicy
        

        다음을 바꿉니다.

        • PROJECT_ID: 이 이미지가 속한 프로젝트의 프로젝트 ID입니다.
        • IMAGE_NAME: 이미지의 이름입니다.

      관리형 인스턴스 그룹에 이미지 액세스 권한 부여

      Compute Engine에서는 VM 그룹을 관리형 또는 비관리형 인스턴스 그룹으로 만들 수 있습니다. 관리형 인스턴스 그룹(MIG)을 만들면 Compute Engine은 Google API 서비스 에이전트를 사용하여 Compute Engine API를 호출하고 비정상 VM을 다시 만들고 VM을 업데이트하는 등 그룹과 관련된 작업을 수행합니다.

      다른 프로젝트의 이미지를 사용해 MIG를 만들려면 MIG를 만드는 프로젝트에 속한 API 서비스 계정에 Compute 이미지 사용자 역할(roles/compute.imageUser)을 부여합니다. 예를 들면 다음과 같습니다.

      1. 프로젝트 A는 프로젝트 B가 소유한 이미지를 사용하여 MIG를 만들려고 합니다.
      2. 프로젝트 B는 프로젝트 A의 서비스 계정에 Compute 이미지 사용자 역할을 부여합니다.
      3. 이제 프로젝트 A는 프로젝트 B의 이미지를 사용하여 MIG를 만들 수 있습니다.

      Compute 이미지 사용자 역할을 부여한 후에는 관리형 그룹의 인스턴스 템플릿 생성 시 Console 또는 이미지의 URL을 사용하여 다른 프로젝트에서 이미지에 액세스할 수 있습니다.

      서비스 계정의 이메일 주소 가져오기

      1. Google Cloud 콘솔에서 서비스 계정에 액세스 권한을 부여할 프로젝트의 IAM 페이지로 이동합니다.

        IAM으로 이동

      2. 메시지가 나타나면 목록에서 프로젝트를 선택합니다.

      3. 다음과 같은 형식의 이메일 주소를 사용하는 Google API 서비스 에이전트를 찾습니다.

        PROJECT_NUMBER@cloudservices.gserviceaccount.com
        

      서비스 계정의 이메일 주소를 가져온 후 다음 섹션 중 하나로 이동하면 됩니다.

      MIG에 프로젝트의 모든 이미지에 대한 액세스 권한 부여

      이제 서비스 계정의 이메일 주소를 보유하고 있으므로 다른 프로젝트에 주소를 추가하고 Compute 이미지 사용자 역할(roles/compute.imageUser)을 부여할 수 있습니다.

      콘솔

      1. Google Cloud 콘솔에서 이미지 프로젝트의 IAM 페이지로 이동합니다.

        IAM으로 이동

      2. 신규 회원을 추가하려면 액세스 권한 부여를 클릭합니다.

      3. 새 주 구성원 필드에 서비스 계정 이메일 주소를 추가합니다.

      4. 역할 목록에서 Compute 위에 마우스 포인터를 올려놓고 Compute 이미지 사용자를 선택합니다.

      5. 선택사항: Google Cloud 리소스에 대한 사용자의 액세스를 추가로 제어하려면 조건부 역할 결합을 추가합니다.

      6. 저장을 클릭합니다.

      7. 서비스 계정의 프로젝트로 다시 전환합니다.

      이제 이미지 프로젝트의 이미지를 기반으로 인스턴스 템플릿을 생성하고 인스턴스 템플릿을 기반으로 MIG를 만들 수 있습니다.

      gcloud

      gcloud projects add-iam-policy-binding 명령어를 사용하여 이미지 프로젝트에서 서비스 계정을 추가합니다.

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' --role='roles/compute.imageUser'
      

      다음을 바꿉니다.

      • PROJECT_ID: 공유할 이미지가 포함된 프로젝트의 ID
      • SERVICE_ACCOUNT_EMAIL: 서비스 계정의 이메일

      이제 이미지 프로젝트의 이미지를 기반으로 인스턴스 템플릿을 생성하고 인스턴스 템플릿을 기반으로 MIG를 만들 수 있습니다.

      REST

      1. projects.getIamPolicy 메서드를 사용하여 이미지 프로젝트의 IAM 정책을 가져옵니다.

         POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
         

        PROJECT_ID를 이미지 프로젝트의 프로젝트 ID로 바꿉니다.

      2. 서비스 계정에 roles/compute.imageUser 역할을 부여하려면 텍스트 편집기로 정책을 수정합니다.

        {
          "bindings": [
             {
              "role": "roles/compute.imageUser",
              "members": [
                "serviceAccount:SERVICE_ACCOUNT_EMAIL"
              ]
            }
          ]
        }
        

        SERVICE_ACCOUNT_EMAIL을 서비스 계정 이메일로 바꿉니다.

      3. projects.setIamPolicy를 사용하여 업데이트된 정책을 작성합니다. 요청 본문에 이전 단계에서 업데이트한 IAM 정책을 제공합니다.

        POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
        

        PROJECT_ID를 이미지 프로젝트의 제품 ID로 바꿉니다.

        이제 이미지 프로젝트의 이미지를 기반으로 인스턴스 템플릿을 생성하고 인스턴스 템플릿을 기반으로 MIG를 만들 수 있습니다.

      MIG에 프로젝트의 특정 이미지에 대한 액세스 권한 부여

      이제 서비스 계정의 이메일 주소를 보유하고 있으므로 다른 프로젝트에 주소를 추가하고 특정 이미지의 Compute 이미지 사용자 역할(roles/compute.imageUser)을 부여할 수 있습니다.

      콘솔

      1. Google Cloud 콘솔에서 이미지 프로젝트의 이미지 페이지로 이동합니다.

        이미지로 이동

      2. 공유하려는 이미지 옆에 있는 체크박스를 선택합니다.

      3. 권한 열을 펼치려면 정보 패널 표시를 클릭합니다.

      4. 권한 패널에서 주 구성원 추가를 클릭합니다.

      5. 새 주 구성원 필드에 이미지를 공유할 서비스 계정 이메일을 입력합니다. test123@example.domain.com).

      6. 역할 목록에서 Compute을 선택하고 Compute 이미지 사용자를 선택합니다.

      7. 선택사항: Google Cloud 리소스에 대한 사용자의 액세스를 추가로 제어하려면 조건부 역할 결합을 추가합니다.

      8. 저장을 클릭합니다.

      9. 서비스 계정의 프로젝트로 다시 전환합니다.

      이제 이미지 프로젝트의 이미지를 기반으로 인스턴스 템플릿을 생성하고 인스턴스 템플릿을 기반으로 MIG를 만들 수 있습니다.

      gcloud

      서비스 계정에 특정 이미지에 대한 액세스 권한을 부여하려면 gcloud compute images add-iam-policy-binding 명령어를 사용합니다.

      gcloud compute images add-iam-policy-binding IMAGE_NAME \
          --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
          --role='roles/compute.imageUser'
      

      다음을 바꿉니다.

      • IMAGE_NAME: 공유할 이미지 이름
      • SERVICE_ACCOUNT_EMAIL: 서비스 계정의 이메일

      이제 이미지 프로젝트의 이미지를 기반으로 인스턴스 템플릿을 생성하고 인스턴스 템플릿을 기반으로 MIG를 만들 수 있습니다.

      REST

      1. images.getIamPolicy 메서드를 사용하여 이미지의 IAM 정책을 가져옵니다.

        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
        

        다음을 바꿉니다.

        • PROJECT_ID: 이미지 프로젝트의 프로젝트 ID
        • IMAGE_NAME: 공유할 이미지의 이름
      2. 서비스 계정에 roles/compute.imageUser 역할을 부여하려면 텍스트 편집기로 정책을 수정합니다.

        {
          "bindings": [
             {
              "role": "roles/compute.imageUser",
              "members": [
                "serviceAccount:SERVICE_ACCOUNT_EMAIL"
              ]
            }
          ]
        }
        

        SERVICE_ACCOUNT_EMAIL을 서비스 계정 이메일로 바꿉니다.

      3. images.setIamPolicy 메서드를 사용하여 업데이트된 정책을 작성합니다. 요청 본문에 이전 단계에서 업데이트한 IAM 정책을 제공합니다.

        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:setIamPolicy
        

        다음을 바꿉니다.

        • PROJECT_ID: 이미지 프로젝트의 프로젝트 ID
        • IMAGE_NAME: 공유할 이미지의 이름

        이제 이미지 프로젝트의 이미지를 기반으로 인스턴스 템플릿을 생성하고 인스턴스 템플릿을 기반으로 MIG를 만들 수 있습니다.

      공유 이미지 및 스냅샷 사용 제어

      이미지를 다른 사용자와 공유한 후에는 해당 사용자가 조직 내에서 리소스를 사용하는 위치를 제어할 수 있습니다. constraints/compute.storageResourceUseRestrictions 제약조건을 설정하여 사용자가 스토리지 리소스를 사용할 수 있는 프로젝트를 정의합니다.

      이러한 제약 조건을 설정하려면 조직 정책을 수정할 권한이 있어야 합니다. 예를 들어 resourcemanager.organizationAdmin 역할에 이러한 제약조건을 설정할 권한이 있습니다.

      1. gcloud organization list 명령어를 사용하여 조직의 조직 ID를 찾습니다.

        gcloud organizations list
        
      2. gcloud resource-manager org-policies describe 명령어를 사용하여 조직의 기존 정책 설정을 가져옵니다.

        gcloud resource-manager org-policies describe \
            compute.storageResourceUseRestrictions \
            --organization ORGANIZATION_ID > org-policy.yaml
        

        ORGANIZATION_ID를 12자리 숫자로 된 조직 ID로 바꿉니다.

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

        constraint: compute.storageResourceUseRestrictions
        listPolicy:
          allowedValues:
            - under:organization/organization-id
        
      4. gcloud resource-manager org-policies set-policy 명령어를 사용하여 조직에 org-policy.yaml 파일을 적용합니다.

        gcloud resource-manager org-policies set-policy \
           --organization=ORGANIZATION_ID org-policy.yaml
        

        ORGANIZATION_ID를 12자리 숫자로 된 조직 ID로 바꿉니다.

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

      다른 프로젝트의 이미지 사용

      다른 프로젝트의 하나 이상의 이미지에 대한 액세스 권한을 부여받은 경우 요청에 이미지 프로젝트를 지정하여 프로젝트의 이미지에 액세스할 수 있습니다.

      예를 들어 다른 프로젝트의 공유 이미지를 사용하여 VM을 만들려면 다음 단계를 수행합니다.

      콘솔

      1. Google Cloud 콘솔에서 인스턴스 만들기 페이지로 이동합니다.

        인스턴스 만들기로 이동

      2. VM의 이름을 지정합니다. 자세한 내용은 리소스 이름 지정 규칙을 참조하세요.
      3. 선택사항: 이 VM의 영역을 변경합니다. 모두를 선택하면 Google에서 머신 유형과 가용성을 기반으로 영역을 자동으로 선택합니다.
      4. VM의 머신 구성을 선택합니다.
      5. 부팅 디스크 섹션에서 변경을 클릭하여 부팅 디스크를 구성한 후 다음을 수행합니다.
        1. 커스텀 이미지 탭을 선택합니다.
        2. 이미지 프로젝트를 선택하려면 프로젝트 선택을 클릭한 후 다음을 수행합니다.
          1. 이미지가 포함된 프로젝트를 선택합니다.
          2. 열기를 클릭합니다.
        3. 이미지 목록에서 가져올 이미지를 클릭합니다.
        4. 부팅 디스크의 유형과 크기를 선택합니다.
        5. 부팅 디스크 옵션을 확인하려면 선택을 클릭합니다.
      6. VM에 HTTP 또는 HTTPS 트래픽을 허용하려면 방화벽 섹션에서 HTTP 트래픽 허용이나 HTTPS 트래픽 허용을 선택합니다.

        Google Cloud 콘솔은 VM에 네트워크 태그를 추가하고 tcp:80(HTTP) 또는 tcp:443(HTTPS)에서 들어오는 모든 트래픽을 허용하는 인그레스 방화벽 규칙을 만듭니다. 네트워크 태그는 방화벽 규칙을 VM과 연결합니다. 자세한 내용은 Cloud 차세대 방화벽 문서의 방화벽 규칙 개요를 참조하세요.

      7. VM을 시작하고 만들려면 만들기를 클릭합니다.

      gcloud

      1. In the Google Cloud console, activate Cloud Shell.

        Activate Cloud Shell

        At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

      2. gcloud compute instances create command를 사용하여 VM을 만들고 --image--image-project 플래그를 사용하여 이미지 이름과 이미지가 상주하는 프로젝트를 지정합니다.

        gcloud compute instances create VM_NAME \
                --image=IMAGE \
                --image-project=IMAGE_PROJECT
            

        다음을 바꿉니다.

        • VM_NAME: 새 VM의 이름입니다.
        • IMAGE: 이미지의 이름입니다.
        • IMAGE_PROJECT: 이미지가 속한 프로젝트입니다.

        명령어가 정상적으로 실행되면 gcloud에서 새 VM의 속성으로 응답합니다.

            Created [https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-b/instances/example-instance].
            NAME                 ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
            example-instance     us-central1-b  e2-standard-2               10.240.0.4   104.198.53.60  RUNNING

      Terraform

      Terraform에서 공유 이미지를 사용하여 VM을 만드는 프로세스는 공개적으로 사용 가능한 이미지로 VM을 만드는 프로세스와 동일합니다.

      1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

        VM 인스턴스로 이동

      2. 인스턴스 만들기를 클릭합니다.
      3. 원하는 매개변수를 지정합니다.
      4. 페이지 상단 또는 하단에서 상응하는 코드를 클릭한 후 Terraform 탭을 클릭하여 Terraform 코드를 확인합니다.

      REST

      API에서 공유 이미지를 사용하여 VM을 만드는 프로세스는 공개적으로 사용 가능한 이미지로 VM을 만드는 프로세스와 동일합니다. 공유 이미지에서 VM을 만들려면 instances.insert 메서드를 사용합니다.

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
      
      {
         "machineType":"zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
         "name":"VM_NAME",
         
         "disks":[
            {
               "initializeParams":{
                  "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE"
               },
               "boot":true
            }
         ],
         
         
         "networkInterfaces":[
            {
               "network":"global/networks/NETWORK_NAME"
            }
         ],
         
        
         "shieldedInstanceConfig":{
            "enableSecureBoot":"ENABLE_SECURE_BOOT"
         }
      }
      

      다음을 바꿉니다.

      • PROJECT_ID: VM을 만들 프로젝트의 ID
      • ZONE: VM을 만들 영역
      • MACHINE_TYPE_ZONE: 새 VM에 사용할 머신 유형이 포함된 영역
      • MACHINE_TYPE: 새 VM의 머신 유형(사전 정의 또는 커스텀)
      • VM_NAME: 새 VM의 이름
      • IMAGE_PROJECT: 공유 이미지가 포함된 프로젝트의 이름
      • IMAGE 또는 IMAGE_FAMILY: 다음 중 하나를 지정합니다.
        • IMAGE: 공유 이미지 이름. 예를 들면 "sourceImage": "projects/finance-project-1234/global/images/finance-debian-image-v2"입니다.
        • IMAGE_FAMILY: 공유 이미지가 커스텀 이미지 계열의 일부로 생성된 경우 커스텀 이미지 계열을 지정합니다.

          이렇게 하면 커스텀 이미지 계열에서 지원 중단되지 않은 최신 OS 이미지로 VM이 생성됩니다. 예를 들어 "sourceImage": "projects/finance-project-1234/global/images/family/finance-debian-family"를 지정하면 Compute Engine이 커스텀 finance-debian-family 이미지 계열에서 최신 버전의 OS 이미지를 사용하여 VM을 만듭니다.

      • NETWORK_NAME: VM에 사용하려는 VPC 네트워크입니다. 기본 네트워크를 사용하도록 default를 지정할 수 있습니다.
      • ENABLE_SECURE_BOOT: 선택사항: 보안 VM 기능을 지원하는 이미지를 선택한 경우 기본적으로 Compute Engine은 vTPM(Virtual Trusted Platform Module)무결성 모니터링을 사용 설정합니다. Compute Engine은 기본적으로 보안 부팅을 사용 설정하지 않습니다.

        enableSecureBoottrue를 지정하면 Compute Engine은 보안 VM 기능 3가지를 모두 사용 설정하여 VM을 만듭니다. Compute Engine에서 VM을 시작한 후 보안 VM 옵션을 수정하려면 VM을 중지해야 합니다.

      다른 프로젝트의 이미지에서 부팅 영구 디스크를 만들 수도 있습니다. 이미지로 부팅 디스크를 만드는 방법에 대한 자세한 내용은 독립형 부팅 영구 디스크 만들기를 참조하세요.

      공유 이미지에 대한 액세스 권한 취소

      사용자가 Compute Engine 리소스에 더 이상 액세스할 필요가 없는 경우 Google Cloud 콘솔, Google Cloud CLI 또는 REST를 사용하여 액세스 권한을 취소합니다.

      콘솔

      1. Google Cloud 콘솔에서 이미지 프로젝트의 이미지 페이지로 이동합니다.

        이미지로 이동

      2. 업데이트할 이미지 옆에 있는 체크박스를 선택합니다.

      3. 권한 열을 펼치려면 정보 패널 표시를 클릭합니다.

      4. 사용자를 삭제할 역할을 펼칩니다.

      5. 이 역할에서 사용자를 삭제하려면 삭제를 클릭합니다.

      gcloud

      이미지의 역할에서 사용자를 삭제하려면 gcloud compute images remove-iam-policy-binding 명령어--member--role 플래그와 함께 사용합니다.

      gcloud compute images remove-iam-policy-binding IMAGE_NAME \
          --member='MEMBER' \
          --role='ROLE'
      

      다음을 바꿉니다.

      • IMAGE_NAME: 이미지의 이름(예: my_image)
      • MEMBER: 삭제할 ID

        user|group|serviceAccount:email 또는 domain:domain 형식이어야 합니다. 예를 들면 다음과 같습니다.

        • user:test-user@gmail.com
        • group:admins@example.com
        • serviceAccount:test123@example.domain.com
        • domain:example.domain.com
      • ROLE: ID를 삭제할 역할

      베타 버전인 리소스에 대한 액세스 권한을 취소하려면 대신 gcloud beta compute 명령어를 사용합니다.

      REST

      1. images.getIamPolicy 메서드로 기존 정책을 읽습니다.

        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
        

        다음을 바꿉니다.

        • PROJECT_ID: 이미지가 속한 프로젝트 ID입니다.
        • IMAGE_NAME: 이미지의 이름입니다.

        Compute Engine은 응답의 현재 정책을 반환합니다.

      2. 구성원과 연결된 역할을 삭제하려면 텍스트 편집기로 정책을 수정합니다.

      3. images.setIamPolicy 메서드를 사용하여 업데이트된 정책을 작성합니다. 요청 본문에 이전 단계에서 업데이트한 IAM 정책을 제공합니다.

        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/global/images/IMAGE_NAME:setIamPolicy
        

        다음을 바꿉니다.

        • PROJECT_ID: 이미지가 속한 프로젝트 ID입니다.
        • IMAGE_NAME: 이미지의 이름입니다.

      다음 단계