Configure as Justificações de acesso a chaves com o Cloud HSM

Esta página descreve como configurar as Justificações de acesso às chaves com o HSM na nuvem para o pacote de controlos das regiões do Japão dos Assured Workloads.

Durante os passos para criar uma nova pasta do Assured Workloads para as regiões do Japão, tem a opção de criar um novo projeto e um anel de chaves para as suas chaves criptográficas. As chaves Cloud HSM podem ser adicionadas a este conjunto de chaves e também pode configurar uma política de Justificações de acesso às chaves para controlar o acesso a cada chave.

Antes de começar

  • A capacidade de usar as Justificações de acesso às chaves com chaves do HSM na nuvem só está disponível para o pacote de controlos das regiões do Japão nos Assured Workloads.
  • Certifique-se de que o administrador lhe concedeu uma das funções de gestão de identidade e de acesso (IAM) necessárias para criar e gerir as suas políticas de Key Access Justifications e as próprias chaves do Cloud HSM.

Autorizações de IAM necessárias

Para receber as autorizações de que precisa para criar e gerir chaves do Cloud HSM e as respetivas políticas de justificação do acesso às chaves, peça ao seu administrador para lhe conceder a função do IAM administrador do Cloud KMS (roles/cloudkms.admin) no projeto que contém o conjunto de chaves. 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 criar e gerir chaves do Cloud HSM e as respetivas políticas de justificação de acesso às chaves. 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 criar e gerir chaves do Cloud HSM e as respetivas políticas de justificação do acesso à chave:

  • cloudkms.cryptoKeys.create
  • cloudkms.cryptoKeys.update
  • cloudkms.cryptoKeys.get

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Configure uma chave do Cloud HSM com justificações de acesso a chaves

Para configurar as Justificações de acesso às chaves com uma chave do HSM na nuvem, pode incluir a política de acesso às chaves como um parâmetro quando cria a chave ou pode atualizar a chave com a política depois de a chave ter sido criada.

Crie uma nova chave e política

REST

Crie uma nova chave e política através do método cryptoKeys.create:

POST https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME

No pedido, substitua os seguintes valores de marcadores de posição:

  • PROJECT_ID: o ID do projeto que contém o anel de chaves ao qual quer adicionar uma chave, por exemplo, 919698201234.
  • LOCATION: A localização do conjunto de chaves, por exemplo, us-west1.
  • KEY_RING: o nome do conjunto de chaves que especificou quando criou o projeto de gestão de chaves e o conjunto de chaves da pasta Assured Workloads, por exemplo, my-key-ring.
  • KEY_NAME: o nome da chave do HSM que quer criar. Por exemplo, my-hsm-key.

Corpo do pedido:

{
  "purpose": "PURPOSE",
  "versionTemplate": {
    "protectionLevel": "HSM",
    "algorithm": "ALGORITHM"
  },
  "keyAccessJustificationsPolicy": {
    "allowedAccessReasons": [
      ALLOWED_ACCESS_REASONS
    ]
  }
}

No corpo do pedido, substitua os seguintes valores de marcadores de posição:

  • PURPOSE: a finalidade da chave. Para ver uma lista de diferentes finalidades das chaves, consulte Finalidades das chaves, por exemplo, ENCRYPT_DECRYPT.
  • ALGORITHM: o algoritmo criptográfico a usar. Para uma lista dos algoritmos disponíveis, consulte os algoritmos do Cloud KMS, por exemplo, GOOGLE_SYMMETRIC_ENCRYPTION.
  • ALLOWED_ACCESS_REASONS: a política de justificações de acesso a chaves que define zero ou mais códigos de justificação permitidos para aceder à chave de encriptação, por exemplo, ["CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION"].

O exemplo de pedido e corpo do pedido seguinte só permite justificações de acesso por alguns motivos:

POST https://cloudkms.googleapis.com/v1/projects/919698201234/locations/us-west1/keyRings/my-key-ring/cryptoKeys?crypto_key_id=my-hsm-key
{
  "purpose": "ENCRYPT_DECRYPT",
  "versionTemplate": {
    "protectionLevel": "HSM",
    "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION"
  },
  "keyAccessJustificationsPolicy": {
    "allowedAccessReasons": [
      "CUSTOMER_INITIATED_ACCESS",
      "GOOGLE_INITIATED_SYSTEM_OPERATION"
    ]
  }
}

Atualize a política de uma chave existente

REST

Atualize uma chave existente no Cloud KMS através do método cryptoKeys.patch:

PATCH https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME?update_mask=keyAccessJustificationsPolicy

No pedido, substitua os seguintes valores de marcadores de posição:

  • PROJECT_ID: o ID do projeto que contém o conjunto de chaves para a chave, por exemplo, 919698201234.
  • LOCATION: A localização do conjunto de chaves, por exemplo, us-west1.
  • KEY_RING: o nome do conjunto de chaves que especificou quando criou o projeto de gestão de chaves e o conjunto de chaves da pasta Assured Workloads, por exemplo, my-key-ring.
  • KEY_NAME: o nome da chave do HSM que quer atualizar, por exemplo, my-hsm-key.

Corpo do pedido:

{
  "purpose": "PURPOSE",
  "versionTemplate": {
    "protectionLevel": "HSM",
    "algorithm": "ALGORITHM"
  },
  "keyAccessJustificationsPolicy": {
    "allowedAccessReasons": [
      ALLOWED_ACCESS_REASONS
    ]
  }
}

No corpo do pedido, substitua os seguintes valores de marcadores de posição:

  • PURPOSE: a finalidade da chave. Para ver uma lista de diferentes finalidades das chaves, consulte Finalidades das chaves, por exemplo, ENCRYPT_DECRYPT.
  • ALGORITHM: o algoritmo criptográfico a usar. Para uma lista dos algoritmos disponíveis, consulte os algoritmos do Cloud KMS, por exemplo, GOOGLE_SYMMETRIC_ENCRYPTION.
  • ALLOWED_ACCESS_REASONS: a política de justificações de acesso a chaves que define zero ou mais códigos de justificação permitidos para aceder à chave de encriptação, por exemplo, ["CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION"].

O exemplo de pedido e corpo do pedido seguinte só permite justificações de acesso por alguns motivos:

PATCH https://cloudkms.googleapis.com/v1/projects/919698201234/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-hsm-key?keyAccessJustificationsPolicy
{
  "purpose": "ENCRYPT_DECRYPT",
  "versionTemplate": {
    "protectionLevel": "HSM",
    "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION"
  },
  "keyAccessJustificationsPolicy": {
    "allowedAccessReasons": [
      "CUSTOMER_INITIATED_ACCESS",
      "GOOGLE_INITIATED_SYSTEM_OPERATION"
    ]
  }
}

Obtenha a política de justificações de acesso a chaves para uma chave

REST

Obtenha metadados sobre uma chave existente no Cloud KMS através do método cryptoKeys.get:

GET https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME

Nos parâmetros do pedido, substitua os seguintes valores de marcadores de posição pelos seus próprios valores:

  • PROJECT_ID: O ID do projeto que contém o conjunto de chaves para a chave, por exemplo, 919698201234.
  • LOCATION: A localização do conjunto de chaves, por exemplo, us-west1.
  • KEY_RING: o nome do conjunto de chaves que especificou quando criou o projeto de gestão de chaves e o conjunto de chaves da pasta Assured Workloads, por exemplo, my-key-ring.
  • KEY_NAME: o nome da chave do HSM que quer obter, por exemplo, my-hsm-key.

O pedido de exemplo seguinte recebe metadados sobre uma chave no Cloud KMS:

GET https://cloudkms.googleapis.com/v1/projects/919698201234/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-hsm-key

O corpo da resposta contém metadados sobre a sua chave, incluindo o keyAccessJustificationsPolicy. Por exemplo:

{
  "purpose": "ENCRYPT_DECRYPT",
  "versionTemplate": {
    "protectionLevel": "HSM",
    "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION"
  },
  "keyAccessJustificationsPolicy": {
    "allowedAccessReasons": [
      "CUSTOMER_INITIATED_ACCESS",
      "GOOGLE_INITIATED_SYSTEM_OPERATION"
    ]
  }
}

O que se segue?