Cette page présente les paires clé-valeur dans posture.yaml
.
que vous créez pour définir les stratégies de votre sécurité
de sécurité. Pour créer un
fichier YAML de stratégie de sécurité et le déployer dans votre environnement, consultez l'article Gérer un
de sécurité.
Structure du fichier YAML de la stratégie
Les stratégies sont des fichiers YAML présentant la structure suivante:
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
Description des paires clé-valeur
Le tableau suivant décrit les paires clé-valeur de l'attribut
posture.yaml
.
Paire clé-valeur | Description |
---|---|
name: posture_name |
Nom de la stratégie, commençant par une lettre. Cette valeur est facultative, car vous spécifiez le nom de la stratégie lorsque vous exécutez la commande gcloud scc postures create . |
state: posture_state |
Une valeur ENUM que vous pouvez définir sur ACTIVE , DRAFT ou
DEPRECATED Pour en savoir plus sur les états de la stratégie, consultez
Modifier
l'état d'une stratégie. |
description: posture_description |
Description de la règle. Cette valeur est facultative. |
policy_set_id: policy_set_ID |
Identifiant unique de la règle définie dans le fichier de stratégie. Un fichier de stratégie peut inclure plusieurs ensembles de règles. |
description: policy_set_description |
Description de l'ensemble de règles. Cette valeur est facultative. |
policy_id: policy_id |
Identifiant unique de la règle dans l'ensemble de règles. Un ensemble de règles peut inclure plusieurs règles. |
standard: policy_compliance_standard |
Nom de la norme de conformité acceptée par cette règle. |
control: policy_compliance_control |
Contrôles spécifiques de la norme de conformité pris en charge par cette règle. |
description: policy_compliance_description |
Description de la norme de conformité acceptée par cette règle. |
canned_constraint_id: constraint_ID |
Nom de la contrainte de règle d'administration. Par exemple, cloudbuild.allowedWorkerPools .
N'incluez pas le préfixe constraints/ dans constraint_ID. |
org_policy_kind |
Les valeurs des règles d'administration de la liste sont allow_all , deny_all , allowed_values et denied_values . La valeur de la règles d'administration booléenne est enforce . |
org_policy_kind_value |
Les valeurs du genre allow_all , deny_all et enforce sont true ou false . La valeur des genres allowed_values et denied_values est une liste de valeurs autorisées ou refusées, respectivement. |
condition: |
Condition qui détermine si cette règle est utilisée dans l'évaluation de la stratégie. Lorsqu'il est défini, le champ expression dans Expr doit inclure entre 1 et 10 sous-expressions, jointes par les opérateurs || ou && . Chaque sous-expression doit être au format resource.matchTag('ORG_ID/tag_key_short_name, 'tag_value_short_name') ou resource.matchTagId('tagKeys/key_id', 'tagValues/value_id') , où key_name et value_name sont les noms de ressources pour les clés d'étiquette et les valeurs. Ces noms sont disponibles dans le service Tag Manager. Voici un exemple d'expression: resource.matchTag('123456789/environment, 'prod') ou resource.matchTagId('tagKeys/123', 'tagValues/456') .
|
expression: org_policy_expression |
Représentation textuelle d'une expression dans la syntaxe Common Expression Language. Cette valeur est facultative. |
title: org_policy_title |
Description de l'objectif de l'expression. Cette valeur est facultative. |
description: org_policy_description |
Description de l'expression. Cette valeur est facultative. |
location: org_policy_location |
Chaîne qui indique l'emplacement de l'expression pour la création de rapports sur les erreurs. Par exemple, un nom de fichier et une position dans le fichier. Cette valeur est facultative. |
name: custom_org_constraint_name |
Nom de la contrainte personnalisée, au format organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME . Exemple :organizations/3589215982/customConstraints/custom.disableGkeAutoUpgrade L'CONSTRAINT_NAME ne peut pas comporter plus de 62 caractères. Le préfixe organizations/{organization_id}/customConstraints/custom n'est pas comptabilisé. La définition d'une contrainte personnalisée dans le fichier de stratégie crée une contrainte personnalisée. |
resource_types: custom_org_resource_type |
Nom complet de la ressource REST Google Cloud contenant l'objet et le champ que vous souhaitez restreindre. Il existe un maximum de 20 contraintes personnalisées par type de ressource. |
method_types: custom_org_method_type |
Liste des méthodes RESTful pour lesquelles appliquer la contrainte. |
condition: custom_org_condition |
Condition CEL qui fait référence à la ressource de service compatible. Ce champ ne doit pas comporter plus de 1000 caractères. |
action_type: custom_org_action_type |
Action à effectuer si la condition est remplie. |
display_name: custom_org_constraint_display_name |
Nom convivial de la contrainte. Ce champ ne doit pas comporter plus de 200 caractères. |
description: custom_org_constraint_description |
Description de la contrainte à afficher dans un message d'erreur en cas de non-respect de la règle. Ce champ ne doit pas comporter plus de 2 000 caractères. |
module_name: sha_detector_name |
Nom d'un détecteur Security Health Analytics. Par exemple, BIGQUERY_TABLE_CMEK_DISABLED . |
module_enablement_state: sha_detector_enabled |
Indique si le détecteur Security Health Analytics est activé. ENABLED ou DISABLED . |
display_name: sha_custom_detector_name |
Nom du module personnalisé de Security Health Analytics. Le nom doit comporter entre 1 et 128 caractères, commencer par une lettre minuscule et ne contenir que des caractères alphanumériques et des traits de soulignement. |
expression: sha_custom_detector_expression |
Les expressions CEL qui vérifient les propriétés des types de ressources à analyser. |
title: sha_custom_detector_predicate_title |
Nom de la propriété de prédicat du module personnalisé de Security Health Analytics. |
description: sha_custom_detector_predicate_description |
Description de la propriété de prédicat du module personnalisé de Security Health Analytics. |
location: sha_custom_detector_predicate_location |
Emplacement auquel la propriété de prédicat s'applique. |
name: sha_custom_detector_output_name |
Nom de la propriété custom_output . |
expression: sha_custom_detector_output_expression |
Expression à renvoyer dans la sortie. |
title: sha_custom_detector_output_title |
Titre de la sortie. |
description: sha_custom_detector_output_description |
Description de la sortie du module personnalisé de Security Health Analytics. |
location: sha_custom_detector_output_location |
Emplacement auquel la sortie s'applique. |
resource_types: sha_custom_detector_resource |
Types de ressources analysés par le module personnalisé. |
severity: sha_custom_severity_level |
Gravité des résultats créés par ce module. |
description: sha_custom_detector_description |
Faille ou erreur de configuration détectée par le module personnalisé. |
recommendation: sha_custom_detector_recommendation |
Description de la manière de résoudre le problème détecté. |
Exemple de fichier 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
Examples
Pour obtenir des exemples, consultez la stratégie prédéfinie modèles de ML.
Voici un fichier de stratégie qui inclut les détecteurs Security Health Analytics pour AWS et 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.
Étape suivante
- Créez un fichier YAML de stratégie et déployez-le dans votre environnement.
- En savoir plus sur les modules personnalisés pour Security Health Analytics y compris leurs limites.
- En savoir plus sur les contraintes liées aux règles d'administration personnalisées
- Créez une ressource Terraform pour les stratégies.