Esta página inclui instruções para o operador de aplicativos (AO, na sigla em inglês) realizar operações importantes de importação de chaves exportadas de sistemas de gerenciamento de chaves (KMS, na sigla em inglês). O AO realiza as operações de importação e exportação usando a interface de linha de comando (CLI) kubectl dos seguintes recursos:
Para mais detalhes sobre esses recursos, consulte a visão geral da API KMS.
Consulte a seção Chaves compatíveis na página Sistemas de gerenciamento de chaves (KMS) para conferir a lista completa e os detalhes das chaves compatíveis com o KMS.
Antes de começar
Antes de continuar, verifique se você tem o seguinte:
- O comando - kubectlconfigurado para acessar o servidor da API Management. Para fazer isso, siga as seções Receber um arquivo kubeconfig e Interface de linha de comando (CLI) gdcloud.
- Os papéis de administrador de importação e exportação de chaves do KMS. Para receber as permissões necessárias para importar uma chave exportada, peça ao administrador da plataforma (PA, na sigla em inglês) que conceda a você os papéis de administrador de importação de chaves do KMS ( - kms-keyimport-admin) e administrador de exportação de chaves do KMS (- kms-keyexport-admin).
Importar uma chave exportada
Para importar uma chave exportada, siga estas etapas:
- Crie um arquivo YAML e adicione o recurso - KeyImportcomo o valor do objeto- kind:- apiVersion: "kms.gdc.goog/v1" kind: KeyImport metadata: name: KEY_IMPORT_NAME namespace: PROJECT spec: context: mechanism: MECHANISM- Substitua as seguintes variáveis: - KEY_IMPORT_NAME: o nome do recurso KeyImport, por exemplo,key-import-test.
- PROJECT: o nome do namespace do projeto, por exemplo, kms-test1.
- MECHANISM: o mecanismo de compartilhamento da chave  por exemplo: `EDCH_P521_AES256` .
 
- KEY_IMPORT_NAME: o nome do recurso 
- Aplique o conteúdo do arquivo YAML ao KMS e crie o recurso - KeyImport:- kubectl apply -f FILENAME.yaml- Substitua FILENAME pelo nome do arquivo YAML. - Com a chave pública de um par de chaves gerado internamente, o KMS atualiza o status do recurso - KeyImportpara- AwaitingKeyToImport. Para continuar, confira o status do recurso e obtenha a chave pública gerada pelo KMS.
- Para conferir o status do recurso - KeyImporte receber a chave pública gerada pelo KMS, execute o seguinte comando:- kubectl describe keyimport KEY_IMPORT_NAME --namespace PROJECT- Substitua as seguintes variáveis: - KEY_IMPORT_NAME: o nome do recurso KeyImport. Por exemplo,key-import-test.
- PROJECT: o nome do namespace do projeto. Por
exemplo: kms-test1.
 - Depois de executar o comando, você vai ver uma saída semelhante a esta: - ... Status: Conditions: Last Transition Time: 2022-12-14T20:43:50Z Message: waiting for user to provide KeyToImport Observed Generation: 1 Reason: AwaitingKeyToImport Status: False Type: Ready Imported Key Ref: Kind: KeyImport Name: key-import-test Peer Context: Private Key: Public Key: PUBLIC_KEY Events: <none>- O valor PUBLIC_KEY representa a chave pública gerada pelo KMS. Copie a chave pública e adicione-a ao recurso - KeyExportna próxima etapa.
- KEY_IMPORT_NAME: o nome do recurso 
- Crie outro arquivo YAML, adicione o recurso - KeyExportcomo o valor do objeto- kinde o conteúdo a seguir:- apiVersion: "kms.gdc.goog/v1" kind: KeyExport metadata: name: KEY_EXPORT_NAME namespace: PROJECT spec: context: mechanism: MECHANISM publicKey: PUBLIC_KEY keyToExport: kind: KEY_PRIMITIVE name: KEY_NAME- Substitua as seguintes variáveis: - KEY_EXPORT_NAME: o nome do recurso KeyExport, por exemplo,key-export-test.
- PROJECT: o nome do namespace do projeto. Por exemplo: - kms-test1.
- MECHANISM: o mecanismo de compartilhamento da chave  por exemplo: `EDCH_P521_AES256` . 
- PUBLIC_KEY: a chave pública de - keyImport.Status.PeerContext.PublicKey.
- KEY_PRIMITIVE: o CRD da chave, por exemplo, aeadkey e signingkey. 
- KEY_NAME: o nome da chave, por exemplo, - key-1.
 
- KEY_EXPORT_NAME: o nome do recurso 
- Aplique o conteúdo do arquivo YAML ao KMS e crie o recurso - KeyExport:- kubectl apply -f FILENAME.yaml- Substitua FILENAME pelo nome do arquivo YAML. - Depois de executar o comando, o KMS atualiza o status do recurso - KeyExporte gera uma chave exportada. Para receber a chave exportada, consulte o status do recurso.
- Para conferir o status do recurso, execute o seguinte comando: - kubectl describe keyexport KEY_EXPORT_NAME --namespace PROJECT- Substitua as seguintes variáveis: - KEY_EXPORT_NAME: o nome do recurso KeyExport, por exemplo,key-export-test.
- PROJECT: o nome do namespace do projeto. Por exemplo, kms-test1.
 - Depois de executar o comando, você vai ver uma saída semelhante a esta: - ... Status: Conditions: Last Transition Time: 2022-12-14T20:45:57Z Message: key successfully exported Observed Generation: 1 Reason: KeyExportCompleted Status: True Type: Ready Exported Key: EXPORTED_KEY- EXPORTED_KEY representa os metadados da chave exportada. Copie o conteúdo em EXPORTED_KEY para continuar com a próxima etapa. 
- KEY_EXPORT_NAME: o nome do recurso 
- Edite o arquivo YAML que contém o recurso - KeyImporte adicione o conteúdo copiado da saída em- keyexport.status.exportedkey.- apiVersion: "kms.gdc.goog/v1" kind: KeyImport metadata: name: key-import-test namespace: kms-test1 spec: context: mechanism: EDCH_P521_AES256 keyToImport: EXPORTED_KEY
- Depois de editar o arquivo YAML, aplique o conteúdo ao KMS: - kubectl apply -f FILENAME.yaml- Depois de executar o comando, o KMS importa a chave exportada que você forneceu. 
- Para conferir detalhes sobre a chave importada, execute o seguinte: - kubectl get keyimport KEY_IMPORT_NAME- Você verá uma saída semelhante a esta: - NAMESPACE NAME AGE READY REASON KEY KIND kms-test1 KEY_IMPORT_NAME 60s True KeyImportCompleted KEY_PRIMITIVE- KEY_PRIMITIVE representa o tipo de chave que você importou, entre as chaves AEAD e de assinatura.