使用安全锁保护项目

本文档适用于希望针对项目删除添加保护措施的项目所有者组织管理员

您可以为项目添加安全锁,以防止项目被删除,直到您移除该安全锁。这对于保护特别重要的项目非常有用。

安全锁还可以自动放置在项目中。例如,如果您允许一个项目中的 Identity and Access Management (IAM) 服务账号附加到其他项目中的资源,则系统会为服务账号所在的项目设置安全锁。

准备工作

gcloud CLI 是与项目安全锁进行交互的最简单方法。如果您尚未安装该工具,可以使用 Google Cloud Shell

所需的角色

如需获得修改质押权所需的权限,请让您的管理员为您授予项目的 Project lien modifier (roles/resourcemanager.lienModifier) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含修改质押权所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需修改留置权,您需要具备以下权限:

  • resourcemanager.projects.updateLiens
  • 列出项目的安全锁: resourcemanager.projects.get

您也可以使用自定义角色或其他预定义角色来获取这些权限。

为项目添加安全锁

如需对项目设置质押权,请使用 alpha resource-manager liens create 命令。

gcloud alpha resource-manager liens create \
  --project=[PROJECT_ID] \
  --restrictions=[PERMISSION_RESTRICTION] \
  --reason=[LIEN_REASON] \
  --origin=[LIEN_ORIGIN]

替换以下内容:

  • [PROJECT_ID]:要应用安全锁的项目的 ID。
  • [PERMISSION_RESTRICTION]:要阻止的 IAM 权限列表,该列表以英文逗号分隔。项目的唯一有效限制是 resourcemanager.projects.delete
  • [LIEN_REASON]:为何应用该安全锁的直观易懂的说明。将此说明用英文双引号括起来。示例:"This project is protected by a lien"
  • [LIEN_ORIGIN]:字符串,表示发起安全锁的用户或系统。此字段为必填字段,但如果未提供,系统会自动填充用户的电子邮件地址。

列出项目的安全锁

如需列出应用于项目的所有质押权,请使用 alpha resource-manager liens list 命令。

gcloud alpha resource-manager liens list

输出类似于以下内容:

gcloud alpha resource-manager liens list
NAME                                                  ORIGIN            REASON
p1061081023732-l3d8032b3-ea2c-4683-ad48-5ca23ddd00e7  user@example.com  testing

移除项目中的安全锁

如需从项目中移除质押权,请使用 alpha resource-manager liens delete 命令。

gcloud alpha resource-manager liens delete [LIEN_NAME]

[LIEN_NAME] 替换为要删除的安全锁的名称,例如 p1061081023732-l3d8032b3-ea2c-4683-ad48-5ca23ddd00e7

参考

API 参考:REST 资源:安全锁