本文档介绍了如何管理与 Compute Engine 实例关联的许可。包括如何附加、移除和替换许可以及如何查看许可更新记录。如需详细了解 Compute Engine 上的许可,请参阅许可简介。
许可管理方面的限制:
- 只有当
AppendableToDisk
为true
时,您才能向磁盘添加许可。 - 只有当
RemovableFromDisk
为true
时,您才能移除许可(不提供替换项)。 - 您只能使用
AllowedReplacementLicenses
中列出的替换项来替换许可。
对于 Ubuntu LTS,如需将许可升级到 Ubuntu Pro 以启用延长安全维护 (ESM),请参阅从 Ubuntu 升级到 Ubuntu Pro。
如需更新您的按需 RHEL 许可以提供延长支持期,请参阅将 RHEL 延长生命周期支持 (ELS) 插件附加到您的许可。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Trusted Cloud by S3NS 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
安装 Google Cloud CLI,然后 使用联合身份登录 gcloud CLI。 登录后,运行以下命令初始化 Google Cloud CLI:
gcloud init
- Set a default region and zone.
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
安装 Google Cloud CLI,然后 使用联合身份登录 gcloud CLI。 登录后,运行以下命令初始化 Google Cloud CLI:
gcloud init
如需了解详情,请参阅 Trusted Cloud 身份验证文档中的使用 REST 时进行身份验证。
准备更新磁盘的许可
如需在磁盘挂接到正在运行的实例时更新磁盘的许可,请先关停实例或分离磁盘。
查看与虚拟机关联的许可
如需查看与虚拟机关联的许可,请使用 Trusted Cloud 控制台、gcloud CLI 或 Compute Engine API。
控制台
在 Trusted Cloud 控制台中,前往虚拟机实例页面。
点击要检查其许可的虚拟机的名称。系统会打开实例详细信息页面。
在实例详细信息页面底部,点击等效代码。
查看启动磁盘的
licenses
字段。
gcloud
运行以下
gcloud compute instances describe
命令:gcloud compute instances describe VM_NAME
将
VM_NAME
替换为虚拟机名称。查看输出的
disks
部分。licenses
字段会显示与启动磁盘关联的许可。
REST
GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instancesVM_NAME
替换以下内容:
PROJECT
:项目的名称ZONE
:包含虚拟机的可用区VM_NAME
:虚拟机的名称
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
标志。
如需详细了解如何导入映像,请参阅导入虚拟磁盘。
创建映像时附加许可
如需在创建映像时附加许可,请使用以下
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 映像。
将许可附加到磁盘
如需附加与虚拟机相关联的许可,请使用 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
:包含虚拟机的可用区DISK_NAME
:磁盘的名称LICENSES
:以英文逗号分隔的许可引用列表,例如"projects/rhel-cloud/global/licenses/rhel-9-server"
、"projects/rhel-cloud/global/licenses/rhel-8-server"
。
替换磁盘上的许可
如需替换与虚拟机相关联的许可,请使用 gcloud CLI 或 Compute Engine API。
gcloud
如需通过许可引用或代码替换磁盘上的许可,请使用以下
gcloud compute disks update
命令。gcloud compute disks update DISK_NAME \ --replace-license=PREVIOUS_LICENSE,NEW_LICENSE
替换以下内容:
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
:包含虚拟机的可用区DISK_NAME
:磁盘的名称NEW_LICENSE
:新的许可引用,例如"projects/rhel-cloud/global/licenses/rhel-9-server"
、"projects/rhel-cloud/global/licenses/rhel-8-server"
。
从磁盘中移除许可
如需移除与虚拟机关联的个别许可,请使用 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
:包含虚拟机的可用区DISK_NAME
:磁盘的名称LICENSES
:留空。
查看许可更新历史记录
按照以下步骤查看项目中虚拟机的许可更新历史记录:
在 Trusted Cloud 控制台中,前往 Logs Explorer 页面。
在工具栏中,确认显示查询处于启用状态。
将以下表达式复制到查询编辑器中:
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:*
将
PROJECT_NAME
替换为该项目的名称。点击运行查询。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-08-19。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-08-19。"],[],[],null,[]] -