Usando o protocolo de interoperabilidade de gerenciamento de chaves (KMIP)

IBM® Key Protect for IBM Cloud® oferece suporte nativo ao Protocolo de Interoperabilidade de Gerenciamento de Chaves (KMIP), permitindo que você crie adaptadores KMIP e envie certificados diretamente pelo console do Key Protect.

Esta solução descreve a arquitetura de suporte nativo ao KMIP do Key Protect para proteger suas instâncias do VMware®. O suporte nativo ao KMIP do Key Protect funciona em conjunto com a criptografia nativa do VMware vSphere e a criptografia do vSAN™ para oferecer um gerenciamento simplificado da criptografia de armazenamento, com a segurança e a flexibilidade das chaves gerenciadas pelo cliente do IBM Cloud® Key Protect.

Essa solução é uma alternativa à oferta “ KMIP para VMware ” disponível em IBM Cloud. Este documento não aborda a configuração dessas soluções básicas. Para obter mais informações sobre a arquitetura da solução da fundação, consulte a Visão geral do VMware Solutions.

Esse recurso funciona em paralelo com a solução atual do KMIP para o VMware. Não é possível importar adaptadores criados com a solução “ VMware ” para “ Key Protect ”, nem o contrário.

Benefícios

Key Protect O suporte nativo ao KMIP oferece os seguintes benefícios:

VMware certificação
O suporte ao KMIP no Key Protect é certificado pela VMware e pode ser integrado diretamente a qualquer serviço ou plataforma que aceite criptografia por meio de um servidor KMS KMIP. O suporte ao KMIP é integrado e gerenciado pelo Key Protect, eliminando a necessidade de suporte a servidores KMIP de terceiros.
Criptografia no nível do hipervisor
A integração com o VMware, a criptografia vSAN e a criptografia vSphere oferece criptografia na camada do hipervisor, em vez de na camada de armazenamento ou da máquina virtual. Essa abordagem simplifica o gerenciamento e proporciona transparência à sua solução de armazenamento e ao seu aplicativo.
Serviço totalmente gerenciado
O servidor de gerenciamento de chaves é totalmente gerenciado e está disponível em várias regiões multizona (MZRs) do IBM Cloud.
Chaves gerenciadas pelo cliente
Você mantém controle total sobre suas chaves de criptografia e pode revogá-las a qualquer momento.
Boa relação custo-benefício
As chaves simétricas do KMIP são cobradas como uma única versão de chave; assim, você paga apenas pelo que usa.

Criação de um adaptador

Um máximo de 200 adaptadores pode ser criado em uma única instância. Cada adaptador pode ter um máximo de 200 certificados associados a ele.

Os adaptadores KMIP são criados usando Key Protect chaves raiz. Se você não tiver uma chave raiz, crie uma.

Antes de começar, certifique-se de que possui a função “ Manager ” ou a função “ KmipAdapterManager na instância.

Para criar um adaptador:

  1. No menu de navegação, clique em “Adaptadores KMIP ”. Se este for o seu primeiro adaptador, a tabela estará vazia.

  2. Clique em Criar.

  3. No painel lateral, forneça as seguintes informações:

    • Nome- Digite um nome para o adaptador (2 a 40 caracteres).
    • Descrição (opcional) — Insira uma descrição para o adaptador (2 a 240 caracteres).
    • Chave raiz- Selecione a chave raiz a ser usada para este adaptador. A chave raiz criptografa as chaves KMIP criadas pelo adaptador. Sua chave raiz deve estar no estado “ active ” para que seu adaptador funcione corretamente.
  4. Opcional: Adicione um certificado público TLS para permitir que o titular do certificado privado correspondente se comunique com Key Protect por meio do adaptador KMIP. Somente certificados autorizados podem enviar solicitações pelo protocolo KMIP à sua instância.

    Para adicionar um certificado:

    1. Clique em Incluir.
    2. Digite um nome para o certificado.
    3. Insira o conteúdo do certificado no formato PEM, incluindo as tags BEGIN CERTIFICATE e END CERTIFICATE.
    4. Clique em “Adicionar certificado ”.

    A associação do certificado pode levar alguns minutos. Um certificado só pode estar associado a um único adaptador em uma região do Key Protect.

Os recursos gerenciados por meio do protocolo KMIP não podem ser acessados pela API HTTP.

Mantenha em segurança a chave privada de todos os certificados enviados. Qualquer certificado carregado em um adaptador KMIP pode realizar todas as operações KMIP compatíveis.

Configuração de um cliente KMIP para se comunicar com um adaptador

Para se comunicar com seu adaptador, você deve configurar um servidor de mensagens(VMware) ou criar um cliente KMIP capaz de se comunicar por meio de um servidor de mensagens ( TCP ) com um servidor de mensagens ( mTLS ) e enviar mensagens utilizando o formato de mensagem TTLV, conforme descrito nas especificações do KMIP.

Para obter mais informações sobre o VMware vSphere, siga as etapas descritas em “Adicionar um provedor de chaves padrão usando o cliente vSphere ”. Ao adicionar um provedor de chaves padrão, utilize o endpoint Key Protect específico para a região da sua instância. Por exemplo, para uma instância do Key Protect na região us-south, use us-south.kms.cloud.ibm.com como endereço e 5696 como porta.

O cliente do vSphere deve enviar seu certificado de cliente para o adaptador para se comunicar com o adaptador KMIP. Siga as etapas descritas na seção “Usar a opção de certificado para estabelecer uma conexão confiável com o provedor de chaves padrão” para baixar o certificado do cliente e, em seguida, carregue-o no adaptador.

Concessão de acesso ao KMIP

Revise funções e permissões para saber como as funções do IBM Cloud IAM são mapeadas para as ações do Key Protect.

As ações de IAM a seguir regem os recursos que serão usados para gerenciar o acesso aos recursos do KMIP:

  • kms.kmip-management.create
  • kms.kmip-management.list
  • kms.kmip-management.read
  • kms.kmip-management.delete

Cada ação concede o comportamento mencionado a todos os recursos kmip_adapter certificate e kmip_object na instância, sem granularidade.

Visualização e atualização dos detalhes do adaptador

O painel de detalhes do adaptador exibe informações sobre um adaptador e permite que você realize ações como adicionar certificados.

Para visualizar os detalhes do adaptador:

  1. Clique no menu de ações (⋯) do adaptador.
  2. Selecione “Detalhes ”.

O painel de detalhes exibe o nome do adaptador, a descrição, as chaves simétricas KMIP associadas e os certificados carregados. Você também pode enviar certificados adicionais a partir deste painel.

As chaves simétricas do KMIP não podem ser excluídas pelo console. Para excluir chaves, use a CLI. Somente chaves simétricas KMIP que não estejam no estado “ Active ” (estado 1) podem ser excluídas. Não é possível excluir um adaptador se ele contiver chaves no estado “ Active ”.

Os recursos de cada adaptador são protegidos por uma chave raiz. Não é possível excluir uma chave raiz que esteja ativa e associada a um adaptador.

Cada chave simétrica KMIP criada conta como uma única versão de chave e incorre em uma cobrança de uma versão de chave. A exclusão de uma chave simétrica KMIP é definitiva.

Objetos e operações compatíveis com KMIP

Consulte Result Reason(Motivo do resultado ) na documentação da versão do KMIP 1.4 para saber os motivos das falhas esperadas, como uma solicitação contra uma operação sem suporte.

Operações suportadas pelo KMIP

Apenas as seguintes operações são suportadas.

Operações do KMIP suportadas
Seção Operação Resumo
4.1 Criar Cria um objeto KMIP.
4.9 Localização Pesquisa objetos que correspondam aos critérios ou metadados de atributos especificados.
4.11 Obter Recupera informações sobre o objeto, especificamente a chave “material”.
4.12 Obter atributos Recupera os metadados dos atributos do objeto.
4.14 Incluir Atributo Adiciona metadados de atributos ao objeto.
4.19 Ativar Define o objeto como “Ativo”. O objeto não pode ser destruído enquanto estiver no estado ativo.
4.20 Revogar Define o objeto como estando no estado “Comprometido” se o código do motivo da revogação for “Comprometimento da chave” ou “Comprometimento da CA”. Caso contrário, define o objeto como “Desativado”.
4.21 Destruir Destrói o material de chave do objeto. Essa ação não pode ser revertida.
4.26 Descubra as versões Solicita ao servidor as versões do protocolo KMIP compatíveis. É retornado apenas v1.4.

Objetos suportados

Objetos KMIP compatíveis
Seção Object
2.2 Chave simétrica

Criação e uso de adaptadores KMIP na API

Esta seção descreve como usar adaptadores KMIP do perfil native_1.0 com a API, incluindo a adição e remoção de certificados de cliente KMIP, bem como a visualização e exclusão de objetos KMIP.

É possível criar um adaptador KMIP realizando uma chamada POST para o seguinte endpoint.

https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters

As operações nos sub-recursos do adaptador KMIP, incluindo certificados de cliente KMIP e objetos KMIP, estarão nos seguintes pontos de extremidade:

https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_name_or_ID>/certificates
https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_name_or_ID>/kmip_objects
  1. Recupere as credenciais de autenticação para trabalhar com chaves no serviço.

  2. Copie o ID da chave raiz que você deseja usar para criar o adaptador KMIP.

    Para obter o ID de uma chave na instância do Key Protect, é possível recuperar uma lista de chaves ou acessar o painel do Key Protect painel de controle.

  3. Crie um adaptador KMIP com o seguinte comando curl:

    $ curl -X POST \
        "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters" \
        -H "accept: application/vnd.ibm.kms.kmip_adapter+json" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "content-type: application/vnd.ibm.kms.kmip_adapter+json" \
        -d '{
                "metadata": {
                    "collectionType": "application/vnd.ibm.kms.kmip_adapter+json",
                    "collectionTotal": 1
                },
                "resources": [
                    {
                    "name": "<adapter_name>",
                    "description": "<adapter_description>",
                    "profile": "native_1.0",
                    "profile_data": {
                        "crk_id": "<root_keyID_or_alias>"
                    }
                    }
                ]
            }'
    

    Substitua as variáveis na solicitação de exemplo de acordo com a tabela a seguir.

Descreve as variáveis que são necessárias para criar um adaptador KMIP em Key Protect.
Variável Descrição
região Obrigatório. A abreviação da região, como us-south ou eu-gb, que representa a área geográfica onde sua instância do Key Protect está localizada.

Para obter mais informações, consulte Terminais regionais em serviço.
root_keyID_or_alias Obrigatório. O identificador exclusivo ou apelido da chave raiz que você deseja usar para o adaptador.
IAM_token Obrigatório. Seu token de acesso do IBM Cloud. Inclua o conteúdo completo do token do IAM, incluindo o valor Bearer, na solicitação curl.
Para obter mais informações, consulte “Como recuperar um token de acesso ”.
instance_ID Obrigatório. O identificador exclusivo que é designado para sua instância de serviço Key Protect.

Para obter mais informações, consulte “Como recuperar um ID de instância ”.
nome_do_adaptador Opcional. Um nome legível por humanos do adaptador KMIP exclusivo na instância do kms. Se um não for especificado, ele será gerado automaticamente no formato kmip_adapter_<random_string>. Para proteger sua privacidade, não utilize dados pessoais, como seu nome ou localização, como nome para o seu adaptador KMIP. O nome deve ser alfanumérico e não pode conter espaços ou caracteres especiais que não sejam - ou _. O nome não pode ser um UUID.
descrição do adaptador Opcional A descrição do adaptador KMIP. O comprimento máximo é de 240 caracteres. Para proteger sua privacidade, não utilize dados pessoais, como seu nome ou localização, como descrição para o seu adaptador KMIP.
  1. Opcional: você pode listar os adaptadores KMIP que existem em uma instância com o seguinte comando curl:

    $ curl -X GET \
        "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters" \
        -H "accept: application/vnd.ibm.kms.kmip_adapter+json" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "content-type: application/vnd.ibm.kms.kmip_adapter+json"
    

    Você também pode obter um adaptador KMIP específico usando o seguinte comando curl:

    $ curl -X GET \
        "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_name_or_ID>" \
        -H "accept: application/vnd.ibm.kms.kmip_adapter+json" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "content-type: application/vnd.ibm.kms.kmip_adapter+json"
    

    Observe que você pode usar o UUID do adaptador ou o nome do adaptador para obter um adaptador específico.

  2. Você pode excluir um adaptador KMIP com o seguinte comando curl:

    $ curl -X DELETE \
        "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_name_or_ID>" \
        -H "accept: application/vnd.ibm.kms.kmip_adapter+json" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "content-type: application/vnd.ibm.kms.kmip_adapter+json"
    

    Você só pode excluir o adaptador KMIP se todos os objetos KMIP sob o adaptador forem excluídos.

Adição de um certificado de cliente KMIP a um adaptador KMIP

Depois de criar um adaptador KMIP, você pode adicionar um certificado de cliente KMIP para associá-lo ao adaptador. Após o registro de um certificado, você poderá utilizá-lo para se comunicar com o servidor KMIP por meio de mTLS, conforme descrito nas especificações do KMIP. O registro do certificado pode levar até cinco minutos. Os certificados devem ser exclusivos dentro da mesma região.

  1. Recupere as credenciais de autenticação para trabalhar com chaves no serviço.

  2. Identifique o adaptador KMIP ao qual você deseja adicionar seu certificado.

  3. Adicione o certificado de cliente KMIP com o seguinte comando curl:

    $ curl -X POST \
        "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/certificates" \
        -H "accept: application/vnd.ibm.kms.kmip_client_certificate+json" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "content-type: application/vnd.ibm.kms.kmip_client_certificate+json" \
        -d '{
                "metadata": {
                    "collectionType": "application/vnd.ibm.kms.kmip_client_certificate+json",
                    "collectionTotal": 1
                },
                "resources": [
                    {
                    "certificate": "<certificate_pem>",
                    "name": "<certificate_name>"
                    }
                ]
            }'
    

    Substitua as variáveis na solicitação de exemplo de acordo com a tabela a seguir.

Descreve as variáveis que são necessárias para criar um certificado de cliente KMIP em Key Protect.
Variável Descrição
região Obrigatório. A abreviação da região, como us-south ou eu-gb, que representa a área geográfica onde sua instância do Key Protect está localizada.

Para obter mais informações, consulte Terminais regionais em serviço.
ADAPTER_ID Obrigatório. O identificador ou nome exclusivo do adaptador KMIP com o qual você deseja registrar o certificado.
IAM_token Obrigatório. Seu token de acesso do IBM Cloud. Inclua o conteúdo completo do token do IAM, incluindo o valor Bearer, na solicitação curl.
Para obter mais informações, consulte “Como recuperar um token de acesso ”.
instance_ID Obrigatório. O identificador exclusivo que é designado para sua instância de serviço Key Protect.

Para obter mais informações, consulte “Como recuperar um ID de instância ”.
certificado_pem Requerido O conteúdo do certificado do cliente KMIP. Ele deve estar no formato x509 PEM. Ele deve ter explicitamente as tags BEGIN CERTIFICATE e END CERTIFICATE.
certificate_name Opcional. Um nome legível por humanos que identifica exclusivamente um certificado dentro do adaptador fornecido. Se um não for especificado, ele será gerado automaticamente no formato kmip_cert_<random_string>. Para proteger sua privacidade, não utilize dados pessoais, como seu nome ou localização, como nome para o seu adaptador KMIP. O nome deve ser alfanumérico e não pode conter espaços ou caracteres especiais que não sejam - ou _. O nome não pode ser um UUID.
  1. Opcional: você pode listar os certificados de cliente KMIP associados a um adaptador com o seguinte comando curl:

    $ curl -X GET \
        "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/certificates" \
        -H "accept: application/vnd.ibm.kms.kmip_client_certificate+json" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>"
    

    Você também pode obter um certificado de cliente KMIP específico usando o seguinte comando curl:

    $ curl -X POST \
        "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/certificates/<certificate_name_or_id>" \
        -H "accept: application/vnd.ibm.kms.kmip_client_certificate+json" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>"
    

    Observe que você pode usar o UUID do certificado ou o nome do certificado para obter um adaptador específico.

  2. Você pode excluir um certificado de cliente KMIP com o seguinte comando curl:

    $ curl -X DELETE \
        "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_name_or_ID>" \
        -H "accept: application/vnd.ibm.kms.kmip_adapter+json" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>"
    

    Você só pode excluir o adaptador KMIP se todos os objetos KMIP sob o adaptador forem excluídos.

Visualização e exclusão de objetos KMIP em um adaptador

Os objetos KMIP não podem ser criados por meio da API REST, mas podem ser visualizados e excluídos.

  1. Recupere as credenciais de autenticação para trabalhar com chaves no serviço.

  2. Identifique o adaptador KMIP ao qual você deseja adicionar seu certificado.

  3. Você pode visualizar objetos KMIP em um adaptador KMIP com o seguinte comando curl:

    $ curl -X GET \
        "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/kmip_objects" \
        -H "accept: application/vnd.ibm.kms.kmip_object+json" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>"
    
  4. Você pode visualizar um objeto KMIP específico em um adaptador KMIP com o seguinte comando curl:

    $ curl -X GET \
        "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/kmip_objects/<object_id>" \
        -H "accept: application/vnd.ibm.kms.kmip_object+json" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>"
    
  5. Você pode excluir um objeto KMIP específico em um adaptador KMIP com o seguinte comando curl:

    $ curl -X DELETE \
        "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/kmip_objects/<object_id>" \
        -H "accept: application/vnd.ibm.kms.kmip_object+json" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>"
    

    Onde o <object_id> é o UUID do objeto KMIP. Não é possível excluir objetos KMIP no estado Ativo (state=2).