En esta página, se proporciona una descripción general de los pares clave-valor de posture.yaml
.
de seguridad que creas para definir las políticas de tu
de la organización. Para crear un
archivo YAML de postura e implementarlo en tu entorno, consulta Administra un
postura de seguridad en la nube.
Estructura del archivo YAML de la postura
Las posiciones son archivos YAML que tienen la siguiente estructura:
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
Descripción de los pares clave-valor
En la siguiente tabla, se proporciona una descripción de los pares clave-valor en la
posture.yaml
.
Par clave-valor | Descripción |
---|---|
name: posture_name |
El nombre de la postura, que comienza con una letra. Este valor es opcional porque especificas el nombre de la postura cuando ejecutas el comando gcloud scc postures create . |
state: posture_state |
Un ENUM que puedes configurar como ACTIVE , DRAFT o
DEPRECATED Para obtener más información sobre los estados de postura, consulta
Cambiar
el estado de una postura. |
description: posture_description |
Una descripción de la política. Este valor es opcional. |
policy_set_id: policy_set_ID |
Un identificador único para el conjunto de políticas dentro del archivo de postura. Un archivo de postura puede incluir varios conjuntos de políticas. |
description: policy_set_description |
Una descripción del conjunto de políticas. Este valor es opcional. |
policy_id: policy_id |
Un identificador único para la política dentro del conjunto de políticas. Un conjunto de políticas puede incluir varias políticas. |
standard: policy_compliance_standard |
El nombre del estándar de cumplimiento que admite esta política. |
control: policy_compliance_control |
Los controles específicos dentro del estándar de cumplimiento que admite esta política. |
description: policy_compliance_description |
Una descripción del estándar de cumplimiento que respalda esta política. |
canned_constraint_id: constraint_ID |
El nombre de la restricción de la política de la organización. Por ejemplo, cloudbuild.allowedWorkerPools .
No incluyas el prefijo constraints/ en constraint_ID. |
org_policy_kind |
Los valores de las políticas de la organización de la lista son allow_all , deny_all , allowed_values y denied_values . El valor para las políticas de la organización booleanas es enforce . |
org_policy_kind_value |
Los valores para los tipos allow_all , deny_all , enforce son true o false . El valor de los tipos allowed_values y denied_values es una lista de valores permitidos o denegados, respectivamente. |
condition: |
Una condición que determina si esta regla se usa en la evaluación de la política. Cuando se establece, el campo expression de Expr debe incluir de 1 a 10 subexpresiones, unidas por los operadores || o && . Cada subexpresión debe tener el formato resource.matchTag('ORG_ID/tag_key_short_name, 'tag_value_short_name') o resource.matchTagId('tagKeys/key_id', 'tagValues/value_id') , en el que key_name y value_name son los nombres de recursos para las claves y los valores de etiqueta. Estos nombres se encuentran disponibles en el servicio del administrador de etiquetas. Una expresión de ejemplo es resource.matchTag('123456789/environment, 'prod') o resource.matchTagId('tagKeys/123', 'tagValues/456') .
|
expression: org_policy_expression |
La representación textual de una expresión en la sintaxis de Common Expression Language. Este valor es opcional. |
title: org_policy_title |
Es la descripción del propósito de la expresión. Este valor es opcional. |
description: org_policy_description |
Es la descripción de la expresión. Este valor es opcional. |
location: org_policy_location |
Es una cadena que indica la ubicación de la expresión para informar errores. Por ejemplo, un nombre de archivo y una posición en el archivo. Este valor es opcional. |
name: custom_org_constraint_name |
El nombre de la restricción personalizada, en el formato organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME . Por ejemplo, organizations/3589215982/customConstraints/custom.disableGkeAutoUpgrade El CONSTRAINT_NAME no puede tener más de 62 caracteres. No se cuenta el prefijo organizations/{organization_id}/customConstraints/custom . Cuando se define una restricción personalizada en el archivo de postura, se crea una nueva restricción personalizada. |
resource_types: custom_org_resource_type |
El nombre completamente calificado del recurso de REST de Google Cloud que contiene el objeto y el campo que deseas restringir. Hay un máximo de 20 restricciones personalizadas por tipo de recurso. |
method_types: custom_org_method_type |
La lista de métodos RESTful para los que se aplica la restricción. |
condition: custom_org_condition |
La condición de CEL que hace referencia al recurso de servicio admitido. La longitud máxima de este campo es 1000 caracteres. |
action_type: custom_org_action_type |
La acción que se debe realizar si se cumple la condición. |
display_name: custom_org_constraint_display_name |
Es un nombre sencillo para la restricción. La longitud máxima de este campo es 200 caracteres. |
description: custom_org_constraint_description |
Es la descripción de la restricción que se mostrará como un mensaje de error cuando se incumpla la política. La longitud máxima de este campo es 2000 caracteres. |
module_name: sha_detector_name |
El nombre de un detector de Security Health Analytics. Por ejemplo, BIGQUERY_TABLE_CMEK_DISABLED . |
module_enablement_state: sha_detector_enabled |
Indica si el detector de Security Health Analytics está habilitado. ENABLED o DISABLED |
display_name: sha_custom_detector_name |
El nombre del módulo personalizado para Security Health Analytics. Debe tener entre 1 y 128 caracteres, comenzar con una letra minúscula y contener solo caracteres alfanuméricos o guiones bajos. |
expression: sha_custom_detector_expression |
Las expresiones en CEL que verifican las propiedades de los tipos de recursos que se analizarán. |
title: sha_custom_detector_predicate_title |
Es el nombre de la propiedad del predicado para el módulo personalizado de Security Health Analytics. |
description: sha_custom_detector_predicate_description |
Es la descripción de la propiedad de predicado para el módulo personalizado de Security Health Analytics. |
location: sha_custom_detector_predicate_location |
La ubicación a la que se aplica la propiedad del predicado. |
name: sha_custom_detector_output_name |
Es el nombre de la propiedad custom_output . |
expression: sha_custom_detector_output_expression |
Es la expresión que se debe mostrar en el resultado. |
title: sha_custom_detector_output_title |
Es el título del resultado. |
description: sha_custom_detector_output_description |
Es la descripción del resultado del módulo personalizado de Security Health Analytics. |
location: sha_custom_detector_output_location |
La ubicación a la que se aplica el resultado. |
resource_types: sha_custom_detector_resource |
Los tipos de recursos que analiza el módulo personalizado. |
severity: sha_custom_severity_level |
La gravedad de los resultados que crea este módulo. |
description: sha_custom_detector_description |
La vulnerabilidad o la configuración incorrecta que detecta el módulo personalizado. |
recommendation: sha_custom_detector_recommendation |
Una descripción de cómo solucionar el problema detectado |
Ejemplo de position.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
Ejemplos
Para ver ejemplos, consulta el documento plantillas.
El siguiente es un archivo de postura que incluye detectores de Security Health Analytics para AWS y 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.
¿Qué sigue?
- Crea un archivo YAML de postura y, luego, impleméntalo en tu entorno.
- Obtén más información sobre los módulos personalizados para Security Health Analytics, incluidas las limitaciones.
- Obtén más información sobre las restricciones de las políticas personalizadas de la organización.
- Crea un recurso de Terraform para las posiciones.