Implements GCP organization policy constraints to enforce security guardrails across resource hierarchies, restrict risky configurations, and ensure compliance at organization, folder, and project levels.
npx claudepluginhub killvxk/cybersecurity-skills-zhThis skill uses the workspace's default tool permissions.
GCP 组织策略服务(Organization Policy Service)对云资源提供集中化和程序化的控制。组织策略通过配置约束来限制一个或多个 Google Cloud 服务,可在组织、文件夹或项目级别强制执行。它们通过阻止外部 IP、要求加密和最小化未授权访问来提升安全性。策略变更可能需要最多 15 分钟才能生效。
Implement GCP Organization Policy constraints via gcloud/Terraform to enforce security like VM external IP denial, location restrictions, and OS login across resource hierarchy for compliance.
Implements GCP Organization Policy constraints to enforce security guardrails like restricting VM external IPs, resource locations, and serial port access across org, folder, project levels. For compliance and cloud security setup.
Performs GCP security assessments using Forseti Security, Security Command Center, and gcloud CLI. Audits IAM policies, firewall rules, storage permissions, and checks CIS GCP Foundations Benchmark compliance.
Share bugs, ideas, or general feedback.
GCP 组织策略服务(Organization Policy Service)对云资源提供集中化和程序化的控制。组织策略通过配置约束来限制一个或多个 Google Cloud 服务,可在组织、文件夹或项目级别强制执行。它们通过阻止外部 IP、要求加密和最小化未授权访问来提升安全性。策略变更可能需要最多 15 分钟才能生效。
gcloud CLIroles/orgpolicy.policyAdmin)策略从具有强制执行策略的最低祖先节点继承。如果没有祖先节点配置策略,则应用 Google 的托管默认行为。
# 拒绝所有 VM 使用外部 IP 地址
gcloud resource-manager org-policies set-policy \
--organization=ORGANIZATION_ID \
policy.yaml
policy.yaml:
constraint: constraints/compute.vmExternalIpAccess
listPolicy:
allValues: DENY
gcloud org-policies set-policy \
--organization=ORGANIZATION_ID \
location-policy.yaml
location-policy.yaml:
constraint: constraints/gcp.resourceLocations
listPolicy:
allowedValues:
- "in:us-locations"
- "in:eu-locations"
constraint: constraints/iam.automaticIamGrantsForDefaultServiceAccounts
booleanPolicy:
enforced: true
constraint: constraints/compute.requireOsLogin
booleanPolicy:
enforced: true
constraint: constraints/compute.disableSerialPortAccess
booleanPolicy:
enforced: true
constraint: constraints/storage.uniformBucketLevelAccess
booleanPolicy:
enforced: true
constraint: constraints/sql.restrictPublicIp
booleanPolicy:
enforced: true
constraint: constraints/iam.disableServiceAccountKeyCreation
booleanPolicy:
enforced: true
resource "google_organization_policy" "restrict_vm_external_ip" {
org_id = var.org_id
constraint = "constraints/compute.vmExternalIpAccess"
list_policy {
deny {
all = true
}
}
}
resource "google_organization_policy" "restrict_locations" {
org_id = var.org_id
constraint = "constraints/gcp.resourceLocations"
list_policy {
allow {
values = ["in:us-locations", "in:eu-locations"]
}
}
}
resource "google_organization_policy" "require_os_login" {
org_id = var.org_id
constraint = "constraints/compute.requireOsLogin"
boolean_policy {
enforced = true
}
}
resource "google_folder_organization_policy" "dev_folder_external_ip" {
folder = google_folder.dev.name
constraint = "constraints/compute.vmExternalIpAccess"
list_policy {
allow {
values = ["projects/dev-project/zones/us-central1-a/instances/bastion-host"]
}
}
}
在强制执行前,使用 Policy Intelligence 工具测试变更影响:
# 创建试运行策略以监控影响
gcloud org-policies set-policy \
--organization=ORGANIZATION_ID \
dry-run-policy.yaml
dry-run-policy.yaml:
constraint: constraints/compute.vmExternalIpAccess
listPolicy:
allValues: DENY
dryRunSpec: true
# 检查试运行策略的违规情况
gcloud org-policies list-custom-constraints \
--organization=ORGANIZATION_ID
# custom-constraint.yaml
name: organizations/ORGANIZATION_ID/customConstraints/custom.disableGKEAutoUpgrade
resourceTypes:
- container.googleapis.com/NodePool
methodTypes:
- CREATE
- UPDATE
condition: "resource.management.autoUpgrade == true"
actionType: DENY
displayName: 拒绝 GKE 节点池自动升级
description: 防止在 GKE 节点池上启用自动升级,以实现受控升级
gcloud org-policies set-custom-constraint custom-constraint.yaml
gcloud org-policies list --organization=ORGANIZATION_ID
gcloud org-policies describe constraints/compute.vmExternalIpAccess \
--organization=ORGANIZATION_ID
gcloud asset search-all-resources \
--scope=organizations/ORGANIZATION_ID \
--query="policy:constraints/compute.vmExternalIpAccess"
| 约束 | 类型 | 范围 | 用途 |
|---|---|---|---|
| compute.vmExternalIpAccess | 列表/拒绝 | 组织 | 防止 VM 使用公网 IP |
| gcp.resourceLocations | 列表/允许 | 组织 | 限制为已批准区域 |
| iam.disableServiceAccountKeyCreation | 布尔 | 组织 | 强制使用 Workload Identity |
| compute.requireOsLogin | 布尔 | 组织 | 强制 SSH 使用 OS Login |
| storage.uniformBucketLevelAccess | 布尔 | 组织 | 强制统一存储桶访问 |
| sql.restrictPublicIp | 布尔 | 组织 | 禁止 Cloud SQL 公网访问 |
| compute.disableSerialPortAccess | 布尔 | 组织 | 禁用串行端口 |
| compute.disableNestedVirtualization | 布尔 | 组织 | 禁止嵌套虚拟化 |