PolicySet

Um grupo de um ou mais recursos Policy.

Representação JSON
{
  "policySetId": string,
  "description": string,
  "policies": [
    {
      object (Policy)
    }
  ]
}
Campos
policySetId

string

Obrigatório. Um identificador para o conjunto de políticas.

description

string

Opcional. Uma descrição do conjunto de políticas.

policies[]

object (Policy)

Obrigatório. Os recursos Policy no conjunto de políticas.

Cada política precisa ter um policyId exclusivo no conjunto de políticas.

Política

Os detalhes de uma política, incluindo as restrições que ela inclui.

Representação JSON
{
  "policyId": string,
  "complianceStandards": [
    {
      object (ComplianceStandard)
    }
  ],
  "constraint": {
    object (Constraint)
  },
  "description": string
}
Campos
policyId

string

Obrigatório. Um identificador especificado pelo usuário para a política.

Em um PolicySet, cada política precisa ter um identificador exclusivo.

complianceStandards[]

object (ComplianceStandard)

Opcional. Os padrões de compliance que a política ajuda a aplicar.

constraint

object (Constraint)

Obrigatório. As restrições que a política inclui.

description

string

Opcional. Uma descrição da política.

ComplianceStandard

Informações sobre um padrão de compliance que a política ajuda a aplicar.

Representação JSON
{
  "standard": string,
  "control": string
}
Campos
standard

string

Opcional. O padrão de compliance que a política ajuda a aplicar. Por exemplo, NIST SP 800-53

control

string

Opcional. O controle no padrão de compliance que a política ajuda a aplicar. Por exemplo, AC-3

Restrição

Metadados de uma restrição em uma Policy.

Representação JSON
{

  // Union field implementation can be only one of the following:
  "securityHealthAnalyticsModule": {
    object (SecurityHealthAnalyticsModule)
  },
  "securityHealthAnalyticsCustomModule": {
    object (SecurityHealthAnalyticsCustomModule)
  },
  "orgPolicyConstraint": {
    object (OrgPolicyConstraint)
  },
  "orgPolicyConstraintCustom": {
    object (OrgPolicyConstraintCustom)
  }
  // End of list of possible types for union field implementation.
}
Campos
Campo de união implementation. A implementação da restrição. implementation pode ser apenas de um dos tipos a seguir:
securityHealthAnalyticsModule

object (SecurityHealthAnalyticsModule)

Opcional. Um detector integrado para a Análise de integridade da segurança.

securityHealthAnalyticsCustomModule

object (SecurityHealthAnalyticsCustomModule)

Opcional. Um módulo personalizado para a Análise de integridade de segurança.

orgPolicyConstraint

object (OrgPolicyConstraint)

Opcional. Uma restrição de política da organização predefinida.

orgPolicyConstraintCustom

object (OrgPolicyConstraintCustom)

Opcional. Uma restrição de política da organização personalizada.

SecurityHealthAnalyticsModule

Um detector integrado para a Análise de integridade da segurança.

Representação JSON
{
  "moduleName": string,
  "moduleEnablementState": enum (EnablementState)
}
Campos
moduleName

string

Obrigatório. O nome do detector. Por exemplo, BIGQUERY_TABLE_CMEK_DISABLED

moduleEnablementState

enum (EnablementState)

Indica se o detector está ativado em um nível especificado da hierarquia de recursos.

EnablementState

Indica se um detector integrado ou um módulo personalizado está ativado em um nível especificado da hierarquia de recursos.

Enums
ENABLEMENT_STATE_UNSPECIFIED Valor padrão. Esse valor não é usado.
ENABLED O detector ou o módulo personalizado está ativado.
DISABLED O detector ou o módulo personalizado está desativado.

SecurityHealthAnalyticsCustomModule

Um módulo personalizado para a Análise de integridade de segurança.

Representação JSON
{
  "id": string,
  "displayName": string,
  "config": {
    object (CustomConfig)
  },
  "moduleEnablementState": enum (EnablementState)
}
Campos
id

string

Apenas saída. Imutável. O identificador exclusivo do módulo personalizado. Contém de 1 a 20 dígitos.

displayName

string

Opcional. Nome de exibição do módulo personalizado. Esse valor é usado como a categoria de descoberta de todas as descobertas retornadas pelo módulo personalizado. O nome de exibição precisa conter entre 1 e 128 caracteres alfanuméricos ou sublinhados e começar com uma letra minúscula.

config

object (CustomConfig)

Obrigatório. Configurações do módulo personalizado.

moduleEnablementState

enum (EnablementState)

Indica se o módulo personalizado está ativado em um nível especificado da hierarquia de recursos.

CustomConfig

Uma configuração de módulo personalizado para a Análise de integridade de segurança. Use CustomConfig para criar detectores personalizados que geram descobertas personalizadas para os recursos especificados.

Representação JSON
{
  "predicate": {
    object (Expr)
  },
  "customOutput": {
    object (CustomOutputSpec)
  },
  "resourceSelector": {
    object (ResourceSelector)
  },
  "severity": enum (Severity),
  "description": string,
  "recommendation": string
}
Campos
predicate

object (Expr)

Obrigatório. A expressão da linguagem de expressão comum (CEL) a ser avaliada. Quando a expressão é avaliada como true para um recurso, uma descoberta é gerada.

customOutput

object (CustomOutputSpec)

Opcional. Definições de propriedades de origem personalizadas a serem incluídas nas descobertas.

resourceSelector

object (ResourceSelector)

Obrigatório. Os tipos de recurso em que o módulo personalizado opera.

severity

enum (Severity)

Obrigatório. A gravidade das descobertas geradas pelo módulo personalizado.

description

string

Opcional. Uma descrição da vulnerabilidade ou configuração incorreta detectada pelo módulo personalizado.

A descrição aparece em cada descoberta. Forneça informações suficientes para ajudar um investigador a entender a descoberta.

O valor precisa estar entre aspas.

recommendation

string

Opcional. Uma explicação das etapas que as equipes de segurança podem seguir para resolver o problema detectado. A explicação aparece em cada descoberta.

Expr

Representa uma expressão textual na sintaxe Common Expression Language (CEL). A CEL é uma linguagem de expressão semelhante a C. A sintaxe e a semântica do CEL estão documentadas em https://github.com/google/cel-spec.

Exemplo (comparação):

title: "Summary size limit"
description: "Determines if a summary is less than 100 chars"
expression: "document.summary.size() < 100"

Exemplo (igualdade):

title: "Requestor is owner"
description: "Determines if requestor is the document owner"
expression: "document.owner == request.auth.claims.email"

Exemplo (lógica):

title: "Public documents"
description: "Determine whether the document should be publicly visible"
expression: "document.type != 'private' && document.type != 'internal'"

Exemplo (manipulação de dados):

title: "Notification string"
description: "Create a notification string with a timestamp."
expression: "'New message received at ' + string(document.create_time)"

As variáveis e funções exatas que podem ser referenciadas em uma expressão são determinadas pelo serviço que a avalia. Consulte a documentação do serviço para mais informações.

Representação JSON
{
  "expression": string,
  "title": string,
  "description": string,
  "location": string
}
Campos
expression

string

Representação textual de uma expressão na sintaxe Common Expression Language.

title

string

Opcional. Título da expressão, ou seja, uma string curta que descreve sua finalidade. Isso pode ser usado, por exemplo, em IUs que permitam inserir a expressão.

description

string

Opcional. Descrição da expressão. Este é um texto mais longo que descreve a expressão, por exemplo, quando o cursor é passado sobre ela em uma IU.

location

string

Opcional. String que indica o local da expressão para o relatório de erros, por exemplo, um nome de arquivo e uma posição no arquivo.

CustomOutputSpec

Definições de propriedades de origem personalizadas que podem aparecer nos resultados.

Representação JSON
{
  "properties": [
    {
      object (Property)
    }
  ]
}
Campos
properties[]

object (Property)

Opcional. As propriedades de origem personalizadas que podem aparecer nas descobertas.

Propriedade

Um par de nome e valor usado como uma propriedade de origem personalizada.

Representação JSON
{
  "name": string,
  "valueExpression": {
    object (Expr)
  }
}
Campos
name

string

Obrigatório. O nome da propriedade de origem personalizada.

valueExpression

object (Expr)

Opcional. A expressão CEL para o valor da propriedade de origem personalizada. Para propriedades de recursos, você pode retornar o valor da propriedade ou uma string entre aspas.

ResourceSelector

Um seletor para os tipos de recurso em que o detector será executado.

Representação JSON
{
  "resourceTypes": [
    string
  ]
}
Campos
resourceTypes[]

string

Obrigatório. Os tipos de recurso em que o detector será executado. Cada módulo personalizado pode especificar até cinco tipos de recursos.

Gravidade

A gravidade de uma descoberta.

Enums
SEVERITY_UNSPECIFIED Valor padrão. Esse valor não é usado.
CRITICAL Gravidade crítica.
HIGH Alta gravidade.
MEDIUM Média gravidade.
LOW Baixa gravidade.

OrgPolicyConstraint

Uma restrição de política da organização predefinida.

Representação JSON
{
  "cannedConstraintId": string,
  "policyRules": [
    {
      object (PolicyRule)
    }
  ]
}
Campos
cannedConstraintId

string

Obrigatório. Um identificador exclusivo para a restrição.

policyRules[]

object (PolicyRule)

Obrigatório. As regras aplicadas pela restrição.

PolicyRule

Uma regra que define os valores permitidos e negados para uma restrição da política da organização.

Representação JSON
{
  "condition": {
    object (Expr)
  },

  // Union field kind can be only one of the following:
  "values": {
    object (StringValues)
  },
  "allowAll": boolean,
  "denyAll": boolean,
  "enforce": boolean
  // End of list of possible types for union field kind.
}
Campos
condition

object (Expr)

Uma condição que determina se essa regra é usada para avaliar a política.

Quando definido, o campo google.type.Expr.expression precisa conter de 1 a 10 subexpressões, unidas pelos operadores || ou &&. Cada subexpresión precisa usar a função resource.matchTag() ou resource.matchTagId() do Common Expression Language (CEL).

A função resource.matchTag() usa os seguintes argumentos:

  • key_name: o nome do namespace da chave de tag, com o ID da organização e uma barra (/) como prefixo. Por exemplo, 123456789012/environment
  • value_name: o nome abreviado do valor da tag

Por exemplo: resource.matchTag('123456789012/environment, 'prod')

A função resource.matchTagId() usa os seguintes argumentos:

  • key_id: o ID permanente da chave de tag. Por exemplo, tagKeys/123456789012
  • value_id: o ID permanente do valor da tag. Por exemplo, tagValues/567890123456

Por exemplo: resource.matchTagId('tagKeys/123456789012', 'tagValues/567890123456')

Campo de união kind. O tipo de regra que o PolicyRule define. kind pode ser apenas de um dos tipos a seguir:
values

object (StringValues)

Os valores permitidos e negados para uma restrição de lista. Válido apenas para restrições de lista.

allowAll

boolean

Permite qualquer valor para uma restrição de lista. Válido apenas para restrições de lista.

denyAll

boolean

Define se todos os valores de uma restrição de lista serão negados. Válido apenas para restrições de lista.

enforce

boolean

Define se a restrição será aplicada. Válido apenas para restrições booleanas.

StringValues

Os valores permitidos e negados para uma restrição de lista.

Para todas as restrições, esses campos podem conter valores literais. Opcionalmente, você pode adicionar o prefixo is: a esses valores. Se o valor contiver dois-pontos (:), o prefixo is: será necessário.

Algumas restrições permitem que você especifique uma parte da hierarquia de recursos, conhecida como subárvore de hierarquia, à qual a restrição se aplica. Para especificar um subárvore de hierarquia, use o prefixo under:, seguido de um valor com um destes formatos:

  • projects/{projectId} (por exemplo, projects/tokyo-rain-123)
  • folders/{folder_id} (por exemplo, folders/1234567890123)
  • organizations/{organization_id} (por exemplo, organizations/123456789012)

O campo supportsUnder de uma restrição indica se é possível especificar um subárvore de hierarquia. Para saber quais restrições predefinidas permitem especificar uma subárvore de hierarquia, consulte a referência de restrições.

Representação JSON
{
  "allowedValues": [
    string
  ],
  "deniedValues": [
    string
  ]
}
Campos
allowedValues[]

string

Os valores permitidos para a restrição.

deniedValues[]

string

Os valores negados para a restrição.

OrgPolicyConstraintCustom

Uma restrição de política da organização personalizada.

Representação JSON
{
  "customConstraint": {
    object (CustomConstraint)
  },
  "policyRules": [
    {
      object (PolicyRule)
    }
  ]
}
Campos
customConstraint

object (CustomConstraint)

Obrigatório. Metadados da restrição.

policyRules[]

object (PolicyRule)

Obrigatório. As regras aplicadas pela restrição.

CustomConstraint

Uma restrição personalizada e definida pelo usuário. É possível aplicar a restrição apenas aos tipos de recurso especificados nela e apenas na organização em que ela foi definida.

Quando você cria uma restrição personalizada, ela não é aplicada automaticamente. É necessário usar uma política da organização para aplicar a restrição.

Representação JSON
{
  "name": string,
  "resourceTypes": [
    string
  ],
  "methodTypes": [
    enum (MethodType)
  ],
  "condition": string,
  "actionType": enum (ActionType),
  "displayName": string,
  "description": string,
  "updateTime": string
}
Campos
name

string

Imutável. O nome da restrição, no formato organizations/{organization_id}/customConstraints/custom.{custom_constraint_id}. Por exemplo, organizations/123456789012/customConstraints/custom.createOnlyE2TypeVms.

Precisa conter de 1 a 62 caracteres, excluindo o prefixo organizations/{organization_id}/customConstraints/custom..

resourceTypes[]

string

Imutável. O tipo de recurso ao qual a restrição se aplica, no formato {canonical_service_name}/{resource_type_name}. Por exemplo, compute.googleapis.com/Instance.

methodTypes[]

enum (MethodType)

Os tipos de operações a que a restrição se aplica.

condition

string

Uma expressão de condição da Common Expression Language (CEL) que precisa ser avaliada como true para que a restrição seja aplicada. O tamanho máximo é de 1.000 caracteres.

Exemplo:

  • resource.instanceName.matches('(production|test)_(.+_)?[\d]+'): é avaliado como true se o atributo instanceName do recurso contiver o seguinte:
    • O prefixo production ou test
    • Um sublinhado (_)
    • Opcional: um ou mais caracteres, seguidos por um sublinhado (_)
    • Um ou mais dígitos
  • resource.management.auto_upgrade == true: é avaliado como true se o atributo management.auto_upgrade do recurso for true.
actionType

enum (ActionType)

Se a ação será permitida ou negada.

displayName

string

Um nome de exibição para a restrição. O tamanho máximo é de 200 caracteres.

description

string

Uma descrição da restrição. O tamanho máximo é de 2.000 caracteres.

updateTime

string (Timestamp format)

Apenas saída. A última vez em que a restrição foi atualizada ou criada.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

MethodType

Um tipo de operação a que a restrição se aplica.

Se uma restrição se aplica a operações MethodType.UPDATE, ela também precisa se aplicar a operações MethodType.CREATE.

Enums
METHOD_TYPE_UNSPECIFIED Valor padrão. Esse valor não é usado.
CREATE Restrição aplicada ao criar o recurso.
UPDATE Restrição aplicada ao atualizar o recurso.
DELETE Incompatível. Restrição aplicada ao excluir o recurso.

ActionType

Se a ação será permitida ou negada.

Enums
ACTION_TYPE_UNSPECIFIED Valor padrão. Esse valor não é usado.
ALLOW Permita a ação.
DENY Negar a ação.