Ativar membros em um recurso do Azure Managed CCF
Neste guia, você aprenderá a 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.
Baixar 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 de 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. Eles não podem participar da governança até que sejam ativados. Para fazer 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).
- O membro deve atualizar e recuperar o resumo de 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": <...>
}
Observação
Ao executar os comandos em um Mac, substitua date -Is
por date +%FT%T%z
.
- 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"
- Após a conclusão do comando, o membro fica ativo e pode participar da governança. Os membros podem ser visualizados usando o comando a seguir.
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"
}
}