Controlar a destruição da versão da chave

O Google Cloud oferece duas restrições de políticas da organização para definir a versão da chave política de destruição em uma organização:

  • constraints/cloudkms.minimumDestroyScheduledDuration é usado para definir um Duração mínima da duração programada para destruição para novas chaves dentro da organização.
  • constraints/cloudkms.disableBeforeDestroy é usado para exigir que uma chave versão foi desativada antes de poder ser programada para destruição.

Antes de começar

As instruções nesta página pressupõem que você esteja familiarizado com o uso restrições e de que você tem os recursos e papéis necessários.

Recursos necessários

Antes de concluir as etapas nesta página, você precisa ter o seguinte recursos:

  • Uma organização.
  • Opcional: um recurso de pasta ou projeto na organização.

Funções exigidas

Para receber as permissões necessárias a fim de gerenciar as políticas da organização, peça ao administrador para conceder a você o papel do IAM de Administrador de políticas da organização (roles/orgpolicy.policyAdmin) 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 gerenciar as políticas da organização. 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 gerenciar as 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

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Exigem uma duração mínima programada para destruição

A restrição Duração mínima programada para destruição por chave (constraints/cloudkms.minimumDestroyScheduledDuration) é usado para definir um duração mínima da programação de destruição para novas chaves Isso substitui a duração mínima programada para destruição no projeto, pasta ou organização. Essa restrição reduz a chance de acidentalmente uma chave que ainda é necessária. É possível definir essa restrição a um valor mais alto para garantir que você tenha tempo para evitar a destruição da chave antes que se torne irreversível.

Use valores mais altos para essa restrição quando a destruição indesejada da chave for mais nocivos, como dados de produção sujeitos a retenção de dados e cumprimento de requisitos regulatórios. Use valores menores para esta restrição quando a chave for destruída indesejada seriam menos prejudiciais, como em ambientes de desenvolvimento ou teste. Você pode use valores menores para permitir a trituração criptográfica oportuna. No entanto, como mínimo, essa restrição não pode garantir que novas chaves sejam criadas com programadas para destruição.

Para exigir uma duração mínima programada para destruição, siga estas etapas:

  1. Consiga a política atual no recurso da organização usando o comando describe: Esse comando retorna a política aplicada diretamente a recurso:

    gcloud org-policies describe \
      constraints/cloudkms.minimumDestroyScheduledDuration \
      --organization=ORGANIZATION_ID
    

    Substitua ORGANIZATION_ID pelo identificador exclusivo da recurso da organização. ID da organização é formatado como números decimais e não pode ter zeros à esquerda.

    Também é possível ver a política da organização de uma pasta ou projeto com as sinalizações --folder ou --project e o ID da pasta ou ID do projeto, respectivamente.

    A resposta retorna a política atual da organização, se houver uma. O resultado será assim:

    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 uma política não for definida, o comando describe vai retornar uma NOT_FOUND. erro:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Defina a política no projeto usando o comando set-policy. Esse comando substitui qualquer política atualmente anexada ao recurso.

    1. Crie um arquivo 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:

      • ORGANIZATION_ID: o ID numérico da sua organização.
      • MINIMUM_DURATION: a duração mínima do estado programado para destruição para chaves nesta organização, em dias. Precisa ser um destes valores: 7d, 15d, 30d, 60d, 90d ou 120d.
    2. Execute o comando set-policy:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. Veja a política efetiva atual usando describe --effective. Esse comando retorna a política da organização conforme é avaliada neste momento na hierarquia de recursos com herança incluída.

    gcloud org-policies describe \
      constraints/cloudkms.minimumDestroyScheduledDuration --effective \
      --organization=ORGANIZATION_ID
    

    O resultado será assim:

    name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration
    spec:
      rules:
        - values:
            allowedValues:
            - 30d
            - 15d
            - 90d
            - 60d
            - 7d
            - 120d
    

    Como esta política da organização foi definida no nível da organização, ela é herdado por todos os recursos filhos que permitem herança.

Exigir que as chaves sejam desativadas antes da destruição

A restrição Restringir a destruição da chave a chaves desativadas (constraints/cloudkms.disableBeforeDestroy) permite que você exija que uma chave foi desativada antes que você possa programar a destruição dela. Desativar uma chave antes de destruí-la é uma prática recomendada, já que ela ajuda a validar se a chave não está em uso. É possível combinar isso de acesso com uma política cuidadosa do Identity and Access Management para criar um ambiente um processo de destruição que exige a colaboração de várias funções.

Para usar essa restrição para criar um processo de destruição em várias etapas, verifique se que nenhum usuário tenha a cloudkms.cryptoKeyVersions.update e a cloudkms.cryptoKeyVersions.destroy. Esse caso de uso exige que Você usa papéis personalizados.

Exigir que uma chave esteja no estado desativada antes que você possa programá-la para destruição, siga estas etapas:

gcloud

  1. Consiga a política atual no recurso da organização usando o comando describe: Esse comando retorna a política aplicada diretamente a recurso:

    gcloud org-policies describe \
      constraints/cloudkms.disableBeforeDestroy \
      --organization=ORGANIZATION_ID
    

    Substitua ORGANIZATION_ID pelo identificador exclusivo da recurso da organização. ID da organização é formatado como números decimais e não pode ter zeros à esquerda.

    Também é possível ver a política da organização de uma pasta ou projeto com as sinalizações --folder ou --project e o ID da pasta. ou ID do projeto, respectivamente.

    A resposta retorna a política atual da organização, se houver uma. A resposta será semelhante a:

    name: organizations/ORGANIZATION_ID/policies/cloudkms.disableBeforeDestroy
    spec:
      etag: CPvY+KYGENDwgxA=
      rules:
      - enforce: true
      updateTime: '2023-08-17T14:19:39.033618Z'
    

    Se uma política não for definida, o comando describe vai retornar uma NOT_FOUND. erro:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Defina a política no projeto usando o comando set-policy. Isso substitui qualquer política que já esteja anexada ao recurso.

    1. Crie um arquivo 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 da recurso da organização.

    2. Execute o comando set-policy:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. Veja a política efetiva atual usando describe --effective. Esse comando retorna a política da organização conforme é avaliada neste momento na hierarquia de recursos com herança incluída.

    gcloud org-policies describe \
      constraints/cloudkms.disableBeforeDestroy --effective \
      --organization=ORGANIZATION_ID
    

    O resultado será assim:

    name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration
    spec:
      rules:
      - enforce: true
    

    Como essa política da organização foi definida no nível da organização, ela é herdado por todos os recursos filhos que permitem herança.

A seguir