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:
- Exigir que as chaves sejam criadas pelo Autokey. É possível impedir que os principais criem chaves manualmente, garantindo que todas as chaves sejam criadas pelo Autokey. Em recursos em que o Autokey não está ativado, não é possível criar chaves.
- Restringir o Autokey para permitir apenas o armazenamento de chaves em projetos dedicados ou apenas o armazenamento de chaves no mesmo projeto.
- Bloquear o Autokey completamente. Isso garante que todas as chaves sejam criadas manualmente.
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:
-
Definir a política da organização:
administrador da política da organização (
roles/orgpolicy.policyAdmin) -
Definir políticas de negação do IAM:
administrador de negação (
roles/iam.denyAdmin)
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.
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_IDpelo 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_IDpelo 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:
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.createa 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.
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.
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:
Se o Autokey já estiver ativado em qualquer lugar da organização ou pasta, desative o Autokey primeiro.
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.updatea todos os principais. Quando o Autokey está desativado em todos os lugares e nenhum principal pode modificar os recursosAutokeyConfig, o Autokey permanece totalmente desativado.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
AutokeyConfigrecursos 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
- Saiba mais sobre as políticas da organização de CMEK.
- Saiba mais sobre as políticas de negação do IAM.
- Saiba mais sobre o serviço de política da organização.
- Saiba mais sobre restrições personalizadas da política da organização.