Compartir a través de


Activación de miembros en un recurso CCF administrado de Azure

En esta guía, aprenderá a activar los miembros en un recurso ccF administrado (CCF administrado) de Azure. Este tutorial se basa en el recurso CCF administrado creado en el inicio rápido: Creación de un recurso CCF administrado de Azure mediante Azure Portal .

Requisitos previos

  • Python 3+.
  • Instale la versión más reciente del paquete de Python ccF.

Descarga de la identidad del servicio

Un recurso CCF administrado de Azure tiene una identidad única denominada identidad de servicio. Se representa mediante un certificado y se crea durante la creación del recurso. Cada nodo individual que forma parte del recurso CCF administrado de Azure tiene su certificado autofirmado, aprobado por la identidad de servicio, que establece la confianza en él.

Se recomienda a los clientes descargar el certificado de identidad de servicio y usarlo para establecer una conexión TLS al interactuar con el servicio. El siguiente comando descarga el certificado y lo guarda en service_cert.pem.

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

Activar miembros

Cuando se agrega un miembro a un recurso CCF administrado, se encuentran en estado aceptado. No pueden participar en la gobernanza hasta que se activen. Para ello, el miembro debe reconocer que están satisfechos con el estado del servicio (por ejemplo, después de auditar la constitución actual y los nodos de confianza actualmente).

  1. El miembro debe actualizar y recuperar el resumen de estado más reciente. Al hacerlo, el nuevo miembro confirma que están satisfechos con el estado actual del servicio.
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:

Al ejecutar los comandos en un equipo Mac, reemplace por date -Is date +%FT%T%z.

  1. El miembro debe firmar el resumen de estado mediante la utilidad ccf_cose_sign1. Esta utilidad se instala junto con el paquete ccF de 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. Una vez completado el comando, el miembro está activo y puede participar en la gobernanza. Los miembros se pueden ver mediante el comando siguiente.
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"
  }
}

Pasos siguientes