O Google Cloud oferece duas restrições de política da organização para garantir o uso de CMEK em uma organização:
constraints/gcp.restrictNonCmekServices
é usado para exigir a proteção da CMEK.constraints/gcp.restrictCmekCryptoKeyProjects
é usado para limitar quais chaves do Cloud KMS são usadas para proteção CMEK.
As políticas da organização de CMEK se aplicam somente a recursos recém-criados nos serviços compatíveis do Google Cloud.
Funções exigidas
Para garantir que cada usuário tenha as permissões
necessárias para verificar as políticas da organização ao criar recursos,
peça ao administrador para conceder a cada um deles o papel do IAM de
Leitor de políticas da organização (roles/orgpolicy.policyViewer
) na organização.
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Esse papel predefinido contém as permissões necessárias para verificar as políticas da organização ao criar recursos. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para verificar as políticas da organização ao criar recursos:
-
Para conferir todos os detalhes da política da organização:
orgpolicy.policy.get
-
Para verificar a política da organização ao criar recursos:
orgpolicy.policies.check
Talvez o administrador também consiga conceder a cada usuário essas permissões com papéis personalizados ou outros papéis predefinidos.
Quando as políticas da organização estão ativas, a permissão orgpolicy.policies.check
é necessária para os usuários do console do Google Cloud que criam recursos
protegidos por chaves CMEK. Usuários sem essa permissão podem criar recursos protegidos pela CMEK usando o console do Google Cloud, mas podem selecionar uma chave CMEK que não é permitida pela restrição restrictCmekCryptoKeyProjects
. Quando uma chave que
não atende a essa restrição é selecionada, a criação de recursos acaba falhando.
Exigir proteção CMEK
Para exigir a proteção de CMEKs na sua organização, configure a
política da organização constraints/gcp.restrictNonCmekServices
.
Como uma restrição de lista, os valores aceitos para essa restrição são nomes de serviço do Google Cloud (por exemplo, sqladmin.googleapis.com
). Use essa restrição fornecendo uma lista de nomes de serviço do Google Cloud e definindo a restrição como Negar. Essa configuração bloqueia a criação de recursos nesses
serviços se o recurso não estiver protegido pela CMEK. Em
outras palavras, as solicitações para criar um recurso no serviço não são bem-sucedidas sem
especificar uma chave do Cloud KMS. Além disso, essa restrição bloqueia
a remoção da proteção CMEK dos recursos nesses serviços. Essa restrição
só pode ser aplicada a serviços com suporte.
Limitar o uso de chaves do Cloud KMS para CMEK
Para limitar quais chaves do Cloud KMS são usadas para proteção do CMEK,
configure a restrição constraints/gcp.restrictCmekCryptoKeyProjects
.
Como restrição de lista, os valores aceitos são indicadores de hierarquia de recursos (por
exemplo, projects/PROJECT_ID
, under:folders/FOLDER_ID
e
under:organizations/ORGANIZATION_ID
). Use essa restrição configurando uma
lista de indicadores de hierarquia de recursos e definindo a restrição como Permitir.
Essa configuração restringe os serviços com suporte para que as chaves CMEK possam ser escolhidas
apenas nos projetos, pastas e organizações listados. As solicitações para criar recursos protegidos por CMEK em serviços configurados não funcionam sem uma chave do Cloud KMS de um dos recursos permitidos. Quando configurada,
essa restrição se aplica a todos os serviços com suporte.
Serviços compatíveis
Serviço | Valor de restrição ao exigir CMEK |
---|---|
Application Integration | integrations.googleapis.com |
Artifact Registry | artifactregistry.googleapis.com |
BigQuery | bigquery.googleapis.com |
Bigtable | bigtable.googleapis.com |
Cloud Composer | composer.googleapis.com |
Cloud Functions | cloudfunctions.googleapis.com |
Cloud Logging | logging.googleapis.com |
Cloud Run | run.googleapis.com |
Cloud SQL | sqladmin.googleapis.com |
Cloud Storage | storage.googleapis.com |
Cloud Workstations | workstations.googleapis.com |
Compute Engine | compute.googleapis.com |
Dataflow | dataflow.googleapis.com |
Dataproc | dataproc.googleapis.com |
Document AI | documentai.googleapis.com |
Filestore | file.googleapis.com |
Firestore (Pré-lançamento) | firestore.googleapis.com |
Google Kubernetes Engine (pré-lançamento) | container.googleapis.com |
Pub/Sub | pubsub.googleapis.com |
Secret Manager | secretmanager.googleapis.com |
Spanner | spanner.googleapis.com |
Vertex AI | aiplatform.googleapis.com |
Instâncias do Vertex AI Workbench | notebooks.googleapis.com |
Exceções de aplicação por tipo de recurso
As restrições da política da organização de CMEK são aplicadas ao criar um novo recurso ou ao alterar (quando compatível) a chave do Cloud KMS em um recurso atual. Geralmente, elas são aplicadas em todos os tipos de recursos de um serviço compatíveis com a CMEK e com base unicamente na configuração do recurso. Algumas exceções importantes estão resumidas aqui:
Tipo de recurso | Exceção de aplicação |
---|---|
bigquery.googleapis.com/Dataset |
Parcialmente aplicado na chave do Cloud KMS padrão do conjunto de dados (somente gcp.restrictCmekCryptoKeyProjects )
|
bigquery.googleapis.com/Job |
Somente jobs de consulta: aplicado na chave do Cloud KMS fornecida com a consulta ou o padrão do projeto de faturamento. Consulte também a configuração separada da chave do Cloud KMS padrão do projeto. |
bigquerydatatransfer.googleapis.com/TransferConfig |
As configurações de transferência usam o nome de serviço do serviço de transferência de dados (bigquerydatatransfer.googleapis.com) para restrições de política da organização CMEK. |
container.googleapis.com/Cluster |
(Visualização) Aplicada na chave do Cloud KMS apenas para o disco de inicialização de nós, não aplicada em secrets na camada do aplicativo |
logging.googleapis.com/LogBucket |
Aplicada em buckets de registros criados explicitamente. Consulte também a configuração necessária para garantir a conformidade dos buckets de registros integrados. |
storage.googleapis.com/Bucket |
Aplicada à chave padrão do Cloud KMS do bucket |
storage.googleapis.com/Object |
Aplicadas independentemente do bucket. Consulte também configuração separada da chave padrão do Cloud KMS do bucket |
Exemplos de configuração
Nos exemplos de configuração, suponha que a organização de amostra tenha a seguinte hierarquia de recursos:
Exigir CMEK e limitar chaves para um projeto
Suponha que você queira exigir a proteção de CMEK para todos os recursos do Cloud Storage em projects/5
e garantir que apenas chaves provenientes de projects/4
possam ser usadas.
Para exigir a proteção de CMEKs em todos os novos recursos do Cloud Storage, use a seguinte configuração de política da organização:
- Política da organização:
constraints/gcp.restrictNonCmekServices
- Vinculação em:
projects/5
- Tipo de política: Deny
- Valor da política:
storage.googleapis.com
Para garantir que apenas chaves de projects/4
sejam usadas, use a seguinte configuração:
- Política da organização:
constraints/gcp.restrictCmekCryptoKeyProjects
- Vinculação em:
projects/5
- Tipo de política: Allow
- Valor da política:
projects/4
Exigir CMEK e limitar as chaves a uma pasta
Como alternativa, suponha que você queira adicionar outros projetos do Cloud KMS
em folders/2
no futuro e queira exigir a CMEK de forma mais ampla
em folders/3
. Neste cenário, são necessárias configurações um pouco diferentes.
Para exigir mais proteção do CMEK para novos recursos do Cloud SQL e do Cloud Storage em qualquer lugar abaixo de folders/3
:
- Política da organização:
constraints/gcp.restrictNonCmekServices
- Vinculação em:
folders/3
- Tipo de política: Deny
- Valores da política:
sqladmin.googleapis.com
,storage.googleapis.com
Para garantir que apenas chaves de projetos do Cloud KMS em folders/2
sejam usadas:
- Política da organização:
constraints/gcp.restrictCmekCryptoKeyProjects
- Vinculação em:
folders/3
- Tipo de política: Allow
- Valor da política:
under:folders/2
Exigir CMEK para uma organização
Para exigir a CMEK em toda a organização (em serviços compatíveis),
defina a restrição constraints/gcp.restrictNonCmekServices
com a
seguinte configuração:
- Política da organização:
constraints/gcp.restrictNonCmekServices
- Vinculação em:
organizations/1
- Tipo de política: Deny
- Valores da política: (todos os serviços compatíveis)
Limitações
Se você usa o console do Google Cloud para criar um recurso, talvez perceba
que não é possível usar opções de criptografia diferentes da CMEK quando
constraints/gcp.restrictNonCmekServices
está configurado para um projeto e
serviço. A restrição da política da organização de CMEK só fica visível quando a
conta do cliente recebe a permissão orgpolicy.policy.get
do IAM
no projeto.
A seguir
Consulte Introdução ao serviço de políticas da organização para saber mais sobre os benefícios e casos de uso comuns das políticas da organização.
Para mais exemplos sobre como criar uma política da organização com restrições específicas, consulte Como usar restrições.