Criar e gerir políticas organizacionais personalizadas

Google Cloud A política da organização dá-lhe um controlo centralizado e programático sobre os recursos da sua organização. Enquanto administrador de políticas da organização, pode definir uma política da organização, que é um conjunto de restrições denominadas restrições que se aplicam aGoogle Cloud recursos e descendentes desses recursos na Google Cloud hierarquia de recursos. Pode aplicar políticas da organização ao nível da organização, da pasta ou do projeto.

A política da organização oferece restrições predefinidas para vários Google Cloud serviços. No entanto, se quiser um maior controlo das políticas da sua organização, pode criar políticas da organização personalizadas.

Esta página descreve como ver, criar e gerir políticas de organização personalizadas. As políticas de organização personalizadas são criadas pelos administradores para oferecer um controlo mais detalhado e personalizável sobre os campos específicos que são restritos pelas políticas de organização.

Antes de começar

Funções necessárias

Para receber as autorizações de que precisa para gerir políticas da organização, peça ao seu administrador que lhe conceda as seguintes funções do IAM na organização:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Pode delegar a administração das políticas da organização adicionando condições do IAM à associação da função de administrador da política da organização. Para controlar os recursos onde um principal pode gerir políticas da organização, pode tornar a atribuição de funções condicional a uma etiqueta específica. Para mais informações, consulte o artigo Usar restrições.

Restrições personalizadas

Uma restrição personalizada é criada num ficheiro YAML que especifica os recursos, os métodos, as condições e as ações sujeitas à restrição. Estas são específicas do serviço no qual está a aplicar a política da organização. As condições da restrição personalizada são definidas através do Idioma de expressão comum (IEC).

Configure uma restrição personalizada

Pode criar uma restrição personalizada e configurá-la para utilização em políticas organizacionais através da Google Cloud consola ou da Google Cloud CLI.

Consola

  1. Na Google Cloud consola, aceda à página Políticas de organização.

    Aceda às políticas da organização

  2. Selecione o selecionador de projetos na parte superior da página.

  3. No seletor de projetos, selecione o recurso para o qual quer definir a política de organização.

  4. Clique em Restrição personalizada.

  5. Na caixa Nome a apresentar, introduza um nome simples para a restrição. Este campo tem um comprimento máximo de 200 carateres. Não use IIP nem dados confidenciais nos nomes a apresentar, uma vez que podem ser expostos em mensagens de erro.

  6. Na caixa ID da restrição, introduza o nome que quer para a nova restrição personalizada. Uma restrição personalizada tem de começar com custom. e só pode incluir letras maiúsculas, letras minúsculas ou números, por exemplo, custom.disableGkeAutoUpgrade. O comprimento máximo deste campo é de 70 carateres, sem contar com o prefixo, por exemplo, organizations/123456789/customConstraints/custom.. Não inclua IIP nem dados confidenciais no ID da restrição, uma vez que podem ser expostos em mensagens de erro.

  7. Na caixa Descrição, introduza uma descrição simples da restrição a apresentar como mensagem de erro quando a política for violada. Este campo tem um comprimento máximo de 2000 carateres. Não inclua IIP nem dados confidenciais na descrição, uma vez que podem ser expostos em mensagens de erro.

  8. Na caixa Tipo de recurso, selecione o nome do Google Cloud recurso REST que contém o objeto e o campo que quer restringir, por exemplo, container.googleapis.com/NodePool. A maioria dos tipos de recursos pode ter um máximo de 20 restrições personalizadas por recurso. Se tentar criar uma restrição personalizada para um recurso que já tenha o número máximo de restrições personalizadas, a operação falha.

  9. Em Método de aplicação, selecione se quer aplicar a restrição num método REST CREATE ou nos métodos CREATE e UPDATE. Se aplicar a restrição com o método UPDATE num recurso que viole a restrição, as alterações a esse recurso são bloqueadas pela política da organização, a menos que a alteração resolva a violação.

    Nem todos os serviços Google Cloud suportam ambos os métodos. Para ver os métodos suportados para cada serviço, encontre o serviço em Serviços suportados.

  10. Para definir uma condição, clique em Editar condição.

    1. No painel Adicionar condição, crie uma condição CEL que se refira a um recurso de serviço suportado, por exemplo, resource.management.autoUpgrade == false. Este campo tem um comprimento máximo de 1000 carateres. Para ver detalhes sobre a utilização do IEC, consulte o artigo Idioma de expressão comum. Para mais informações sobre os recursos de serviço que pode usar nas suas restrições personalizadas, consulte Serviços suportados de restrições personalizadas.

    2. Clique em Guardar.

  11. Em Ação, selecione se quer permitir ou recusar o método avaliado se a condição acima for cumprida.

    A ação deny significa que a operação para criar ou atualizar o recurso é bloqueada se a condição for avaliada como verdadeira.

    A ação allow significa que a operação para criar ou atualizar o recurso só é permitida se a condição for avaliada como verdadeira. Todos os outros casos, exceto os explicitamente indicados na condição, são bloqueados.

  12. Clique em Criar restrição.

Quando tiver introduzido um valor em cada campo, a configuração YAML equivalente para esta restrição personalizada é apresentada à direita.

gcloud

Para criar uma restrição personalizada com a Google Cloud CLI, crie um ficheiro YAML para a restrição personalizada:

name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- RESOURCE_NAME
methodTypes:
- METHOD1
- METHOD2
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION

Substitua o seguinte:

  • ORGANIZATION_ID: o ID da sua organização, como 123456789.

  • CONSTRAINT_NAME: o nome que quer para a nova restrição personalizada. Uma restrição personalizada tem de começar com custom. e só pode incluir letras maiúsculas, letras minúsculas ou números, por exemplo, custom.disableGkeAutoUpgrade. O comprimento máximo deste campo é de 70 carateres, sem contar com o prefixo, por exemplo, organizations/123456789/customConstraints/custom..

  • RESOURCE_NAME: o nome totalmente qualificado do recurso REST que contém o objeto e o campo que quer restringir.Google Cloud Por exemplo, container.googleapis.com/NodePool. A maioria dos tipos de recursos pode ter um máximo de 20 restrições personalizadas por recurso. Se tentar criar uma restrição personalizada para um recurso que já tenha o número máximo de restrições personalizadas, a operação falha. Para mais informações sobre os recursos de serviço que pode usar nas suas restrições personalizadas, consulte os serviços suportados de restrições personalizadas.

  • METHOD1,METHOD2: uma lista de métodos RESTful para os quais aplicar a restrição. Pode ser CREATE ou CREATE e UPDATE. Se aplicar a restrição com o método UPDATE num recurso que viole a restrição, qualquer alteração a esse recurso é bloqueada pela política da organização.

Nem todos os serviços Google Cloud suportam ambos os métodos. Para ver os métodos suportados para cada serviço, encontre o serviço em Serviços suportados.

  • CONDITION: uma condição CEL que se refere a um recurso de serviço suportado, por exemplo, "resource.management.autoUpgrade == false". Este campo tem um comprimento máximo de 1000 carateres. Para ver detalhes sobre a utilização do IEC, consulte o artigo Idioma de expressão comum.

  • ACTION: a ação a tomar se a condição condition for cumprida. Pode ser ALLOW ou DENY.

    A ação de recusa significa que, se a condição for avaliada como verdadeira, a operação para criar ou atualizar o recurso é bloqueada.

    A ação allow significa que, se a condição for avaliada como verdadeira, a operação para criar ou atualizar o recurso é permitida. Isto também significa que todos os outros casos, exceto o que está explicitamente indicado na condição, são bloqueados.

  • DISPLAY_NAME: um nome simples para a restrição. Este campo tem um comprimento máximo de 200 carateres.

  • DESCRIPTION: uma descrição acessível da restrição a apresentar como uma mensagem de erro quando a política é violada. Este campo tem um comprimento máximo de 2000 carateres.

Depois de criar o ficheiro YAML para uma nova restrição personalizada, tem de o configurar para o disponibilizar para as políticas da organização na sua organização. Para configurar uma restrição personalizada, use o comando gcloud org-policies set-custom-constraint:

gcloud org-policies set-custom-constraint CONSTRAINT_PATH
Substitua CONSTRAINT_PATH pelo caminho completo para o seu ficheiro de restrições personalizado. Por exemplo, /home/user/customconstraint.yaml. Após a conclusão, as restrições personalizadas ficam disponíveis como políticas da organização na sua lista de Google Cloud políticas da organização. Para verificar se a restrição personalizada existe, use o comando gcloud org-policies list-custom-constraints:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
Substitua ORGANIZATION_ID pelo ID do recurso da sua organização. Para mais informações, consulte o artigo Ver políticas da organização.

Atualize uma restrição personalizada

Pode atualizar uma restrição personalizada editando a restrição na Google Cloud consola ou criando um novo ficheiro YAML e usando novamente o comando set-custom-constraint gcloud CLI. Não existe controlo de versões das restrições personalizadas, pelo que esta ação substitui a restrição personalizada existente. Se a restrição personalizada já estiver aplicada, a restrição personalizada atualizada entra em vigor imediatamente.

Consola

  1. Na Google Cloud consola, aceda à página Políticas de organização.

    Aceda às políticas da organização

  2. Selecione o selecionador de projetos na parte superior da página.

  3. No seletor de projetos, selecione o recurso para o qual quer atualizar a política de organização.

  4. Selecione a restrição que quer editar na lista na página Políticas de organização. É apresentada a página Detalhes da política para essa restrição.

  5. Clique em Editar restrição.

  6. Faça alterações ao nome a apresentar, à descrição, ao método de aplicação, à condição e à ação. Depois de criar a restrição, não pode alterar o ID da restrição nem o tipo de recurso.

  7. Clique em Guardar alterações.

gcloud

Para editar uma restrição personalizada existente através da Google Cloud CLI, crie um novo ficheiro YAML com as alterações que quer fazer:

name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- RESOURCE_NAME
methodTypes:
- METHOD1
- METHOD2
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION

Substitua o seguinte:

  • ORGANIZATION_ID: o ID da sua organização, como 123456789.

  • CONSTRAINT_NAME: o nome que quer para a nova restrição personalizada. Uma restrição personalizada tem de começar com custom. e só pode incluir letras maiúsculas, letras minúsculas ou números, por exemplo, custom.disableGkeAutoUpgrade. O comprimento máximo deste campo é de 70 carateres, sem contar com o prefixo, por exemplo, organizations/123456789/customConstraints/custom..

  • RESOURCE_NAME: o nome totalmente qualificado do recurso REST que contém o objeto e o campo que quer restringir.Google Cloud Por exemplo, container.googleapis.com/NodePool. Para mais informações sobre os recursos de serviço que pode usar nas suas restrições personalizadas, consulte Serviços suportados de restrições personalizadas.

  • METHOD1,METHOD2: uma lista de métodos RESTful para os quais aplicar a restrição. Pode ser CREATE ou CREATE e UPDATE. Se aplicar a restrição com o método UPDATE num recurso que viole a restrição, qualquer alteração a esse recurso é bloqueada pela política da organização.

Nem todos os serviços Google Cloud suportam ambos os métodos. Para ver os métodos suportados para cada serviço, encontre o serviço em Serviços suportados.

  • CONDITION: uma condição CEL que se refere a um recurso de serviço suportado, por exemplo, "resource.management.autoUpgrade == false". Este campo tem um comprimento máximo de 1000 carateres. Para ver detalhes sobre a utilização do IEC, consulte o artigo Idioma de expressão comum.

  • ACTION: a ação a tomar se a condição condition for cumprida. Pode ser ALLOW ou DENY.

  • DISPLAY_NAME: um nome simples para a restrição. Este campo tem um comprimento máximo de 200 carateres.

  • DESCRIPTION: uma descrição acessível da restrição a apresentar como uma mensagem de erro quando a política é violada. Este campo tem um comprimento máximo de 2000 carateres.

Depois de criar o ficheiro YAML para uma nova restrição personalizada, tem de o configurar para o disponibilizar para as políticas da organização na sua organização. Para configurar uma restrição personalizada, use o comando gcloud org-policies set-custom-constraint:

gcloud org-policies set-custom-constraint CONSTRAINT_PATH
Substitua CONSTRAINT_PATH pelo caminho completo para o seu ficheiro de restrições personalizado. Por exemplo, /home/user/customconstraint.yaml. Após a conclusão, as restrições personalizadas ficam disponíveis como políticas da organização na sua lista de Google Cloud políticas da organização. Para verificar se a restrição personalizada existe, use o comando gcloud org-policies list-custom-constraints:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
Substitua ORGANIZATION_ID pelo ID do recurso da sua organização. Para mais informações, consulte o artigo Ver políticas da organização.

Elimine uma restrição personalizada

Pode eliminar uma restrição personalizada através da Google Cloud consola ou da CLI Google Cloud.

Consola

  1. Na Google Cloud consola, aceda à página Políticas de organização.

    Aceda às políticas da organização

  2. Selecione o selecionador de projetos na parte superior da página.

  3. No seletor de projetos, selecione o recurso para o qual quer eliminar a política de organização.

  4. Selecione a restrição que quer eliminar da lista na página Políticas da organização. É apresentada a página Detalhes da política para essa restrição.

  5. Clique em Eliminar.

  6. Para confirmar que quer eliminar a restrição, clique em Eliminar.

gcloud

Para eliminar uma restrição personalizada, use o comando da CLI gcloud:org-policies delete-custom-constraint

gcloud org-policies delete-custom-constraint custom.CONSTRAINT_NAME \
  --organization=ORGANIZATION_ID

Substitua o seguinte:

  • ORGANIZATION_ID: o ID da sua organização, como 123456789.

  • CONSTRAINT_NAME: o nome da restrição personalizada. Por exemplo, custom.disableGkeAutoUpgrade.

O resultado é semelhante ao seguinte:

Deleted custom constraint [organizations/123456789/customConstraints/custom.disableGkeAutoUpgrade]

Se eliminar uma restrição personalizada, todas as políticas criadas com essa restrição continuam a existir, mas são ignoradas. Não pode criar outra restrição personalizada com o mesmo nome de uma restrição personalizada eliminada.

Teste e analise as alterações às políticas da organização

Recomendamos que teste e simule todas as alterações às suas políticas de organização para compreender melhor o estado do seu ambiente e como as alterações o afetam.

O Simulador de políticas para a política da organização ajuda a compreender o efeito de uma restrição e de uma política da organização no seu ambiente atual. Com esta ferramenta, pode rever todas as configurações de recursos para ver onde ocorrem violações antes de serem aplicadas no seu ambiente de produção. Para ver instruções detalhadas, consulte o artigo Teste as alterações da política da organização com o simulador de políticas.

Quando compreender o efeito atual, pode criar uma política da organização no modo de teste para compreender o impacto e as potenciais violações de uma política nos próximos 30 dias. Uma política da organização no modo de execução de ensaio é um tipo de política da organização em que as violações da política são registadas em auditoria, mas as ações que violam a política não são recusadas. Pode criar uma política de organização no modo de teste a partir de uma restrição personalizada através da Google Cloud consola ou da CLI Google Cloud. Para instruções detalhadas, consulte o artigo Crie uma política de organização no modo de teste.

Aplique uma política da organização personalizada

Depois de configurar uma restrição personalizada, esta funciona de forma idêntica às restrições booleanas predefinidas. Google Cloud Verifica primeiro as restrições personalizadas quando avalia se um pedido do utilizador é permitido. Se alguma das políticas da organização personalizadas recusar o pedido, este é rejeitado. Em seguida, Google Cloud verifica se existem políticas da organização predefinidas aplicadas nesse recurso.

Pode aplicar uma restrição criando uma política da organização que a referencie e, em seguida, aplicando essa política da organização a um Google Cloud recurso.

Consola

  1. Na Google Cloud consola, aceda à página Políticas de organização.

    Aceda às políticas da organização

  2. No seletor de projetos, selecione o projeto para o qual quer definir a política de organização.
  3. Na lista da página Políticas da organização, selecione a restrição para ver a página Detalhes da política dessa restrição.
  4. Para configurar a política da organização para este recurso, clique em Gerir política.
  5. Na página Editar política, selecione Substituir política do elemento principal.
  6. Clique em Adicionar regra.
  7. Na secção Aplicação, selecione se a aplicação desta política organizacional está ativada ou desativada.
  8. Opcional: para tornar a política de organização condicional a uma etiqueta, clique em Adicionar condição. Tenha em atenção que, se adicionar uma regra condicional a uma política da organização, tem de adicionar, pelo menos, uma regra incondicional. Caso contrário, não é possível guardar a política. Para mais informações, consulte o artigo Definir uma política de organização com etiquetas.
  9. Clique em Testar alterações para simular o efeito da política da organização. A simulação de políticas não está disponível para restrições geridas antigas. Para mais informações, consulte o artigo Teste as alterações à política da organização com o simulador de políticas.
  10. Para concluir e aplicar a política da organização, clique em Definir política. A política demora até 15 minutos a entrar em vigor.

gcloud

Para criar uma política da organização com regras booleanas, crie um ficheiro YAML de política que faça referência à restrição:

      name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
      spec:
        rules:
        - enforce: true
    

Substitua o seguinte:

  • PROJECT_ID: o projeto no qual quer aplicar a restrição.
  • CONSTRAINT_NAME: o nome que definiu para a restrição personalizada. Por exemplo, custom.disableGkeAutoUpgrade.

Para aplicar a política da organização que contém a restrição, execute o seguinte comando:

    gcloud org-policies set-policy POLICY_PATH
    

Substitua POLICY_PATH pelo caminho completo para o ficheiro YAML da política da organização. A política demora até 15 minutos a entrar em vigor.

Exemplo de restrição

Pode definir restrições personalizadas semelhantes às restrições predefinidas fornecidas pela Google. Um ficheiro YAML de restrição personalizada típico tem um aspeto semelhante ao seguinte:

name: organizations/1234567890123/customConstraints/custom.disableGkeAutoUpgrade
resourceTypes:
- container.googleapis.com/NodePool
methodTypes:
- CREATE
- UPDATE
condition: "resource.management.autoUpgrade == false"
actionType: ALLOW
displayName: Disable GKE auto upgrade
description: Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.

Idioma de expressão comum

O serviço de políticas da organização usa o Idioma de expressão comum (IEC) para avaliar as condições nas restrições personalizadas. O IEC é um idioma de código aberto não Turing completo que implementa semântica comum para a avaliação de expressões.

Cada serviço que suporta restrições personalizadas disponibiliza um conjunto específico dos respetivos recursos e os campos desses recursos. Os campos disponíveis são fortemente tipados e podem ser referenciados diretamente por restrições personalizadas.

Pode criar condições CEL que fazem referência a campos de recursos de serviços com base no tipo do campo. O serviço de políticas da organização suporta um subconjunto de tipos de dados, expressões e macros CEL. As secções seguintes indicam os tipos de dados disponíveis e as expressões e macros comuns que funcionam com eles.

Para ver detalhes sobre as expressões e as macros disponíveis para cada serviço, consulte Serviços suportados de restrições personalizadas.

O exemplo de JSON seguinte mostra cada um dos potenciais tipos de campos aos quais pode fazer referência através de restrições personalizadas:

{
  integerValue: 1
  stringValue: "A text string"
  booleanValue: true
  nestedValue: {
    nestedStringValue: "Another text string"
  }
  listValue: [foo, bar]
  mapValue["costCenter"] == "123"
}

Para cada expressão CEL, a restrição personalizada é aplicada quando a condição é avaliada como true. Pode combinar expressões com and (&&) e or (||) para criar uma consulta complexa. Quando criar o ficheiro YAML ou JSON para a restrição personalizada, inclua a consulta completa entre aspas duplas (").

Número inteiro

Os campos de números inteiros, como integerValue no exemplo anterior, permitem que os operadores de comparação sejam usados em condições. Por exemplo:

resource.integerValue == 1
resource.integerValue > 5
resource.integerValue < 10

String

Os campos de string, como stringValue no exemplo anterior, podem ser avaliados usando um literal de string, uma expressão regular ou uma expressão CEL. Por exemplo:

resource.stringValue == "abc"
// stringValue is exactly "abc".

resource.stringValue.matches("dev$")
// stringValue matches a regular expression, which specifies the string ends
// with the word "dev".

resource.stringValue.startsWith("startValue")
// stringValue starts with "startValue".

resource.stringValue.endsWith("endValue")
// stringValue ends with "endValue".

resource.stringValue.contains("fooBar")
// stringValue contains "fooBar".

Os campos aninhados, como nestedStringValue no exemplo anterior, têm de ser referenciados com o caminho completo. Por exemplo:

resource.nestedValue.nestedStringValue == "foo"
// nestedValue contains the object nestedStringValue, which has a value of "foo".

Booleano

Os campos booleanos, como booleanValue no exemplo anterior, contêm um valor booleano, que é true ou false.

Lista

Os campos de lista, como listValue no exemplo anterior, podem ser avaliados pelo tamanho da lista, pelo conteúdo da lista e se um elemento específico existe em qualquer parte da lista.

Por exemplo:

resource.listValue.size() >= 1 && resource.listValue[0] == "bar"
// listValue has size greater than or equal to one, and the first element is "bar".

resource.listValue.exists(value, value == "foo")
// listValue has at least one element that is exactly "foo".

resource.listValue.all(value, value.contains("foo"))
// listValue is a list of values that are all exactly "foo".

Mapa

Os campos de mapeamento, como mapValue no exemplo anterior, são pares de chave-valor que podem ser avaliados com base na existência e no valor de elementos específicos.

Por exemplo:

has(resource.mapValue.foo) && resource.mapValue.foo == "bar"
// mapValue contains the key "foo", and that key has the value "bar".

Resolução de problemas de erros da CEL

Uma condição criada com expressões inválidas ou incompatibilidades de tipos devolve um erro quando tenta configurar a restrição personalizada. Por exemplo, tendo em conta a seguinte restrição personalizada inválida, que compara uma string com um número inteiro:

name: organizations/1234567890123/customConstraints/custom.badConfig
resourceTypes:
- dataproc.googleapis.com/Cluster
methodTypes:
- CREATE
- UPDATE
condition: "resource.config.masterConfig.numInstances == 'mismatch'"
actionType: ALLOW
displayName: Number of instances is a string
description: Demonstrate that type mismatches cause an error.

É produzido um erro se tentar configurar essa restrição através da Google Cloud CLI:

ERROR: (gcloud.org-policies.set-custom-constraint) INVALID_ARGUMENT: Custom constraint condition [resource.config.masterConfig.numInstances == "mismatch"] is invalid. Error: ERROR: <input>:1:15: found no matching overload for '_==_' applied to '(int, string)' (candidates: (%A0, %A0))
 | resource.config.masterConfig.numInstances == "mismatch"
 | ..........................................^.

Na Google Cloud consola, os erros de sintaxe CEL inválidos são sinalizados com um ícone de Erro. Realçar este ícone apresenta uma sugestão com mais informações sobre o erro de sintaxe.

O serviço Organization Policy compila e valida as condições que cria, devolvendo um erro se a condição não estiver sintaticamente correta. No entanto, existem determinadas condições que são compiladas, mas resultam num erro quando se Google Cloud tenta aplicar as restrições. Por exemplo, se configurar uma restrição com uma condição que tenta aceder a um índice de lista ou a uma chave de mapa que não existe, a restrição falha e devolve um erro no momento da aplicação, e bloqueia qualquer tentativa de criar o recurso.

Quando criar condições que dependam de elementos de listas ou mapas, recomendamos que comece a condição com uma verificação que garanta que a condição é válida em todos os casos. Por exemplo, verifique list.size() antes de fazer referência a um elemento de lista específico ou use has() antes de fazer referência a um elemento de mapa.

Serviços suportados

Cada serviço define o conjunto de campos de restrição personalizados que podem ser usados para aplicar políticas de organização nos respetivos recursos de serviço. Para ver uma lista dos serviços que suportam restrições personalizadas, consulte o artigo Serviços suportados de restrições personalizadas.

Para mais informações sobre como configurar um verificador de políticas organizacionais, consulte o artigo Resultados de vulnerabilidades da política organizacional.

O que se segue?