Aktywowanie członków w zasobie usługi Azure Managed CCF

W tym przewodniku dowiesz się, jak aktywować elementy członkowskie w zasobie zarządzanym przez usługę Azure CCF (Managed CCF). Ten samouczek opiera się na zasobie zarządzanym CCF utworzonym w przewodniku Szybki start: tworzenie zasobu zarządzanego przez platformę Azure CCF przy użyciu samouczka witryny Azure Portal .

Wymagania wstępne

  • Python 3+.
  • Zainstaluj najnowszą wersję pakietu języka Python CCF.

Pobieranie tożsamości usługi

Zasób zarządzanego programu CCF platformy Azure ma unikatową tożsamość o nazwie tożsamość usługi. Jest reprezentowany przez certyfikat i jest tworzony podczas tworzenia zasobu. Każdy węzeł będący częścią zasobu azure Managed CCF ma certyfikat z podpisem własnym zatwierdzony przez tożsamość usługi, który ustanawia zaufanie do niego.

Klienci zaleca się pobranie certyfikatu tożsamości usługi i użycie go do nawiązania połączenia TLS podczas interakcji z usługą. Następujące polecenie pobiera certyfikat i zapisuje go w pliku service_cert.pem.

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

Aktywowanie elementów członkowskich

Po dodaniu elementu członkowskiego do zarządzanego zasobu CCF są one w stanie akceptowanym. Nie mogą uczestniczyć w ładie, dopóki nie zostaną aktywowane. W tym celu członek musi potwierdzić, że jest on zadowolony ze stanu usługi (na przykład po przeprowadzeniu inspekcji bieżącej konstytucji i węzłów, które są obecnie zaufane).

  1. Element członkowski musi zaktualizować i pobrać najnowszy skrót stanu. W ten sposób nowy element członkowski potwierdza, że jest on zadowolony z bieżącego stanu usługi.
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": <...>
}

Uwaga

Podczas wykonywania poleceń na komputerze Mac zastąp ciąg date -Is .date +%FT%T%z

  1. Element członkowski musi podpisać skrót stanu przy użyciu narzędzia ccf_cose_sign1. To narzędzie jest instalowane wraz z pakietem języka Python CCF.
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. Po zakończeniu działania polecenia członek jest aktywny i może uczestniczyć w zarządzaniu. Elementy członkowskie można wyświetlić przy użyciu następującego polecenia.
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"
  }
}

Następne kroki