管理授權


本文說明如何管理與 Compute Engine 執行個體相關聯的授權。包括如何附加、移除、取代及查看授權更新記錄。如要進一步瞭解 Compute Engine 的授權,請參閱「關於授權」。

變更授權的限制

只有特定 OS 授權可附加、移除或更換。Red Hat Enterprise Linux (RHEL)、RHEL for SAP、SUSE Linux Enterprise Server (SLES)、SLES for SAP、Ubuntu 和 Ubuntu Pro 都支援授權變更。

允許的授權變更由授權擁有者決定,且可能有所變動。如要驗證 VM 允許的授權變更,請參閱「查看授權變更和限制」。

如要在即付即用 (PAYG) 和自備訂閱 (BYOS) 之間變更 RHEL 或 SLES 授權,請參閱「在 PAYG 和 BYOS 之間切換」。

如果是 Ubuntu LTS,如要將授權升級至 Ubuntu Pro,啟用延長安全性維護 (ESM),請參閱「從 Ubuntu 升級至 Ubuntu Pro」。

如要更新隨選 RHEL 授權,加入延長支援服務,請參閱「將 RHEL Extended Lifecycle Support (ELS) Add-On 附加至授權」。

事前準備

  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,可以選取下列任一選項,向 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. 安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:

      gcloud init

      如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

    2. Set a default region and zone.

    REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:

      gcloud init

      如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

    詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。

準備更新磁碟授權

如要在磁碟附加至執行中的執行個體時更新磁碟授權,請先停止執行個體或卸離磁碟。

  • 停止執行個體。更新磁碟授權前,系統會暫時關閉執行個體。
  • 卸離磁碟。這樣一來,系統會在更新磁碟授權前,先將磁碟從執行個體卸離。

查看與 VM 相關聯的授權

如要查看與 VM 相關聯的授權,請使用 Google Cloud 控制台、gcloud CLI 或 Compute Engine API。

主控台

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 按一下 VM 名稱,查看授權。「執行個體詳細資料」頁面隨即開啟。

  3. 在「Instance details」(執行個體詳細資料) 頁面底部,按一下「Equivalent Code」(對等程式碼)

  4. 查看開機磁碟的 licenses 欄位。

gcloud

  1. 執行下列gcloud compute instances describe指令

    gcloud compute instances describe VM_NAME
    

    將您的 VM 名稱替換為 VM_NAME

  2. 查看輸出內容的 disks 區段。「licenses」欄位會顯示與開機磁碟相關聯的授權。

REST

呼叫 instances.get v1 方法

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instancesVM_NAME

更改下列內容:

  • PROJECT:專案名稱
  • ZONE:包含 VM 的可用區
  • VM_NAME:VM 的名稱

Compute Engine API 會在 disks 欄位的 licenses 區段中,傳回與開機磁碟相關聯的授權。

在匯入圖片時附加授權

如要在匯入圖片時附加授權,請使用下列 gcloud compute images import 指令

gcloud compute images import IMAGE_NAME \
  --source-file=SOURCE_FILE
  --os=OS

更改下列內容:

  • IMAGE_NAME:要建立的映文件名稱。
  • SOURCE_FILE:要匯入的虛擬磁碟本機檔案或 Cloud Storage URI。
  • OS:要匯入的磁碟映像檔 OS。系統會根據這個旗標的值推斷 OS 的授權,匯入時沒有明確的旗標可提供授權資訊。如需支援的值清單,請參閱 --os 旗標

如要進一步瞭解如何匯入映像檔,請參閱「匯入虛擬磁碟」一文。

建立圖片時附加授權

如要在建立映像檔時附加授權,請使用下列 gcloud compute images create 指令

gcloud compute images create IMAGE_NAME \
  --source-image=SOURCE_IMAGE \
  --licenses=LICENSES

更改下列內容:

  • IMAGE_NAME:要建立的映文件名稱。
  • SOURCE_IMAGE:要建立新映像檔的映像檔名稱。
  • LICENSES:以半形逗號分隔的授權字串清單。例如:"license1""license2"

如要進一步瞭解如何建立映像檔,請參閱「建立、刪除及淘汰自訂映像檔」和「建立 Windows 映像檔」。

如要進一步瞭解如何建立映像檔,請參閱「建立、刪除及淘汰自訂映像檔」和「建立 Windows 映像檔」。

將授權附加至磁碟

如要附加與 VM 相關聯的授權,請使用 gcloud CLI 或 Compute Engine API。

gcloud

如要使用授權參照或程式碼將授權附加至磁碟,請使用下列 gcloud compute disks update 指令

gcloud compute disks update DISK_NAME \
--append-licenses=LICENSES

更改下列內容:

  • DISK_NAME:要附加的磁碟名稱。
  • LICENSES:以半形逗號分隔的授權參照清單,例如 "projects/rhel-cloud/global/licenses/rhel-9-server""projects/rhel-cloud/global/licenses/rhel-8-server"

REST

如要使用授權參照或程式碼將授權附加至磁碟,請呼叫下列 disks.update v1 方法

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/disks/DISK_NAME?paths=licenses --data '{"name":"DISK_NAME", "licenses":["https://www.googleapis.com/compute/v1/LICENSES"]}'

更改下列內容:

  • PROJECT:專案名稱
  • ZONE:包含 VM 的可用區
  • DISK_NAME:磁碟名稱
  • LICENSES:以半形逗號分隔的授權參考資料清單,例如 "projects/rhel-cloud/global/licenses/rhel-9-server""projects/rhel-cloud/global/licenses/rhel-8-server"

更換磁碟上的授權

如要更換與 VM 相關聯的授權,請使用 gcloud CLI 或 Compute Engine API。

gcloud

如要使用授權參照或程式碼替換磁碟上的授權,請使用下列 gcloud compute disks update 指令

gcloud compute disks update DISK_NAME \
--replace-license=PREVIOUS_LICENSE,NEW_LICENSE

更改下列內容:

  • DISK_NAME:要附加的磁碟名稱。
  • PREVIOUS_LICENSE:要取代的先前授權參考資料,例如 "projects/rhel-cloud/global/licenses/rhel-9-server""projects/rhel-cloud/global/licenses/rhel-8-server"
  • NEW_LICENSE:新的授權參考資料,例如 "projects/rhel-cloud/global/licenses/rhel-9-server""projects/rhel-cloud/global/licenses/rhel-8-server"

REST

如要使用授權參照或程式碼替換磁碟上的授權,請呼叫 disks.update v1 方法,並在要求主體中將先前的授權替換為新授權,如下所示:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/disks/DISK_NAME?paths=licenses --data '{"name":"DISK_NAME", "licenses":["https://www.googleapis.com/compute/v1/NEW_LICENSE"]}'

更改下列內容:

  • PROJECT:專案名稱
  • ZONE:包含 VM 的可用區
  • DISK_NAME:磁碟名稱
  • NEW_LICENSE:新的授權參考資料,例如 "projects/rhel-cloud/global/licenses/rhel-9-server""projects/rhel-cloud/global/licenses/rhel-8-server"

從磁碟移除授權

如要移除與 VM 相關聯的個別授權,請使用 gcloud CLI 和 Compute Engine API。

gcloud

如要使用授權參照或代碼從磁碟移除授權,請使用 gcloud compute disks update 指令

gcloud compute disks update DISK_NAME \
--remove-licenses=LICENSES

更改下列內容:

  • DISK_NAME:要移除的磁碟名稱。
  • LICENSES:以半形逗號分隔的授權參照清單,例如 "projects/rhel-cloud/global/licenses/rhel-9-server""projects/rhel-cloud/global/licenses/rhel-8-server"

REST

如要移除授權,請在呼叫要求中提供空白授權欄位,並透過呼叫下列 disks.update v1 方法提供路徑選取器:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/disks/DISK_NAME?paths=licenses --data '{"name":"DISK_NAME", "licenses":[]}'

更改下列內容:

  • PROJECT:專案名稱
  • ZONE:包含 VM 的可用區
  • DISK_NAME:磁碟名稱
  • LICENSES:留空。

查看授權更新記錄

如要查看專案中 VM 的授權更新記錄,請按照下列程序操作:

  1. 前往 Google Cloud 控制台的「Logs Explorer」頁面。

    前往記錄檔探索工具

  2. 確認工具列中的「Show query」(顯示查詢) 已啟用。

  3. 將下列運算式複製到查詢編輯器:

    resource.type="gce_disk"
    logName="projects/PROJECT_NAME/logs/cloudaudit.googleapis.com%2Factivity"
    severity>=NOTICE
    protoPayload.request.@type="type.googleapis.com/compute.disks.update"
    protoPayload.request.licenses:*
    
  4. PROJECT_NAME 替換為專案名稱。

  5. 點選「執行查詢」

後續步驟