使用 Privileged Access Manager 保护项目安全锁

项目安全锁是一种防护措施,可明确阻止项目被删除。 本教程介绍了如何配置多方审批工作流,以 保护包含备份 保险柜的项目上的项目安全锁。 Google Cloud

应用项目安全锁可针对意外或未经授权的项目删除操作增加一道重要的 保护层。不过,拥有项目所有权旧版基本权限的主账号可以移除安全锁并删除项目。为防止任何单个用户单方面移除项目安全锁,您可以建立结构化的多方审批工作流。 Privileged Access Manager (PAM) 提供即时、临时的权限提升,并支持多方审批工作流。如需了解详情,请参阅 Privileged Access Manager 概览。

通过利用 Privileged Access Manager,您的组织可以确保关键权限(特别是移除安全锁的权限)仅在临时授予,并且需要获得授权的第二方的明确批准。

本教程假定您熟悉 Identity and Access Management (IAM)、 项目安全锁和 Backup and DR。

目标

  • 审核现有的 Identity and Access Management 角色,以限制项目安全锁修改。
  • 创建用于安全锁管理的自定义 Identity and Access Management 角色。
  • 配置 Privileged Access Manager 使用权以进行多方审批。
  • 请求、批准和执行临时安全锁删除操作。
  • 清理在本教程中创建的资源。

费用

本教程使用的以下收费组件: Google Cloud

您可使用价格计算器来 根据您的预计使用情况估算费用。

准备工作

  1. 选择或创建 Google Cloud 项目:

    前往项目选择器

  2. 确保您的 Google Cloud 项目已启用结算功能。 如需了解详情,请参阅确认项目的结算状态。

  3. 启用 Privileged Access Manager 和 Resource Manager API:

    启用 API

  4. 确保您拥有以下 Identity and Access Management 角色:

    • 组织或文件夹中的Security Admin (roles/iam.securityAdmin) 或Organization Administrator (roles/resourcemanager.organizationAdmin):审核和修改角色分配时需要此角色。

    • 组织角色管理员 (roles/iam.organizationRoleAdmin):创建自定义 IAM 角色时需要此角色。

    • Privileged Access Manager 管理员 (roles/privilegedaccessmanager.admin):创建和配置 Privileged Access Manager 使用权时需要此角色。

    • 项目安全锁修改者 (roles/resourcemanager.lienModifier):创建或移除项目安全锁时需要此角色。

完成本教程后,您可以删除所创建的资源以避免继续计费。如需了解详情,请参阅清理。

审核现有的 Identity and Access Management 角色

旧版基本 Owner 角色 (roles/owner) 默认包含 resourcemanager.projects.updateLiens 权限(允许移除项目安全锁)。同样,项目安全锁修改者角色 (roles/resourcemanager.lienModifier) 也会授予安全锁移除权限。为确保无法绕过多方审批,请验证是否有未经授权的用户拥有修改或删除安全锁的永久访问权限。

  1. 在 Google Cloud 控制台中,前往 IAM 页面。

    转到 IAM

  2. 选择您的组织、文件夹或项目。

  3. 查看主账号列表及其分配的角色。

  4. 从不应拥有永久安全锁删除权限的所有主账号中移除项目安全锁修改者 (roles/resourcemanager.lienModifier) 角色。

  5. 确保用户未被分配旧版基本 Owner 角色 (roles/owner)。而是为他们分配旧版基本 Editor 角色 (roles/editor) 或不包含安全锁修改功能的自定义角色。

创建用于安全锁管理的自定义 Identity and Access Management 角色

由于 Privileged Access Manager 不支持授予旧版基本角色(Owner、Editor 和 Viewer),因此请创建一个仅具有 resourcemanager.projects.updateLiens 权限的专用自定义角色,以便在临时提升权限期间强制执行最小权限原则。

  1. 在 Google Cloud 控制台中,前往角色页面。

    打开“角色”

  2. 从项目选择器中选择您的组织或项目。

  3. 点击创建角色 。

  4. 在书名 字段中,输入 Lien Administrator。

  5. 在 ID 字段中,输入 lien_administrator。

  6. 在角色发布阶段 列表中,选择正式版 。

  7. 点击添加权限 。

  8. 在过滤权限 框中,搜索 resourcemanager.projects.updateLiens。

  9. 选中 resourcemanager.projects.updateLiens 旁边的复选框,然后点击添加 。

  10. 点击创建 。

配置 Privileged Access Manager 使用权

配置 Privileged Access Manager 使用权,以定义哪些人可以请求安全锁管理员自定义角色、所需的审批者以及最长授权时长。

  1. 在 Google Cloud 控制台中,前往 Privileged Access Manager 页面。

    前往 Privileged Access Manager

  2. 在使用权 标签页中,点击创建使用权 。

  3. 在使用权详细信息 部分中,配置以下内容:

    • 使用权 ID:输入一个唯一名称(例如 remove-project-lien)。

    • 资源:选择您希望此政策适用的组织、文件夹(推荐)或 特定项目。

  4. 在角色 部分中,选择在上一个任务中创建的安全锁管理员 自定义角色 (lien_administrator)。

  5. 在请求者 部分中,选择允许请求提升的访问权限的各个主账号或群组(例如 devops-team@example.com)。

  6. 在审批工作流 部分中,选择需要审批,然后配置以下设置:

    • 审批者:选择必须 批准请求的各个主账号或群组(例如 security-leads@example.com)。

    • 审批者数量:输入 1 或您的 组织政策要求的审批数量。

  7. 在授权时长 部分中,设置最长时长 (例如 1 hour)。

  8. 在理由 部分中,选择必需 。

  9. 点击创建 。

请求、批准和执行安全锁删除操作

配置使用权后,用户必须请求临时提升的访问权限并获得批准,然后才能删除项目安全锁。

请求提升的访问权限

  1. 在 Google Cloud 控制台中,前往 Privileged Access Manager 页面。

    前往 Privileged Access Manager

  2. 找到 remove-project-lien 使用权,然后点击请求授权 。

  3. 在时长 字段中,输入所需的时长(最长为配置的时长上限)。

  4. 在理由 字段中,输入移除项目安全锁的业务理由。

  5. 点击提交请求 。

批准访问权限请求

  1. 作为授权审批人,打开邮件通知,或在 Google Cloud 控制台中前往 Privileged Access Manager。然后,点击审批 。

    前往“审批”

  2. 选择待处理的请求。

  3. 查看请求者详细信息、请求的时长和理由。

  4. 点击批准 。

删除项目安全锁

获得批准后,Privileged Access Manager 会暂时将安全锁管理员角色绑定到请求者。要求提出者现在可以删除项目安全锁。

  1. 在 Google Cloud 控制台中,激活 Cloud Shell 或打开安装了 gcloud CLI 的终端。

  2. 列出项目中的有效安全锁:

    gcloud alpha resource-manager liens list --project=PROJECT_ID
    

    将 PROJECT_ID 替换为您的 Google Cloud 项目的 ID。

  3. 删除项目安全锁:

    gcloud alpha resource-manager liens delete LIEN_NAME
    

    将 LIEN_NAME 替换为上一个命令中的安全锁名称(例如 liens/p12345-l67890)。

配置的授权时长到期后,Privileged Access Manager 会自动撤销请求者的安全锁管理员角色,以防止进一步修改安全锁。

清理

为避免因本教程中使用的资源向您的 Google Cloud 账号收取费用,请删除 Privileged Access Manager 使用权和自定义 Identity and Access Management 角色。

删除 Privileged Access Manager 使用权

  1. 在 Google Cloud 控制台中,前往 Privileged Access Manager 页面。

    前往 Privileged Access Manager

  2. 在使用权列表中,选中 remove-project-lien 旁边的复选框。

  3. 点击删除 。

  4. 在确认对话框中点击删除 。

删除自定义 IAM 角色

  1. 在 Google Cloud 控制台中,前往角色页面。

    打开“角色”

  2. 在角色列表中,找到 lien_administrator 角色。

  3. 点击该角色旁边的操作 菜单(三个点),然后点击删除 。

  4. 在确认对话框中点击删除 。

删除项目

为避免支付费用,最简单的方法是删除您为本教程创建的项目。

如果您打算浏览多个教程和快速入门,重复使用项目可以帮助您避免超出项目配额上限。

  1. 在 Google Cloud 控制台中,前往管理资源页面。

    转到“管理资源”

  2. 在项目列表中,选择要删除的项目,然后点击删除 。

  3. 在对话框中输入项目 ID,然后点击关闭 以删除项目。

后续步骤