管理授權

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

變更授權的限制

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

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

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

如要將 Windows Server 授權從自備授權 (BYOL) 變更為即付即用 (PAYG),請參閱「從 Windows BYOL 切換至 PAYG」。

如要將 Ubuntu LTS 的授權升級至 Ubuntu Pro,以啟用 Extended Security Maintenance (ESM),請參閱「從 Ubuntu 升級至 Ubuntu Pro」。

如要更新隨選 RHEL 授權,納入延長支援,請參閱「將 RHEL Extended Lifecycle Support (ELS) 外掛程式附加至授權」。

事前準備

  • 如果尚未設定驗證,請先完成設定。驗證程序會確認您的身分,以便授予 Google Cloud 服務和 API 的存取權。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    選取這個頁面上範例的預計用途分頁:

    控制台

    使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證。

    gcloud

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

      gcloud init

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

  • 設定預設區域和可用區。
  • REST

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

      安裝 Google Cloud CLI。

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

    詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。

準備更新磁碟授權

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

  • 停止執行個體。更新磁碟授權前,暫時關閉執行個體。
  • 卸載磁碟。這項操作會先將磁碟從執行個體卸離,再更新磁碟授權。

查看與 VM 相關聯的授權

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

控制台

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

    前往 VM 執行個體

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

  3. 在「執行個體詳細資料」頁面底部,按一下「對等程式碼」。

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

gcloud

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

    gcloud compute instances describe VM_NAME
    

    將 VM_NAME 替換為 VM 名稱。

  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 會在 licenses 欄位的 disks 區段中,傳回與開機磁碟相關聯的授權。

在匯入圖片時附加授權

如要在映像檔匯入程序中附加授權,請使用下列 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 映像檔」。

將授權附加至磁碟

如要附加與 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」頁面。

    前往 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. 點選「執行查詢」。

後續步驟