根据 Google Cloud 组织的政策验证您的 IaC

本文档介绍了如何根据您在 Google Cloud 组织中定义的组织政策Security Health Analytics 检测器验证您的基础架构即代码 (IaC)。借助 IaC,您可以使用 Terraform 等语言创建和管理云端资源,以便使用开发工作流部署资源。IaC 验证功能仅支持组织政策和 Security Health Analytics 检测器。

通过验证 IaC,您可以确定新的或修改的资源定义是否违反应用于 Google Cloud 资源(例如集群、存储桶或实例)的现有政策。您可以使用安全状况定义这些政策,但 IaC 验证功能会根据您的 Google Cloud 组织中的所有政策分析您的代码。IaC 验证有助于开发者在资产或资源的 IaC 配置中找出并修复所有安全问题,然后再将其应用到您的 Google Cloud 环境。

IaC 验证功能支持 Terraform 计划文件。您可以使用 Google Cloud CLI 验证您的 Terraform 方案,也可以将验证流程集成到 Jenkins 或 GitHub Actions 开发者工作流中。

准备工作

完成以下任务即可开始 IaC 验证。

激活 Security Command Center 高级层级或企业层级

验证是否在组织级别激活了 Security Command Center 高级层级或企业层级

设置权限

  1. 确保您拥有组织的以下一个或多个角色: Security Posture Shift-Left Validator

    检查角色

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

      转到 IAM
    2. 选择组织。
    3. 主账号列中,找到您的电子邮件地址所在的行。

      如果您的电子邮件地址不在此列,则表示您没有任何角色。

    4. 在您的电子邮件地址所在的行对应的角色列中,检查角色列表是否包含所需的角色。

    授予角色

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

      转到 IAM
    2. 选择组织。
    3. 点击 授予访问权限
    4. 新的主账号字段中,输入您的电子邮件地址。
    5. 选择角色列表中,选择一个角色。
    6. 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
    7. 点击 Save(保存)。

如需详细了解 IaC 验证权限,请参阅用于组织级激活的 IAM

设置 Google Cloud CLI

您可以从以下任一开发环境使用本页面上的 gcloud CLI 示例:

  • Cloud Shell:如需使用已设置 gcloud CLI 的在线终端,请激活 Cloud Shell。

    Cloud Shell 会话会在页面底部启动,并显示命令行提示符。该会话可能需要几秒钟来完成初始化。

  • 本地 shell:如需在本地开发环境中使用 gcloud CLI,请安装初始化 gcloud CLI。

如需设置 gcloud CLI 以使用服务账号模拟(而不是您的用户凭据)向 Google API 进行身份验证,请运行以下命令:

gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

如需了解详情,请参阅服务账号模拟

启用 API

启用 Security posture service and Security Command Center management API。

启用 API

定义您的政策

指定组织政策Security Health Analytics 检测器。如需使用安全状况定义这些政策,请完成创建和部署安全状况中的任务。

创建 Terraform 代码

使用您的开发者工作流和工具创建一个 Terraform 文件,其中包含要创建或修改的 Google Cloud 资产。

请考虑以下事项:

  • 填充 Terraform 配置中每个资源或资产的父属性(项目、文件夹或组织)。
  • 请分别修改资产和政策。该 API 不支持验证 Terraform 方案文件,这些文件会同时修改资产和政策。
  • 只能使用受支持的素材资源类型和政策。如需查看支持的资产类型和政策的列表,请参阅 IaC 验证支持的资产类型和政策
  • 查看 IaC 验证的限制
  • 请勿在 Terraform 方案文件中包含敏感信息,例如密码或其他个人身份信息。如果验证功能遇到在资源更改中标记为敏感的字段,则会移除这些字段。

创建 Terraform 代码后,您可以运行 IaC 验证报告。您可以使用 Google Cloud CLI、Jenkins 或 GitHub Actions。

使用 Google Cloud CLI 创建 IaC 验证报告

如需创建 IaC 验证报告,请完成以下步骤:

  1. 在 gcloud CLI 中,运行 terraform init

    验证您正在运行 Terraform 提供程序 v5.5 或更高版本。如果需要,请升级到最新的 Google 提供方版本:

    terraform init -upgrade
    
  2. 将 Terraform 计划文件转换为 JSON 格式:

    terraform plan -out TF_PLAN_FILENAME
    terraform show -json TF_PLAN_FILENAME > TF_PLAN_JSON_FILENAME.json
    

    请替换以下内容:

    • TF_PLAN_FILENAME:Terraform 计划文件的名称。
    • TF_PLAN_JSON_FILENAME:将包含 Terraform 计划的文件的名称(采用 JSON 格式)。
  3. 创建 IaC 验证报告:

    gcloud scc iac-validation-reports create PARENT \
      --tf-plan-file=TF_PLAN_JSON_FILENAME
    

    请替换以下内容:

    • PARENT:要在其中创建 IaC 验证报告的 Google Cloud 组织。格式为 organizations/ORGANIZATION_ID/locations/LOCATIONLOCATIONglobal
    • TF_PLAN_JSON_FILENAME:包含要验证的 IaC 计划的 JSON 文件的路径。

    例如,如需在 organizations/3589215982/locations/global 组织下创建 IaC 验证报告,并将 IaC 计划包含在 planFile.json 中,请运行以下命令:

    gcloud scc iac-validation-reports create organizations/3589215982/locations/global --tf-plan-file=planFile.json
    

    此命令会返回用于创建 IAC 验证报告的操作详细信息。如需获取有关操作的信息,请参阅查看有关安全状况部署操作的信息

后续步骤