Controlar o uso do Autokey

Este documento explica como usar políticas de negação do IAM e restrições da política da organização para controlar o uso do Autokey em uma organização ou pasta. Essas duas proteções só podem ser modificadas com papéis no nível da organização. Portanto, elas não podem ser substituídas por principais com papéis de proprietário ou administrador no nível da pasta ou do projeto.

Os seguintes casos de uso são aceitos:

IAM x política da organização

As políticas do IAM e da organização permitem definir proteções para controlar como o Autokey do Cloud KMS pode ser usado na sua organização.

O IAM controla quem está autorizado a realizar quais ações em quais recursos. É possível usar o IAM para restringir quais principais podem ativar e usar o Autokey na sua organização.

A política da organização controla quais recursos podem ser criados e como eles podem ser configurados. É possível usar políticas da organização personalizadas para restringir onde e como o Autokey pode ser ativado.

É possível usar o IAM e a política da organização juntos para criar um sistema robusto de proteções para controlar quem pode ativar e usar o Autokey e onde e como isso pode ser feito.

Antes de começar

Para receber as permissões necessárias para controlar o uso do Autokey, peça ao administrador que conceda a você os seguintes papéis do IAM na organização:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.

Usar políticas de negação do IAM para controlar o Autokey

As políticas de negação do IAM fornecem controle de cima para baixo sobre quais principais podem realizar quais ações. As políticas de negação definidas em um recurso não podem ser substituídas por concessões de papéis do IAM ou políticas de negação definidas em um recurso filho. Os principais não podem concluir ações que exigem permissões negadas, mesmo que a permissão esteja incluída em um papel que eles tenham.

Para saber como criar políticas de negação do IAM, consulte Negar acesso a recursos.

A tabela a seguir mostra alguns exemplos de casos de uso para políticas de negação do IAM, incluindo permissões que podem ser negadas para controlar o Autokey na sua organização e o efeito de negar cada permissão.

Caso de uso Permissão negada Principais Efeito
Proibir a ativação do Autokey cloudkms.autokeyConfigs.update Qualquer Os principais selecionados não podem criar novos recursos AutokeyConfig nem atualizar os atuais. Todos os recursos AutokeyConfig atuais permanecem em vigor e ainda podem ser usados.
Proibir o uso do Autokey cloudkms.keyHandles.create Qualquer Os principais selecionados não podem criar novos recursos KeyHandle. Portanto, eles não podem criar novos recursos protegidos usando o Autokey, mesmo quando ele está ativado.
Proibir a criação manual de chaves cloudkms.cryptoKeys.create Qualquer, exceto o agente de serviço do Cloud KMS Os principais selecionados não podem criar novas chaves. Quando você isenta apenas o agente de serviço do Cloud KMS, o Autokey é a única maneira de criar novas chaves.
Somente a IaC pode mudar as configurações do Autokey cloudkms.autokeyConfigs.update Todos, exceto o agente de execução do Terraform Os princípios selecionados não podem criar novos AutokeyConfig recursos nem atualizar os atuais. Quando você isenta o principal do Terraform principal, as configurações do Autokey são controladas pelo pipeline de infraestrutura como código (IaC).

Usar restrições personalizadas da política da organização para controlar o Autokey

As restrições personalizadas da política da organização fornecem controle de baixo para cima de onde e como o Autokey pode ser configurado. As restrições podem ser substituídas por restrições aplicadas a um recurso filho. No entanto, a mudança de restrições exige permissões no nível da organização. Portanto, os principais com permissões no nível da pasta ou para envolvidos no projeto não podem substituir as restrições. Enquanto as restrições são aplicadas, os principais não podem concluir ações proibidas, mesmo que tenham as permissões necessárias para isso.

Para saber como aplicar restrições personalizadas na sua organização, consulte Criar restrições personalizadas da política da organização para o Cloud KMS.

É possível combinar as restrições personalizadas da política da organização descritas aqui com outras políticas da organização de CMEK.

Restringir o modo do Autokey

É possível restringir a funcionalidade do Autokey bloqueando condicionalmente a criação de recursos AutokeyConfig. A definição de restrição de exemplo a seguir proíbe a criação ou atualização de recursos AutokeyConfig com base no keyProjectResolutionMode.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictAutokeyKeyStorage
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    - UPDATE
    condition: "resource.keyProjectResolutionMode == 'KEY_PROJECT_RESOLUTION_MODE')"
    actionType: DENY
    displayName: Restrict Autokey key storage mode
    description: >
      Prevent creation or update of AutokeyConfig resources with
      `KEY_PROJECT_RESOLUTION_MODE` key resolution mode.

Substitua KEY_PROJECT_RESOLUTION_MODE pelo keyProjectResolutionMode que você quer bloquear. Por exemplo, para impedir que qualquer pessoa na sua organização use o armazenamento de chaves no mesmo projeto, defina esse valor como RESOURCE_PROJECT.

Proibir a criação da configuração do Autokey em uma pasta

É possível usar políticas da organização personalizadas para impedir que o Autokey seja ativado em uma pasta, bloqueando a criação de todos os recursos AutokeyConfig.

A definição de restrição de exemplo a seguir proíbe a criação de recursos AutokeyConfig em uma pasta nomeada. Enquanto essa restrição estiver em vigor, todas as configurações atuais ainda poderão ser modificadas.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.noNewAutokeyConfigFolder
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    condition: "resource.name == 'folders/FOLDER_ID/autokeyConfig'"
    actionType: DENY
    displayName: Prohibit Autokey within FOLDER_ID
    description: >
      Prevent creation of new AutokeyConfig resources within
      folders/FOLDER_ID.

Substitua:

  • ORGANIZATION_ID: o identificador da sua organização.
  • FOLDER_ID pelo identificador da pasta em que você quer bloquear o Autokey.

Proibir a criação da configuração do Autokey em uma organização

É possível usar políticas da organização personalizadas para impedir que o Autokey seja ativado em toda a organização, bloqueando a criação de todos os recursos AutokeyConfig.

A definição de restrição de exemplo a seguir proíbe a criação de recursos AutokeyConfig em toda a organização. Enquanto essa restrição estiver em vigor, todas as configurações atuais ainda poderão ser modificadas.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.noNewAutokeyConfigOrg
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    condition: "resource.name.endsWith('/autokeyConfig')"
    actionType: DENY
    displayName: Prohibit Autokey within ORGANIZATION_ID
    description: >
      Prevent creation of new AutokeyConfig resources within organization
      ORGANIZATION_ID.

Substitua ORGANIZATION_ID pelo identificador da sua organização.

Proibir a mudança da configuração do Autokey em uma pasta

É possível usar políticas da organização personalizadas para impedir que as configurações do Autokey sejam alteradas em uma pasta, bloqueando a criação ou atualização de todos os recursos AutokeyConfig.

A definição de restrição de exemplo a seguir proíbe a criação ou atualização de recursos AutokeyConfig em uma pasta nomeada.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.noChangeAutokeyConfigFolder
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    - UPDATE
    condition: "resource.name == 'folders/FOLDER_ID/autokeyConfig'"
    actionType: DENY
    displayName: Prohibit Autokey within FOLDER_ID
    description: >
      Prevent creation or update of AutokeyConfig resources within
      folders/FOLDER_ID.

Substitua:

  • ORGANIZATION_ID: o identificador da sua organização.
  • FOLDER_ID pelo identificador da pasta em que você quer bloquear o Autokey.

Proibir a mudança da configuração do Autokey em uma organização

É possível usar políticas da organização personalizadas para impedir que as configurações do Autokey sejam alteradas em qualquer lugar da sua organização, bloqueando a criação ou atualização de todos os recursos AutokeyConfig.

A definição de restrição de exemplo a seguir proíbe a criação ou atualização de recursos AutokeyConfig em toda a organização.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.noChangeAutokeyConfigOrg
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    - UPDATE
    condition: condition: "resource.name.endsWith('/autokeyConfig')"
    actionType: DENY
    displayName: Prohibit Autokey within ORGANIZATION_ID
    description: >
      Prevent creation or update of AutokeyConfig resources within
      ORGANIZATION_ID.

Substitua ORGANIZATION_ID pelo identificador da sua organização.

Permitir apenas a configuração DISABLED do Autokey

A definição de restrição de exemplo a seguir proíbe que qualquer pessoa crie ou atualize um recurso AutokeyConfig em toda a organização, a menos que o keyProjectResolutionMode esteja explicitamente definido como DISABLED.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.onlyDisabledAutokeyConfig
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    - UPDATE
    condition: "resource.keyProjectResolutionMode=='DISABLED'"
    actionType: ALLOW
    displayName: Prohibit Autokey within the organization
    description: >
      Prevent creation or update of `AutokeyConfig` resources within
      organization ORGANIZATION_ID unless the `keyProjectResolutionMode`
      is `DISABLED`.

Proibir a configuração do Autokey para envolvidos no projeto

A definição de restrição de exemplo a seguir proíbe que qualquer pessoa crie ou atualize um recurso AutokeyConfig em um projeto, sem bloquear as configurações no nível da pasta. Enquanto essa restrição estiver em vigor, todos os recursos AutokeyConfig para envolvidos no projeto que já existiam permanecerão em vigor, mas todos os outros projetos precisarão continuar herdando o AutokeyConfig da pasta mãe.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.noAutokeyConfigProject
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    - UPDATE
    condition: "resource.name.startsWith('projects/')"
    actionType: DENY
    displayName: Block project-level Autokey within the organization
    description: >
      Prevent creation or update of `AutokeyConfig` resources on projects within
      organization ORGANIZATION_ID. Existing project-level AutokeyConfig
      resources remain in effect, but all other projects must inherit the
      AutokeyConfig from their parent folder.

Exemplos de casos de uso

As seções a seguir fornecem exemplos que combinam políticas de negação do IAM, políticas da organização personalizadas e políticas da organização padrão.

Exigir que as chaves sejam criadas pelo Autokey

Se você quiser exigir a CMEK usando o Autokey em uma pasta, combine os controles de acesso do IAM com as políticas da organização de CMEK. Isso funciona removendo as permissões de criação de chaves de principais que não sejam o agente de serviço do Cloud KMS e exigindo que todos os recursos sejam protegidos pela CMEK usando o projeto de chave do Autokey.

Para aplicar o uso do Autokey em uma pasta, siga estas etapas:

  1. Bloqueie a criação manual de chaves no projeto de chave aplicando uma política de negação do IAM. Na política de negação, negue a permissão cloudkms.cryptoKeys.create a todos os principais, exceto o agente de serviço do Cloud KMS. Se a pasta usar o armazenamento de chaves em projetos dedicados, aplique a política de negação ao projeto de chave dedicado. Se a pasta usar o armazenamento de chaves no mesmo projeto, aplique a política de negação aos projetos de recursos.

    Quando as chaves não podem ser criadas manualmente, apenas as chaves criadas pelo Autokey podem ser criadas nesses projetos.

  2. Exija que os recursos recém-criados na pasta sejam protegidos usando a CMEK aplicando a restrição constraints/gcp.restrictNonCmekServices.

    Para mais informações sobre essa restrição, incluindo a lista de serviços que a aceitam, consulte Exigir proteção de CMEK.

  3. Exija que as chaves usadas para CMEK sejam de um projeto de chave dedicado ou de projetos em que o armazenamento de chaves no mesmo projeto esteja ativado aplicando a restrição constraints/gcp.restrictCmekCryptoKeyProjects. Para mais informações sobre essa restrição, incluindo a lista de serviços que a aceitam, consulte Limitar o uso de chaves do Cloud KMS para CMEK.

Proibir o Autokey completamente

Se você quiser bloquear o uso do Autokey completamente em uma organização ou pasta, use políticas de negação do IAM ou restrições personalizadas da política da organização. Para garantias de várias camadas, use as duas juntas.

Para bloquear o Autokey completamente em uma organização ou pasta, siga estas etapas:

  1. Se o Autokey já estiver ativado em qualquer lugar da organização ou pasta, desative o Autokey primeiro.

  2. Bloqueie os usuários de configurar o Autokey aplicando uma política de negação do IAM. Na política de negação, negue a permissão cloudkms.autokeyConfigs.update a todos os principais. Quando o Autokey está desativado em todos os lugares e nenhum principal pode modificar os recursos AutokeyConfig, o Autokey permanece totalmente desativado.

  3. Opcional: as etapas acima são suficientes para impedir que qualquer pessoa ative o Autokey. No entanto, se você quiser outra camada de garantia, então você também poderá aplicar uma restrição personalizada da política da organização para permitir apenas AutokeyConfig recursos em que o Autokey esteja desativado.

Se você aplicar a política de negação do IAM e a restrição personalizada da política da organização descrita aqui, nenhum principal poderá ativar o Autokey no recurso sem primeiro cancelar ou atualizar essas duas proteções.

A seguir