本文档介绍了如何验证您的基础架构即代码 (IaC) 组织政策 和 Security Health Analytics 检测器 您在 Google Cloud 组织中定义的资源。借助 IaC,您可以创建 使用 Terraform 等语言管理云端资源 使用开发工作流部署资源。IaC 验证功能 仅支持组织政策和 Security Health Analytics 检测器。
通过验证 IaC,您可以确定新建或修改的资源定义是否违反了应用于 Google Cloud 资源(例如集群、存储桶或实例)的现有政策。您可以 定义这些政策 但 IaC 验证功能会根据 Google Cloud 组织。IaC 验证可帮助开发者在资产或资源的 IaC 配置应用到 Google Cloud 环境之前,发现并修正其中的所有安全问题。
IaC 验证功能支持 Terraform 方案文件。您可以使用 Google Cloud CLI 验证 Terraform 方案,也可以将验证流程集成到 Cloud Build、Jenkins 或 GitHub Actions 开发者工作流中。
准备工作
请完成以下任务,开始进行 IaC 验证。
激活 Security Command Center 高级层级或企业层级
确认已在组织级层激活 Security Command Center 高级层级或企业层级。
激活 Security Command Center 即会启用 securityposture.googleapis.com
和
securitycentermanagement.googleapis.com
API。
设置权限
-
Make sure that you have the following role or roles on the organization: Security Posture Shift-Left Validator
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the organization.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
前往 IAM - 选择组织。
- 点击 授予访问权限。
-
在新的主账号字段中,输入您的用户标识符。 这通常是 Google 账号的电子邮件地址。
- 在选择角色列表中,选择一个角色。
- 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
- 点击保存。
如需详细了解 IaC 验证权限,请参阅 用于组织级别的 IAM 激活。
设置 Google Cloud CLI
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
如需设置 gcloud CLI 以使用服务账号模拟(而不是您的用户凭据)向 Google API 进行身份验证,请运行以下命令:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
如需了解详情,请参阅服务账号模拟。
定义政策
明确 组织政策 和 Security Health Analytics 检测器。 如需使用安全状况定义这些政策,请完成创建和部署安全状况中的任务。
创建 Terraform 代码
使用您的开发者工作流和工具创建一个包含以下内容的 Terraform 文件: 您要创建或修改的 Google Cloud 资产。
请考虑以下事项:
- 填充父属性(项目、文件夹或组织) Terraform 配置中的每个资源或资产的名称。
- 分别修改资产和政策。通过 API 不支持验证会修改两者的 Terraform 计划文件 资产和政策。
- 仅使用受支持的素材资源类型和政策。如需查看支持的资产类型和政策的列表,请参阅适用于 IaC 验证的支持的资产类型和政策。
- 查看 IaC 验证的限制。
- 请勿在 Terraform 方案文件中包含敏感信息,例如密码或其他个人身份信息。如果验证功能在资源更改中遇到标记为敏感的字段,则会移除这些字段。
创建 Terraform 代码后,您可以运行 IaC 验证报告。您 可以使用 gcloud CLI Cloud Build、 Jenkins 或 GitHub 操作。
使用 Google Cloud CLI 创建 IaC 验证报告
如需创建 IaC 验证报告,请完成以下步骤:
在 gcloud CLI 中,运行
terraform init
。验证您运行的 Terraform 提供程序是否是 v5.5 或更高版本。如果 需要,请升级到最新的 Google 提供方版本:
terraform init -upgrade
将 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
:上传 将包含 JSON 格式的 Terraform 计划。
创建 IaC 验证报告:
gcloud scc iac-validation-reports create PARENT \ --tf-plan-file=TF_PLAN_JSON_FILENAME.json
替换以下内容:
PARENT
:用于创建 IaC 验证报告的 Google Cloud 组织。格式为organizations/ORGANIZATION_ID/locations/LOCATION
。LOCATION
为global
。TF_PLAN_JSON_FILENAME
:JSON 文件的路径 包含要验证的 IaC 方案
例如,如需在
organizations/3589215982/locations/global
组织下创建 IaC 验证报告,并在planFile.json
中包含 IaC 方案,请运行以下命令:gcloud scc iac-validation-reports create organizations/3589215982/locations/global --tf-plan-file=planFile.json
此命令会返回用于创建 IAC 验证的操作详细信息 报告。如需获取有关该操作的信息,请参阅查看有关设备配置状态部署操作的信息。
后续步骤
- 查看示例教程。
- 将 IaC 验证与您的 Cloud Build 工作流。
- 将 IaC 验证与您的 GitHub Actions 或您的 Jenkins 项目。
- 管理安全状况。
-