使用安全锁保护项目

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

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

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

准备工作

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

所需的角色

如需获取修改安全锁所需的权限,请让管理员向您授予项目的项目安全锁修饰符 (roles/resourcemanager.lienModifier) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限

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

所需权限

修改安全锁需要以下权限:

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

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

为项目添加安全锁

如需为项目添加安全锁,请使用 alpha resource-manager liens create 命令。

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

替换以下内容:

  • [PROJECT_NAME]:要应用安全锁的项目的名称。
  • [PERMISSION_RESTRICTION]:要阻止的 IAM 权限的逗号分隔列表。对项目的唯一有效限制是 resourcemanager.projects.delete
  • [LIEN_REASON]:关于为何存在此安全锁的人类可读说明。
  • [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] 替换为要删除的安全锁的名称,例如 liens/p1061081023732-l3d8032b3-ea2c-4683-ad48-5ca23ddd00e7

参考

API 参考:REST 资源:安全锁