사용자 지정 이미지에 허용된 사용 표현식 추가하기

사용자 지정 이미지에 허용된 사용 표현식을 사용하여 이미지의 기능과 제한 사항을 정의하고 서버를 만드는 동안 호환되는 이미지 및 프로필 조합을 찾을 수 있습니다.

가상 서버 인스턴스 또는 베어메탈 서버를 프로비저닝할 때 허용된 사용 표현식을 사용하여 어떤 프로필, 이미지 및 서버 설정을 함께 사용할 수 있는지 구성할 수 있습니다. 가상 서버 인스턴스 또는 베어메탈 서버를 만들기 위해 선택할 때 정의된 사용 허용 표현식이 있는 사용자 지정 이미지를 사용하는 경우 해당 표현식과 호환되는 프로필을 결정할 수 있습니다.

허용된 사용 표현식이 있는 사용자 지정 이미지가 있는 가상 서버 인스턴스 또는 베어메탈 서버를 생성하는 동안 허용된 사용 속성에 제공된 정보를 잠재적인 가상 서버 인스턴스 또는 베어메탈 서버 속성과 비교하여 해당 사용자 지정 이미지를 가상 서버 인스턴스 또는 베어메탈 서버 생성에 사용할 수 있는지 여부를 결정합니다.

사용자 지정 이미지, 볼륨의 이미지, 분리된 부팅 볼륨 또는 부팅 볼륨의 스냅샷에 대한 허용 사용 표현식을 정의할 수 있습니다. IBM Cloud® Virtual Private Cloud 은 모든 스톡 이미지에 대한 허용 사용 표현식을 설정하지만 사용자가 만든 모든 사용자 지정 이미지에 대해 정의할 수도 있습니다. 기본값은 허용된 사용 표현식이 true로 평가되어 사용자 지정 이미지를 모든 잠재적 서버 프로비저닝에 사용할 수 있음을 의미합니다. 특정 상황에서 사용자 지정 이미지를 사용하지 않으려면 허용된 사용 표현식을 정의하거나 편집해야 합니다.

사용자 지정 이미지 및 비공개 카탈로그와 공유되는 이미지의 경우 IBM Cloud VPC 에서 이미지를 만들 때 허용되는 사용 표현식을 정의할 수 있습니다. 볼륨, 분리된 부팅 볼륨 및 부팅 볼륨의 스냅샷의 이미지의 경우 기본적으로 소스에서 허용된 사용 표현식이 상속됩니다. 그러나 리소스를 만들 때 이러한 표현식을 재정의할 수 있습니다. 모든 이미지, 부팅 볼륨 및 부팅 볼륨의 스냅샷의 경우, 생성 후 허용된 사용 표현식을 업데이트할 수 있습니다.

x86 가상 서버 프로필에 대한 자세한 내용과 사용자 지정 이미지에 사용할 허용된 사용 표현식을 정의하기 위한 정보를 얻으려면 x86-64 인스턴스 프로필을 참조하세요. x86-64 베어메탈 서버 프로필에 대한 자세한 내용은 x86-64 베어메탈 서버 프로필을 참조하세요.

허용된 사용 표현식을 정의하는 데 필요한 IAM 권한

작업하는 리소스 유형에 따라 허용된 사용 표현식을 정의하려면 다음 권한 중 하나 이상이 있어야 합니다.

  • is.image.image.manage-allowed-use 사용자 지정 이미지, 비공개 카탈로그에서 관리하는 이미지 및 볼륨의 이미지의 경우
  • is.volume.volume.manage-allowed-use 부팅 볼륨의 경우
  • is.snapshot.snapshot.manage-allowed-use 부팅 볼륨의 스냅샷을 위해

UI를 사용하여 허용된 사용 표현식 정의하기

UI를 사용하여 이미지를 만들 때 Advanced Options 영역에서 허용된 사용 표현식 세부 정보를 추가할 수 있습니다. 기존 이미지를 보고 있는 경우 이미지 세부 정보에는 Virtual server expressionBare metal server expression 이 포함됩니다. 이러한 필드 중 하나에서 편집을 클릭하여 허용된 사용 표현식 텍스트 상자를 엽니다.

허용된 사용 표현식 섹션은 다음 표에 설명된 대로 표현식을 추가할 수 있는 텍스트 상자입니다. 가상 서버 인스턴스 및 베어메탈 서버에 대한 허용된 사용 표현식 세부 정보는 다음 표를 참조하세요.

가상 서버 인스턴스 UI 허용 사용 표현식
가상 서버 인스턴스 UI의 허용된 사용 표현식 옵션
허용된 사용 표현식 표현식 변수 유형
가상 서버 표현식 gpu.count
가상 서버 인스턴스에 할당된 GPU 수를 나타냅니다.
정수
gpu.manufacturer
GPU 제조업체를 나타냅니다.
대소문자 구분 문자열
gpu.memory
GiB 의 전체 GPU 메모리 양을 나타냅니다.
정수
gpu.model
GPU 모델을 나타냅니다.
대소문자 구분 문자열
enable_secure_boot
가상 서버 인스턴스에서 보안 부팅이 활성화되어 있는지 여부를 나타냅니다.
부울
베어메탈 서버 UI 허용 사용 표현식
베어 메탈 서버 UI에서 허용되는 표현식 옵션
허용된 사용 표현식 표현식 변수 유형
베어메탈 서버 표현식 enable_secure_boot
베어메탈 서버에 보안 부팅이 활성화되어 있는지 여부를 나타냅니다.
부울

다음 예는 GPU 제조업체가 Nvidia인 경우 GPU 개수가 1보다 큰 가상 서버 인스턴스에 대해 허용되는 사용 표현식입니다. 보안 부팅이 필요합니다.

gpu.count > 1 && gpu.manufacturer == 'nvidia' && enable_secure_boot

허용된 사용 표현식을 만드는 데 사용되는 공통 표현식 언어에 대한 자세한 내용은 Google 의 CEL 언어 정의 참조를 참조하세요

CLI를 사용하여 허용된 사용 표현식 정의하기

가상 서버 인스턴스 및 베어메탈 서버에 대한 허용된 사용 표현식 세부 정보는 다음 표를 참조하세요.

가상 서버 인스턴스 CLI 허용 사용 표현식
가상 서버 인스턴스 CLI의 허용된 사용 표현식 옵션
허용된 사용 옵션 표현식 변수 유형
--allowed-use-instance gpu.count
가상 서버 인스턴스에 할당된 GPU 수를 나타냅니다.
정수
gpu.manufacturer
GPU 제조업체를 나타냅니다.
대소문자 구분 문자열
gpu.memory
GiB 의 전체 GPU 메모리 양을 나타냅니다.
정수
gpu.model
GPU 모델을 나타냅니다.
대소문자 구분 문자열
enable_secure_boot
가상 서버 인스턴스에서 보안 부팅이 활성화되어 있는지 여부를 나타냅니다.
부울
베어메탈 서버 CLI 허용 사용 표현식
베어 메탈 서버 CLI의 허용된 사용 표현식 옵션
허용된 사용 옵션 표현식 변수 유형
--allowed-use-bare-metal-server enable_secure_boot
베어메탈 서버에 보안 부팅이 활성화되어 있는지 여부를 나타냅니다.
부울

다음 코드 예시는 CLI를 사용하여 새 사용자 지정 이미지를 만들 때 허용된 사용 표현식 옵션을 사용하는 방법을 보여줍니다. 이 예에서는 베어 메탈 서버에 보안 부팅을 사용하도록 설정하고 가상 서버 인스턴스의 모든 프로비저닝을 허용하도록 이미지를 설정합니다.

ibmcloud is image-create my-ubuntu-20-amd64 --file cos://us-south/custom-image-vpc-bucket/customImage-0.qcow2 --os-name ubuntu-20-04-amd64 --allowed-use-bare-metal-server "enable_secure_boot==true" --allowed-use-instance true

다음 코드 예시는 CLI를 사용하여 기존 사용자 지정 이미지를 업데이트할 때 허용된 사용 표현식 옵션을 사용하는 방법을 보여줍니다. 이 예는 베어 메탈 서버와 가상 서버 인스턴스 모두에 대해 보안 부팅을 사용하도록 이미지를 업데이트하는 것입니다.

ibmcloud is image-update r006-c9da1575-20cd-4412-9269-8ed08d3ac278 --allowed-use-bare-metal-server enable_secure_boot==true --allowed-use-instance enable_secure_boot==true

CLI 허용 사용 표현식 옵션 및 변수에 대한 자세한 내용은 VPC CLI 참조를 참조하세요: 이미지를 참조하세요. 허용된 사용 표현식을 만드는 데 사용되는 공통 표현식 언어에 대한 자세한 내용은 Google 의 CEL 언어 정의 참조를 참조하세요

API를 사용하여 허용된 사용 표현식 정의하기

가상 서버 인스턴스 및 베어메탈 서버에 대한 허용된 사용 표현식 세부 정보는 다음 표를 참조하세요.

가상 서버 인스턴스 API 허용 사용 표현식
가상 서버 인스턴스 API의 허용된 사용 표현식 옵션
허용된 사용 속성 허용된 사용 하위 속성 표현식 변수 유형
allowed_use instance gpu.count
가상 서버 인스턴스에 할당된 GPU 수를 나타냅니다.
정수
gpu.manufacturer
GPU 제조업체를 나타냅니다.
대소문자 구분 문자열
gpu.memory
GiB 의 전체 GPU 메모리 양을 나타냅니다.
정수
gpu.model
GPU 모델을 나타냅니다.
대소문자 구분 문자열
enable_secure_boot
가상 서버 인스턴스에서 보안 부팅이 활성화되어 있는지 여부를 나타냅니다.
부울
베어메탈 서버 API 허용 사용 표현식
베어 메탈 서버 API 허용 사용 표현식 옵션
허용된 사용 속성 허용된 사용 하위 속성 표현식 변수 유형
allowed_use bare_metal_server enable_secure_boot
베어메탈 서버에 보안 부팅이 활성화되어 있는지 여부를 나타냅니다.
부울

허용된 사용 표현식을 사용하여 새 사용자 지정 이미지를 만들려면 POST /images API 명령을 사용합니다. 다음 예제에서는 GPU 제조업체가 Nvidia인 경우 GPU 수가 1보다 큰 가상 서버 인스턴스에 대해 허용된 사용 표현식을 사용하여 새 사용자 지정 이미지를 생성합니다. 보안 부팅이 필요합니다. 베어메탈 서버 허용 사용 표현식이 false로 설정되어 있으면 이미지가 베어메탈 서버 프로비저닝에 사용되지 않습니다.

curl -X POST "$vpc_api_endpoint/v1/images?version=$today&generation=2" -H "Authorization: Bearer $iam_token" -d '{
      "name": "my-image",
      "file": {
        "href": "cos://us-south/my-bucket/my-image.qcow2"
      },
      "operating_system": {
        "name": "debian-9-amd64"
      },
      "allowed_use": {
         "instance": "gpu.count > 1 && gpu.manufacturer == \"nvidia\" && enable_secure_boot",
         "bare_metal_server": "false"
      }
    }'

허용된 사용 표현식을 사용하여 기존 사용자 지정 이미지를 업데이트하려면 PATCH /images API 명령을 사용합니다. 다음 예제에서는 GPU 제조업체가 Nvidia인 경우 GPU 수가 1보다 큰 가상 서버 인스턴스에 대한 허용된 사용 표현식을 사용하여 기존 사용자 지정 이미지를 업데이트합니다. 보안 부팅이 필요합니다. 베어메탈 서버 허용 사용 표현식이 false로 설정되어 있으면 이미지가 베어메탈 서버 프로비저닝에 사용되지 않습니다.

curl -X PATCH "$vpc_api_endpoint/v1/images/$image_id?version=$today&generation=2" -H 'Content-Type: application/json' -H "Authorization: Bearer $iam_token"  -d '{
"allowed_use": {
  "instance": "gpu.count > 1 && gpu.manufacturer == \"nvidia\" && enable_secure_boot",
  "bare_metal_server": "false"
  }
}'

API allowed_use 속성 및 하위 속성에 대한 자세한 내용은 가상 프라이빗 클라우드 API를 참조하세요: 이미지 만들기가상 사설 클라우드 API를 참조하세요: 이미지 업데이트를 참조하세요. 허용된 사용 표현식을 만드는 데 사용되는 공통 표현식 언어에 대한 자세한 내용은 Google 의 CEL 언어 정의 참조를 참조하세요

테라폼을 사용하여 허용된 사용 표현식 정의하기

가상 서버 인스턴스 및 베어메탈 서버에 대한 허용된 사용 표현식 세부 정보는 다음 표를 참조하세요.

가상 서버 인스턴스 Terraform 허용 사용 표현식
가상 서버 인스턴스에 대한 Terraform 허용 사용 표현식 옵션
허용된 사용 속성 허용된 사용 하위 속성 표현식 변수 유형
allowed_use instance gpu.count
가상 서버 인스턴스에 할당된 GPU 수를 나타냅니다.
정수
gpu.manufacturer
GPU 제조업체를 나타냅니다.
대소문자 구분 문자열
gpu.memory
GiB 의 전체 GPU 메모리 양을 나타냅니다.
정수
gpu.model
GPU 모델을 나타냅니다.
대소문자 구분 문자열
enable_secure_boot
가상 서버 인스턴스에서 보안 부팅이 활성화되어 있는지 여부를 나타냅니다.
부울
베어메탈 서버 Terraform 허용 사용 표현식
베어 메탈 서버 Terraform의 허용된 사용 표현식 옵션
허용된 사용 속성 허용된 사용 하위 속성 표현식 변수 유형
allowed_use bare_metal_server enable_secure_boot
가상 서버 인스턴스에서 보안 부팅이 활성화되어 있는지 여부를 나타냅니다.
부울

허용된 사용 표현식을 사용하여 새 사용자 지정 이미지를 만들거나 기존 이미지를 업데이트하려면 ibm_is_image 리소스를 업데이트하세요. 다음 예제에서는 GPU 제조업체가 Nvidia인 경우 GPU 수가 1보다 큰 가상 서버 인스턴스에 대해 허용된 사용 표현식을 사용하여 새 사용자 지정 이미지를 생성합니다. 보안 부팅이 필요합니다. 베어메탈 서버 허용 사용 표현식이 false로 설정되어 있으면 이미지가 베어메탈 서버 프로비저닝에 사용되지 않습니다.

resource "ibm_is_image" "example" {
  name               = "my-image"
  href               = "cos://us-south/buckettesttest/livecd.ubuntu-cpc.azure.vhd"
  operating_system   = "ubuntu-16-04-amd64"
  allowed_use{
    api_version       = "2025-04-03"
    bare_metal_server = “enable_secure_boot == true”
    instance = “gpu.count > 0 && enable_secure_boot == true”
  }
}

허용된 사용 표현식을 만드는 데 사용되는 공통 표현식 언어에 대한 자세한 내용은 Google 의 CEL 언어 정의 참조를 참조하세요