Partilhar via


Ativar membros em um recurso do Azure Managed CCF

Neste guia, você aprenderá como ativar o(s) membro(s) em um recurso do Azure Managed CCF (Managed CCF). Este tutorial baseia-se no recurso CCF Gerenciado criado no Guia de início rápido: Criar um recurso CCF gerenciado do Azure usando o tutorial do portal do Azure.

Pré-requisitos

  • Python 3+.
  • Instale a versão mais recente do pacote CCF Python.

Transferir a identidade do serviço

Um recurso CCF gerenciado do Azure tem uma identidade exclusiva chamada identidade de serviço. Ele é representado por um certificado e é criado durante a criação do recurso. Cada nó individual que faz parte do recurso CCF Gerenciado do Azure tem seu certificado autoassinado, endossado pela identidade do serviço, que estabelece confiança nele.

Recomenda-se que os clientes baixem o certificado de identidade do serviço e o usem para estabelecer uma conexão TLS ao interagir com o serviço. O comando a seguir baixa o certificado e o salva em service_cert.pem.

curl https://identity.confidential-ledger.core.azure.com/ledgerIdentity/confidentialbillingapp --silent | jq ' .ledgerTlsCertificate' | xargs echo -e > service_cert.pem

Ativar Membro(s)

Quando um membro é adicionado a um recurso CCF gerenciado, ele está no estado aceito. Não podem participar na governação enquanto não forem ativados. Para isso, o membro deve reconhecer que está satisfeito com o estado do serviço (por exemplo, depois de auditar a constituição atual e os nós atualmente confiáveis).

  1. O membro deve atualizar e recuperar o resumo do estado mais recente. Ao fazê-lo, o novo membro confirma que está satisfeito com o estado atual do serviço.
curl https://confidentialbillingapp.confidential-ledger.azure.com/gov/ack/update_state_digest -X POST --cacert service_cert.pem --key member0_privk.pem --cert member0_cert.pem --silent | jq > request.json
cat request.json
{
    "state_digest": <...>
}

Nota

Ao executar os comandos em um Mac, substitua date -Is por date +%FT%T%z.

  1. O membro deve assinar o resumo do estado usando o utilitário ccf_cose_sign1. Este utilitário é instalado junto com o pacote CCF Python.
ccf_cose_sign1 --ccf-gov-msg-type ack --ccf-gov-msg-created_at `date -Is` --signing-key member0_privk.pem --signing-cert member0_cert.pem --content request.json | \
 curl https://confidentialbillingapp.confidential-ledger.azure.com/gov/ack --cacert service_cert.pem --data-binary @- -H "content-type: application/cose"
  1. Após a conclusão do comando, o membro fica ativo e pode participar da governança. Os membros podem ser visualizados usando o seguinte comando.
curl --cacert service_cert.pem https://confidentialbillingapp.confidential-ledger.azure.com/gov/members | jq
{
  "710c4d7ce6a70a89137b39170cd5c48f94b4756a66e66b2242370111c1c47564": {
    "cert": "-----BEGIN CERTIFICATE-----\nMIIB9zCCAX2gAwIBAgIQW20I1iR...l8Uv8rRce\n-----END CERTIFICATE-----",
    "member_data": {
      "is_operator": true,
      "owner": "Microsoft Azure"
    },
    "public_encryption_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMI...n3QIDAQAB\n-----END PUBLIC KEY-----\n",
    "status": "Active"
  },
  "f9ea379051e5292b538ff2a3dc97f1bb4d5046f12e2bdbf5b8e3acc4516f34e3": {
    "cert": "-----BEGIN CERTIFICATE-----\nMIIBuzCCAUKgAwIBAgIURuSESLma...yyK1EHhxx\n-----END CERTIFICATE-----",
    "member_data": {
      "group": "",
      "identifier": "member0"
    },
    "public_encryption_key": null,
    "status": "Active"
  }
}

Próximos passos