Google Cloud oferece duas restrições de políticas de organização para definir a política de destruição da versão da chave numa organização:
constraints/cloudkms.minimumDestroyScheduledDuration
é usado para definir um comprimento mínimo para a duração agendada para destruição de novas chaves na organização.constraints/cloudkms.disableBeforeDestroy
é usado para exigir que uma versão de chave tenha sido desativada antes de poder ser agendada para destruição.
Antes de começar
As instruções nesta página pressupõem que está familiarizado com a utilização de restrições e que tem os recursos e as funções necessários.
Recursos necessários
Antes de poder concluir os passos nesta página, tem de ter os seguintes recursos:
- Uma organização.
- Opcional: um recurso de pasta ou projeto na sua organização.
Funções necessárias
Para receber as autorizações de que precisa para gerir políticas de organização,
peça ao seu administrador que lhe conceda a função de IAM de
administrador de políticas de organização (roles/orgpolicy.policyAdmin
) 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.
Esta função predefinida contém as autorizações necessárias para gerir políticas da organização. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações para gerir políticas da organização:
-
orgpolicy.constraints.list
-
orgpolicy.policies.create
-
orgpolicy.policies.delete
-
orgpolicy.policies.list
-
orgpolicy.policies.update
-
orgpolicy.policy.get
-
orgpolicy.policy.set
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Exigir uma duração mínima agendada para destruição
A restrição Minimum destroy scheduled duration per key (constraints/cloudkms.minimumDestroyScheduledDuration
) é usada para definir um período mínimo para a duração agendada para destruição de novas chaves. Esta restrição substitui a duração mínima agendada para destruição ao nível do projeto, da pasta ou da organização. Esta restrição reduz a probabilidade de destruir acidentalmente uma chave que ainda é necessária. Pode definir esta restrição
para um valor mais elevado para ajudar a garantir que tem tempo para impedir a destruição de chaves
antes de se tornar irreversível.
Use valores mais elevados para esta restrição quando a destruição de chaves indesejada for mais prejudicial, como para dados de produção sujeitos a requisitos de retenção de dados. Use valores mais baixos para esta restrição quando a destruição de chaves indesejada for menos prejudicial, como para ambientes de desenvolvimento ou de teste. Também pode usar valores mais baixos para permitir a destruição criptográfica atempada. No entanto, como valor mínimo, esta restrição não pode garantir que as novas chaves são criadas com durações agendadas para destruição baixas.
Para exigir uma duração mínima programada para destruição, siga estes passos:
Obtenha a política atual no recurso da organização através do comando
describe
. Este comando devolve a política aplicada diretamente a este recurso:gcloud org-policies describe \ constraints/cloudkms.minimumDestroyScheduledDuration \ --organization=ORGANIZATION_ID
Substitua
ORGANIZATION_ID
pelo identificador exclusivo do recurso de organização. O ID da organização está formatado como números decimais e não pode ter zeros à esquerda.Também pode ver a política de organização de uma pasta ou um projeto com os indicadores
--folder
ou--project
e o ID da pasta ou o ID do projeto, respetivamente.A resposta devolve a política da organização atual, se existir. O resultado é semelhante ao seguinte:
name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: etag: COTP+KYGELiCmsoB inheritFromParent: true rules: - values: allowedValues: - in:7d updateTime: '2023-08-17T14:00:04.424051Z'
Se não for definida uma política, o comando
describe
devolve um erroNOT_FOUND
:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
Defina a política na organização através do comando
set-policy
. Este comando substitui qualquer política atualmente anexada ao recurso.Crie um ficheiro temporário
/tmp/policy.yaml
para armazenar a política:name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: rules: - values: allowedValues: - in:MINIMUM_DURATION
Substitua o seguinte:
ORGANIZATION_ID
: o ID numérico da sua organização.MINIMUM_DURATION
: a duração mínima do estado agendado para destruição para chaves nesta organização, em dias. Tem de ser um dos seguintes valores:7d
,15d
,30d
,60d
,90d
ou120d
.
Execute o comando
set-policy
:gcloud org-policies set-policy /tmp/policy.yaml
Consulte a política atualmente em vigor através de
describe --effective
. Este comando devolve a política da organização tal como é avaliada neste ponto da hierarquia de recursos com a herança incluída.gcloud org-policies describe \ constraints/cloudkms.minimumDestroyScheduledDuration --effective \ --organization=ORGANIZATION_ID
O resultado é semelhante ao seguinte:
name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: rules: - values: allowedValues: - 30d - 15d - 90d - 60d - 7d - 120d
Uma vez que esta política de organização foi definida ao nível da organização, é herdada por todos os recursos secundários que permitem a herança.
Exigir que as chaves sejam desativadas antes da destruição
A restrição Restringir a destruição de chaves a chaves desativadas (constraints/cloudkms.disableBeforeDestroy
) permite-lhe exigir que uma chave tenha sido desativada antes de poder agendar a chave para destruição.
A desativação de uma chave antes da sua destruição é uma prática recomendada porque
ajuda a validar que a chave não está em utilização. Pode combinar esta restrição com uma política de gestão de identidade e acesso cuidadosa para criar um processo de destruição de vários passos que requer a cooperação de várias funções.
Para usar esta restrição para criar um processo de destruição de vários passos, certifique-se de que nenhum utilizador tem as autorizações cloudkms.cryptoKeyVersions.update
e cloudkms.cryptoKeyVersions.destroy
. Este exemplo de utilização requer que use funções personalizadas.
Para exigir que uma chave esteja no estado desativado antes de poder agendar a chave para destruição, siga estes passos:
gcloud
Obtenha a política atual no recurso da organização através do comando
describe
. Este comando devolve a política aplicada diretamente a este recurso:gcloud org-policies describe \ constraints/cloudkms.disableBeforeDestroy \ --organization=ORGANIZATION_ID
Substitua
ORGANIZATION_ID
pelo identificador exclusivo do recurso de organização. O ID da organização está formatado como números decimais e não pode ter zeros à esquerda.Também pode ver a política de organização de uma pasta ou um projeto com as flags
--folder
ou--project
e o ID da pasta ou o ID do projeto, respetivamente.A resposta devolve a política da organização atual, se existir. O resultado é semelhante ao seguinte:
name: organizations/ORGANIZATION_ID/policies/cloudkms.disableBeforeDestroy spec: etag: CPvY+KYGENDwgxA= rules: - enforce: true updateTime: '2023-08-17T14:19:39.033618Z'
Se não for definida uma política, o comando
describe
devolve um erroNOT_FOUND
:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
Defina a política na organização através do comando
set-policy
. Este comando substitui qualquer política já anexada ao recurso.Crie um ficheiro temporário
/tmp/policy.yaml
para armazenar a política:name: organizations/ORGANIZATION_ID/policies/cloudkms.disableBeforeDestroy spec: rules: - enforce: true
Substitua
ORGANIZATION_ID
pelo identificador exclusivo do recurso de organização.Execute o comando
set-policy
:gcloud org-policies set-policy /tmp/policy.yaml
Consulte a política atualmente em vigor através de
describe --effective
. Este comando devolve a política da organização tal como é avaliada neste ponto da hierarquia de recursos com a herança incluída.gcloud org-policies describe \ constraints/cloudkms.disableBeforeDestroy --effective \ --organization=ORGANIZATION_ID
O resultado é semelhante ao seguinte:
name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: rules: - enforce: true
Uma vez que esta política de organização foi definida ao nível da organização, é herdada por todos os recursos subordinados que permitem a herança.
O que se segue?
- Saiba mais sobre os estados das versões das chaves.
- Destrua e restaure uma versão de chave.