Nesta página, você terá uma visão geral dos pares de chave-valor no arquivo posture.yaml
criado para definir as políticas da sua postura
de segurança. Para criar um
arquivo YAML de postura e implantá-lo no seu ambiente, consulte Gerenciar uma postura
de segurança.
Estrutura de arquivos YAML de postura
As posturas são arquivos YAML com a seguinte estrutura:
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
Descrição dos pares de chave-valor
A tabela a seguir fornece uma descrição dos pares de chave-valor no
arquivo posture.yaml
.
Par de chave-valor | Descrição |
---|---|
name: posture_name |
O nome da postura, começando com uma letra. Esse valor é opcional porque você especifica o nome da postura ao executar o comando gcloud scc postures create . |
state: posture_state |
Um ENUM que você pode definir como ACTIVE , DRAFT ou DEPRECATED . Para saber mais sobre os estados, consulte Mudar o estado de uma postura. |
description: posture_description |
Uma descrição da política. Este valor é opcional. |
policy_set_id: policy_set_ID |
Um identificador exclusivo para a política definida no arquivo de postura. Um arquivo de postura pode incluir vários conjuntos de políticas. |
description: policy_set_description |
Uma descrição do conjunto de políticas. Este valor é opcional. |
policy_id: policy_id |
Um identificador exclusivo da política no conjunto. Um conjunto de políticas pode incluir várias delas. |
standard: policy_compliance_standard |
O nome do padrão de compliance compatível com esta política. |
control: policy_compliance_control |
Os controles específicos dentro do padrão de compliance que esta política suporta. |
description: policy_compliance_description |
Uma descrição do padrão de compliance compatível com esta política. |
canned_constraint_id: constraint_ID |
O nome da restrição da política da organização. Por exemplo, cloudbuild.allowedWorkerPools
Não inclua o prefixo constraints/ em constraint_ID. |
org_policy_kind |
Os valores das políticas da organização de lista são allow_all , deny_all , allowed_values , denied_values . O valor das políticas booleanas da organização é enforce . |
org_policy_kind_value |
Os valores para o tipo allow_all , deny_all e enforce são true ou false . O valor dos tipos allowed_values e denied_values é uma lista de valores permitidos ou negados, respectivamente. |
condition: |
Uma condição que determina se a regra é usada na avaliação da política. Quando definido, o campo expression em Expr precisa incluir de 1 a 10 subexpressões, unidas pelos operadores || ou && . Cada subexpressão precisa estar no formato resource.matchTag('ORG_ID/tag_key_short_name, 'tag_value_short_name') ou resource.matchTagId('tagKeys/key_id', 'tagValues/value_id') , em que key_name e value_name são os nomes de recursos de chaves e valores de rótulo. Esses nomes estão disponíveis no serviço do Gerenciador de tags. Um exemplo de expressão é: resource.matchTag('123456789/environment, 'prod') ou resource.matchTagId('tagKeys/123', 'tagValues/456') .
|
expression: org_policy_expression |
A representação textual de uma expressão na sintaxe de Common Expression Language. Este valor é opcional. |
title: org_policy_title |
A descrição da finalidade da expressão. Este valor é opcional. |
description: org_policy_description |
A descrição da expressão. Este valor é opcional. |
location: org_policy_location |
Uma string que indica o local da expressão para relatar erros. Por exemplo, um nome de arquivo e uma posição no arquivo. Este valor é opcional. |
name: custom_org_constraint_name |
O nome da restrição personalizada, no formato organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME . Por exemplo, organizations/3589215982/customConstraints/custom.disableGkeAutoUpgrade . O CONSTRAINT_NAME não pode ter mais de 62 caracteres. O prefixo organizations/{organization_id}/customConstraints/custom não é contado. Definir uma restrição personalizada no arquivo de postura cria uma nova restrição personalizada. |
resource_types: custom_org_resource_type |
O nome totalmente qualificado do recurso REST do Google Cloud que contém o objeto e o campo que você quer restringir. Há um máximo de 20 restrições personalizadas por tipo de recurso. |
method_types: custom_org_method_type |
A lista de métodos RESTful para aplicar a restrição. |
condition: custom_org_condition |
A condição CEL que se refere ao recurso de serviço com suporte. Esse campo tem um comprimento máximo de 1000 caracteres. |
action_type: custom_org_action_type |
A ação a ser realizada se a condição for atendida. |
display_name: custom_org_constraint_display_name |
Um nome legível para a restrição. Esse campo tem um comprimento máximo de 200 caracteres. |
description: custom_org_constraint_description |
A descrição da restrição a ser exibida como uma mensagem de erro quando a política é violada. Esse campo tem um comprimento máximo de 2000 caracteres. |
module_name: sha_detector_name |
O nome de um detector da Análise de integridade da segurança. Por exemplo, BIGQUERY_TABLE_CMEK_DISABLED |
module_enablement_state: sha_detector_enabled |
Se o detector da Análise de integridade da segurança está ativado. ENABLED ou DISABLED . |
display_name: sha_custom_detector_name |
O nome do módulo personalizado da Análise de integridade da segurança. O nome precisa ter entre 1 e 128 caracteres, começar com letra minúscula e conter apenas caracteres alfanuméricos ou sublinhados. |
expression: sha_custom_detector_expression |
As expressões CEL que verificam as propriedades dos tipos de recursos que serão verificados. |
title: sha_custom_detector_predicate_title |
O nome da propriedade do predicado do módulo personalizado da Análise de integridade da segurança. |
description: sha_custom_detector_predicate_description |
A descrição da propriedade do predicado do módulo personalizado da Análise de integridade da segurança. |
location: sha_custom_detector_predicate_location |
O local ao qual a propriedade do predicado se aplica. |
name: sha_custom_detector_output_name |
O nome da propriedade custom_output . |
expression: sha_custom_detector_output_expression |
Qual expressão será retornada na saída. |
title: sha_custom_detector_output_title |
O título da saída. |
description: sha_custom_detector_output_description |
A descrição da saída do módulo personalizado da Análise de integridade da segurança. |
location: sha_custom_detector_output_location |
O local ao qual a saída se aplica. |
resource_types: sha_custom_detector_resource |
Os tipos de recursos que o módulo personalizado verifica. |
severity: sha_custom_severity_level |
A gravidade das descobertas criadas por este módulo. |
description: sha_custom_detector_description |
A vulnerabilidade ou configuração incorreta que o módulo personalizado detecta. |
recommendation: sha_custom_detector_recommendation |
Uma descrição de como corrigir o problema detectado. |
Exemplo de 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
Examples
Para ver exemplos, consulte os modelos de postura predefinida.
Confira a seguir um arquivo de postura que inclui detectores da Análise de integridade da segurança para a AWS e o 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.
A seguir
- Crie um arquivo YAML de postura e implante-o no seu ambiente.
- Saiba mais sobre os módulos personalizados do Security Health Analytics, incluindo quaisquer limitações.
- Saiba mais sobre as restrições personalizadas da política da organização.
- Crie um recurso do Terraform para posturas.