Questa pagina fornisce una panoramica delle coppie chiave-valore in posture.yaml
creato per definire i criteri per la sicurezza
della postura. Per creare un
postura YAML ed eseguine il deployment nel tuo ambiente, consulta Gestire un
della postura.
Struttura del file YAML della postura
Le posture sono file YAML con la seguente struttura:
name: posture_name
state: posture_state
description: posture_description
policy_sets:
- policy_set_id: policy_set_ID
- description: policy_set_description
policies:
- policy_id: policy_id
compliance_standards:
- standard: policy_standards
- control: policy_control
- description: policy_description
# Definition for a organization policy
constraint:
org_policy_constraint:
canned_constraint_id: constraint_ID
policy_rules:
- org_policy_kind: org_policy_kind_value
- condition:
expression: org_policy_expression
title: org_policy_title
description: org_policy_description
location: org_policy_location
# Definition for a custom organization policy constraint
constraint:
org_policy_constraint_custom:
custom_constraint:
name: custom_org_constraint_name
resource_types: custom_org_resource_type
method_types: custom_org_method_type
condition: custom_org_condition
action_type: custom_org_action_type
display_name: custom_org_constraint_display_name
description: custom_org_constraint_description
policy_rules:
- org_policy_kind: org_policy_kind_value
- condition:
expression: org_policy_expression
title: org_policy_title
description: org_policy_description
location: org_policy_location
# Definition for a Security Health Analytics detector
constraint:
security_health_analytics_module:
module_name: sha_detector_name
module_enablement_state: sha_detector_enabled
# Definition for a custom Security Health Analytics detector
constraint:
security_health_analytics_custom_module:
display_name: sha_custom_detector_name
config:
predicate:
expression: sha_custom_detector_expression
title: sha_custom_detector_predicate_title
description: sha_custom_detector_predicate_description
location: sha_custom_detector_predicate_location
- custom_output:
- property:
name: sha_custom_detector_output_name
value_expression:
expression: sha_custom_detector_output_expression
title: sha_custom_detector_output_title
description: sha_custom_detector_output_description
location: sha_custom_detector_output_location
resource_selector:
- resource_types: sha_custom_detector_resource
severity: sha_custom_severity_level
description: sha_custom_detector_description
recommendation: sha_custom_detector_recommendation
module_enablement_state: sha_detector_enabled
Descrizione di coppie chiave/valore
La tabella riportata di seguito fornisce una descrizione delle coppie chiave-valore nella
posture.yaml
.
Coppia chiave-valore | Descrizione |
---|---|
name: posture_name |
Il nome della postura, che inizia con una lettera. Questo valore è facoltativo perché specifichi il nome della postura quando esegui il comando gcloud scc postures create . |
state: posture_state |
Un ENUM che puoi impostare su ACTIVE , DRAFT o
DEPRECATED . Per ulteriori informazioni sugli stati della postura, consulta
Cambia
lo stato della postura. |
description: posture_description |
Una descrizione delle norme. Questo valore è facoltativo. |
policy_set_id: policy_set_ID |
Un identificatore univoco per il set di criteri all'interno del file della postura. Un file di postura può includere più set di criteri. |
description: policy_set_description |
Una descrizione della serie di criteri. Questo valore è facoltativo. |
policy_id: policy_id |
Un identificatore univoco del criterio all'interno del set di criteri. Un set di criteri può includere più criteri. |
standard: policy_compliance_standard |
Il nome dello standard di conformità supportato da questo criterio. |
control: policy_compliance_control |
I controlli specifici previsti dallo standard di conformità supportato da questo criterio. |
description: policy_compliance_description |
Una descrizione dello standard di conformità supportato da questo criterio. |
canned_constraint_id: constraint_ID |
Il nome del vincolo del criterio dell'organizzazione. Ad esempio, cloudbuild.allowedWorkerPools .
Non includere il prefisso constraints/ in constraint_ID. |
org_policy_kind |
I valori dei criteri dell'organizzazione sono allow_all , deny_all , allowed_values e denied_values . Il valore dei criteri dell'organizzazione booleani è enforce . |
org_policy_kind_value |
I valori per il tipo allow_all , deny_all , enforce sono true o false . Il valore dei tipi allowed_values e denied_values è un elenco rispettivamente di valori consentiti o negati. |
condition: |
Una condizione che determina se questa regola viene utilizzata nella valutazione del criterio. Se impostato, il campo expression in Expr deve includere da 1 a 10 sottoespressioni, unite dagli operatori || o && . Ogni sottoespressione deve essere nel formato resource.matchTag('ORG_ID/tag_key_short_name, 'tag_value_short_name') o resource.matchTagId('tagKeys/key_id', 'tagValues/value_id') , dove key_name e value_name sono i nomi delle risorse per le chiavi e i valori di etichetta. Questi nomi sono disponibili nel servizio Tag Manager. Un'espressione di esempio è resource.matchTag('123456789/environment, 'prod') o resource.matchTagId('tagKeys/123', 'tagValues/456') .
|
expression: org_policy_expression |
La rappresentazione testuale di un'espressione nella sintassi Common Expression Language. Questo valore è facoltativo. |
title: org_policy_title |
La descrizione dello scopo dell'espressione. Questo valore è facoltativo. |
description: org_policy_description |
La descrizione dell'espressione. Questo valore è facoltativo. |
location: org_policy_location |
Una stringa che indica la posizione dell'espressione per segnalare gli errori. ad esempio un nome file e una posizione nel file. Questo valore è facoltativo. |
name: custom_org_constraint_name |
Il nome del vincolo personalizzato, nel formato organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME . Ad esempio, organizations/3589215982/customConstraints/custom.disableGkeAutoUpgrade . Il campo CONSTRAINT_NAME non può contenere più di 62 caratteri. Il prefisso organizations/{organization_id}/customConstraints/custom non viene conteggiato. La definizione di un vincolo personalizzato nel file della postura crea un nuovo vincolo personalizzato. |
resource_types: custom_org_resource_type |
Il nome completo della risorsa REST Google Cloud che contiene l'oggetto e il campo che vuoi limitare. È previsto un massimo di 20 vincoli personalizzati per tipo di risorsa. |
method_types: custom_org_method_type |
L'elenco di metodi RESTful per cui applicare il vincolo. |
condition: custom_org_condition |
La condizione CEL che fa riferimento alla risorsa di servizio supportata. Questo campo ha una lunghezza massima di 1000 caratteri. |
action_type: custom_org_action_type |
L'azione da eseguire se la condizione è soddisfatta. |
display_name: custom_org_constraint_display_name |
Un nome semplice per il vincolo. Questo campo ha una lunghezza massima di 200 caratteri. |
description: custom_org_constraint_description |
La descrizione del vincolo da visualizzare come messaggio di errore quando il criterio viene violato. Questo campo ha una lunghezza massima di 2000 caratteri. |
module_name: sha_detector_name |
Il nome di un rilevatore di Security Health Analytics. Ad esempio, BIGQUERY_TABLE_CMEK_DISABLED . |
module_enablement_state: sha_detector_enabled |
Indica se il rilevatore Security Health Analytics è abilitato. ENABLED o DISABLED . |
display_name: sha_custom_detector_name |
Il nome del modulo personalizzato per Security Health Analytics. Il nome deve essere compreso tra 1 e 128 caratteri, iniziare con una lettera minuscola e contenere solo caratteri alfanumerici o trattini bassi. |
expression: sha_custom_detector_expression |
Le espressioni CEL che verificano le proprietà dei tipi di risorse da analizzare. |
title: sha_custom_detector_predicate_title |
Il nome della proprietà del predicato per il modulo personalizzato di Security Health Analytics. |
description: sha_custom_detector_predicate_description |
La descrizione della proprietà del predicato per il modulo personalizzato di Security Health Analytics. |
location: sha_custom_detector_predicate_location |
La località a cui si applica la proprietà del predicato. |
name: sha_custom_detector_output_name |
Il nome della proprietà custom_output . |
expression: sha_custom_detector_output_expression |
L'espressione da restituire nell'output. |
title: sha_custom_detector_output_title |
Il titolo dell'output. |
description: sha_custom_detector_output_description |
La descrizione dell'output per il modulo personalizzato di Security Health Analytics. |
location: sha_custom_detector_output_location |
La località a cui si applica l'output. |
resource_types: sha_custom_detector_resource |
I tipi di risorse analizzati dal modulo personalizzato. |
severity: sha_custom_severity_level |
La gravità dei risultati creati da questo modulo. |
description: sha_custom_detector_description |
La vulnerabilità o l'errata configurazione rilevata dal modulo personalizzato. |
recommendation: sha_custom_detector_recommendation |
Una descrizione di come risolvere il problema rilevato. |
Esempio di posture.yaml
createTime: '2024-04-01T15:27:27.188366349Z'
etag: h5ulCqzUqOcaIjKjxHFrOrrZpmneG8A0K1mdO-uHsLM
name: organizations/123/locations/global/postures/mixedcasposture
policySets:
- policies:
- constraint:
securityHealthAnalyticsModule:
moduleEnablementState: ENABLED
moduleName: BIGQUERY_TABLE_CMEK_DISABLED
description: enable BIGQUERY_TABLE_CMEK_DISABLED
policyId: SHA module BIGQUERY_TABLE_CMEK_DISABLED
- constraint:
orgPolicyConstraint:
cannedConstraintId: iam.allowServiceAccountCredentialLifetimeExtension
policyRules:
- allowAll: true
- condition:
expression: resource.matchTag("123/location", "us-east3")
title: policy for us-east3
description: apply policy to us-east3
policyId: test/123/policies/iam.allowServiceAccountCredentialLifetimeExtension
- constraint:
orgPolicyConstraintCustom:
customConstraint:
actionType: ALLOW
condition: resource.management.autoUpgrade == false
description: Only allow GKE NodePool resource to be created or updated if
AutoUpgrade is not enabled where this custom constraint is enforced.
displayName: Disable GKE auto upgrade
methodTypes:
- CREATE
name: organizations/123/customConstraints/custom.gke123
resourceTypes:
- container.googleapis.com/NodePool
policyRules:
- enforce: true
policyId: orgPolicycustomconstraint
- constraint:
securityHealthAnalyticsModule:
moduleEnablementState: DISABLED
moduleName: PUBLIC_BUCKET_ACL
description: PUBLIC_BUCKET_ACL disabled
policyId: sha module PUBLIC_BUCKET_ACL
- constraint:
securityHealthAnalyticsCustomModule:
config:
customOutput: {}
description: Test Custom Module
predicate:
expression: resource.rotationPeriod > duration('2592000s')
recommendation: Testing custom modules
resourceSelector:
resourceTypes:
- cloudkms.googleapis.com/CryptoKey
severity: CRITICAL
displayName: customSHA
moduleEnablementState: ENABLED
policyId: sha_custom_module
- constraint:
securityHealthAnalyticsCustomModule:
config:
customOutput: {}
description: Test Custom Module
predicate:
expression: resource.rotationPeriod > duration('2592000s')
recommendation: Testing custom modules
resourceSelector:
resourceTypes:
- cloudkms.googleapis.com/CryptoKey
severity: CRITICAL
displayName: customSHA2
moduleEnablementState: ENABLED
policyId: sha_custom_module_2
policySetId: PolicySetmix
- policy_set_id: BigQuery detective policy set
description: SHA module that new customers can automatically enable.
policies:
- policy_id: Public dataset
constraint:
securityHealthAnalyticsModule:
moduleEnablementState: ENABLED
moduleName: PUBLIC_DATASET
state: ACTIVE
Esempi
Per alcuni esempi, consulta la postura predefinita modelli.
Di seguito è riportato un file della postura che include i rilevatori di Security Health Analytics per AWS e Google Cloud:
description: Posture to help make storage workloads more secure across Google Cloud and AWS.
state: ACTIVE
policy_sets:
- policy_set_id: Google Cloud policy set
description: Policy set containing organization policies and Security Health Analytics modules for securing Cloud Storage.
policies:
- policy_id: Enforce Public Access Prevention
compliance_standards:
- standard: NIST SP 800-53
control: AC-3
- standard: NIST SP 800-53
control: AC-17
- standard: NIST SP 800-53
control: AC-20
constraint:
org_policy_constraint:
canned_constraint_id: storage.publicAccessPrevention
policy_rules:
- enforce: true
description: This policy prevents access to existing and future resources via the public internet by disabling and blocking access control lists (ACLs) and IAM permissions that grant access to allUsers and allAuthenticatedUsers.
- policy_id: Bucket IAM not monitored
compliance_standards:
- standard: NIST 800-53 R5
control: AC-12
- standard: NIST 800-53 R5
control: AC-2
- standard: NIST 800-53 R5
control: AC-7
constraint:
securityHealthAnalyticsModule:
moduleEnablementState: ENABLED
moduleName: BUCKET_IAM_NOT_MONITORED
description: This detector logs metric filter and creates alerts for Cloud Storage IAM permission changes. By monitoring changes to Cloud Storage bucket permissions, this detector can help you identify over-privileged users or suspicious activity at early stages.
- policy_set_id: AWS policy set
description: Policy set containing AWS built-in Security Health Analytics modules for securing S3 buckets.
policies:
- policy_id: S3 bucket replication enabled
compliance_standards:
- standard: NIST 800-53 R5
control: SI-13(5)
constraint:
securityHealthAnalyticsModule:
moduleEnablementState: ENABLED
moduleName: S3_BUCKET_REPLICATION_ENABLED
description: This control checks whether an Amazon S3 bucket has cross-region replication enabled. The control fails if the bucket doesn't have cross-region replication enabled or if same-region replication is also enabled.
- policy_id: S3 bucket logging enabled
compliance_standards:
- standard: NIST 800-53 R5
control: SI-13(5)
- standard: PCI DSS 3.2.1
control: 10.3.1
constraint:
securityHealthAnalyticsModule:
moduleEnablementState: ENABLED
moduleName: S3_BUCKET_LOGGING_ENABLED
description: AWS S3 Server Access Logging feature records access requests to storage buckets which is useful for security audits. By default, server access logging is not enabled for S3 buckets.
Passaggi successivi
- Crea un file YAML della postura ed eseguine il deployment nel tuo ambiente.
- Scopri di più sui moduli personalizzati per Security Health Analytics. incluse eventuali limitazioni.
- Scopri di più sui vincoli dei criteri dell'organizzazione personalizzati.
- Crea una risorsa Terraform per le posture.