Questa pagina fornisce una panoramica delle coppie chiave-valore nel file posture.yaml
che crei per definire i criteri per la tua postura di sicurezza. Per creare un file YAML posture ed eseguirne il deployment nel tuo ambiente, consulta Gestire una postura di sicurezza.
Struttura del file YAML posture
Le posture sono file YAML che hanno 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 delle coppie chiave/valore
La seguente tabella fornisce una descrizione delle coppie chiave-valore presenti nel file 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 posture 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 Modificare lo stato di una postura. |
description: posture_description |
Una descrizione della norma. Questo valore è facoltativo. |
policy_set_id: policy_set_ID |
Un identificatore univoco per il criterio impostato all'interno del file della postura. Un file di postura può includere più insiemi di criteri. |
description: policy_set_description |
Una descrizione del criterio impostato. Questo valore è facoltativo. |
policy_id: policy_id |
Un identificatore univoco del criterio all'interno del criterio impostato. Un insieme di criteri può includere più criteri. |
standard: policy_compliance_standard |
Il nome dello standard di conformità supportato da questo criterio. |
control: policy_compliance_control |
Gli specifici controlli all'interno dello standard di conformità supportati 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 per i criteri dell'organizzazione dell'elenco sono allow_all , deny_all , allowed_values e denied_values . Il valore dei criteri dell'organizzazione booleane è enforce . |
org_policy_kind_value |
I valori del tipo allow_all , deny_all e enforce sono true o false . Il valore dei tipi allowed_values e denied_values è, rispettivamente, un elenco 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 delle etichette. 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 la segnalazione di errori. ad esempio un nome 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 intuitivo 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 di 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 controllano le proprietà dei tipi di risorse da scansionare. |
title: sha_custom_detector_predicate_title |
Il nome della proprietà del predicato del modulo personalizzato per Security Health Analytics. |
description: sha_custom_detector_predicate_description |
La descrizione della proprietà del predicato del modulo personalizzato per 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 |
Quale espressione restituire nell'output. |
title: sha_custom_detector_output_title |
Il titolo dell'output. |
description: sha_custom_detector_output_description |
La descrizione dell'output del modulo personalizzato per 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 che il modulo personalizzato analizza. |
severity: sha_custom_severity_level |
La gravità dei risultati creati da questo modulo. |
description: sha_custom_detector_description |
La vulnerabilità o la configurazione errata rilevata dal modulo personalizzato. |
recommendation: sha_custom_detector_recommendation |
Una descrizione di come risolvere il problema rilevato. |
Posture.yaml di esempio
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
Ad esempio, consulta i modelli di postura predefiniti.
Di seguito è riportato un file di 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 posture 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 personalizzati dell'organizzazione.
- Crea una risorsa Terraform per le posture.