Megosztás a következőn keresztül:


Rövid útmutató: Felügyelt Azure CCF-erőforrás létrehozása az Azure SDK for JavaScript és TypeScript használatával

A Microsoft Azure Managed CCF (Managed CCF) egy új és rendkívül biztonságos szolgáltatás a bizalmas alkalmazások üzembe helyezéséhez. Az Azure Managed CCF-ről további információt az Azure Managed Confidential Consortium Frameworkről szóló cikkben talál.

If you don't have an Azure subscription, create an Azure free account before you begin.

API-referenciadokumentáció Kódtár forráskódcsomagja | (npm) |

Előfeltételek

Beállítás

Ez a rövid útmutató az Azure Identity library és az Azure CLI vagy az Azure PowerShell használatával hitelesíti a felhasználót az Azure Servicesben. A fejlesztők a Visual Studio vagy a Visual Studio Code használatával is hitelesíthetik hívásaikat. További információ: Az ügyfél hitelesítése az Azure Identity ügyfélkódtárával.

Bejelentkezés az Azure-ba

Jelentkezzen be az Azure-ba az Azure CLI az login paranccsal vagy az Azure PowerShell Csatlakozás-AzAccount parancsmaggal.

az login

Ha a parancssori felület vagy a PowerShell meg tudja nyitni az alapértelmezett böngészőt, az azt teszi, és betölt egy Azure-bejelentkezési lapot. Ellenkező esetben keresse fel https://aka.ms/devicelogin és adja meg a terminálban megjelenő engedélyezési kódot.

Ha a rendszer kéri, jelentkezzen be a fiók hitelesítő adataival a böngészőben.

Új npm-projekt inicializálása

Egy terminálban vagy parancssorban hozzon létre egy megfelelő projektmappát, és inicializáljon egy npm projektet. Ezt a lépést kihagyhatja, ha már rendelkezik csomópontprojektel.

cd <work folder>
npm init -y

A csomagok telepítése

Telepítse az Azure Active Directory identitásügyfél-kódtárát.

npm install --save @azure/identity

Telepítse az Azure Confidential Ledger felügyeleti sík ügyfélkódtárát.

npm install -save @azure/arm-confidentialledger@1.3.0-beta.1

A TypeScript-fordító és -eszközök telepítése globálisan

npm install -g typescript

Erőforráscsoport létrehozása

Az erőforráscsoport olyan logikai tároló, amelybe a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat. Az Azure PowerShell New-AzResourceGroup parancsmaggal hozzon létre egy myResourceGroup nevű erőforráscsoportot a southcentralus helyén.

New-AzResourceGroup -Name "myResourceGroup" -Location "SouthCentralUS"

Az erőforrás-szolgáltató regisztrálása

Az azure-beli felügyelt CCF-erőforrástípust regisztrálni kell az előfizetésben, mielőtt létrehoz egy erőforrást.

az feature registration create --namespace Microsoft.ConfidentialLedger --name ManagedCCF

az provider register --namespace Microsoft.ConfidentialLedger

Tagok létrehozása

Hozzon létre egy kulcspárt a tag számára. A következő parancsok végrehajtása után a rendszer menti member0_cert.pem a tag nyilvános kulcsát, és a titkos kulcsot a program a következőbe member0_privk.pemmenti:

openssl ecparam -out "member0_privk.pem" -name "secp384r1" -genkey
openssl req -new -key "member0_privk.pem" -x509 -nodes -days 365 -out "member0_cert.pem" -"sha384" -subj=/CN="member0"

A JavaScript-alkalmazás létrehozása

A Felügyeleti sík ügyfélkódtárának használata

Az Azure SDK for JavaScript és a TypeScript-kódtár azure/arm-confidentialledger lehetővé teszi a felügyelt CCF-erőforrásokon végzett műveleteket, például a létrehozást és törlést, az előfizetéshez társított erőforrások felsorolását és egy adott erőforrás részleteinek megtekintését.

Az alábbi minták futtatásához mentse a kódrészleteket egy .ts fájlba egy kiterjesztéssel a projektmappába, és fordítsa le a TypeScript-projekt részeként, vagy fordítsa le a szkriptet külön JavaScript-fájlba a futtatással:

tsc <filename.ts>

A lefordított JavaScript-fájl neve ugyanaz lesz, csak egy *.js bővítmény. Ezután futtassa a szkriptet a nodeJS-ben:

node <filename.js>

Az alábbi TypeScript-mintakód egy felügyelt CCF-erőforrás tulajdonságait hozza létre és tekinti meg.

import  { ConfidentialLedgerClient, ManagedCCFProperties, ManagedCCF, KnownLanguageRuntime, DeploymentType, MemberIdentityCertificate } from "@azure/arm-confidentialledger";
import { DefaultAzureCredential } from "@azure/identity";

// Please replace these variables with appropriate values for your project
const subscriptionId = "0000000-0000-0000-0000-000000000001";
const rgName = "myResourceGroup";
const ledgerId = "testApp";
const memberCert0 = "-----BEGIN CERTIFICATE-----\nMIIBvjCCAUSgAwIBAg...0d71ZtULNWo\n-----END CERTIFICATE-----";
const memberCert1 = "-----BEGIN CERTIFICATE-----\nMIIBwDCCAUagAwIBAgI...2FSyKIC+vY=\n-----END CERTIFICATE-----";

async function main() {
    console.log("Creating a new instance.")
    const client = new ConfidentialLedgerClient(new DefaultAzureCredential(), subscriptionId);

    const properties = <ManagedCCFProperties> {
        deploymentType: <DeploymentType> {
            appSourceUri: "",
            languageRuntime: KnownLanguageRuntime.JS
        },
        memberIdentityCertificates: [
            <MemberIdentityCertificate>{
                certificate: memberCert0,
                encryptionkey: "",
                tags: { 
                    "owner":"member0"
                }
            },
            <MemberIdentityCertificate>{
                certificate: memberCert1,
                encryptionkey: "",
                tags: { 
                    "owner":"member1"
                }
            },
        ],
        nodeCount: 3,
    };

    const mccf = <ManagedCCF> {
        location: "SouthCentralUS",
        properties: properties,
    }

    const createResponse = await client.managedCCFOperations.beginCreateAndWait(rgName, ledgerId, mccf);
    console.log("Created. Instance id: " +  createResponse.id);

    // Get details of the instance
    console.log("Getting instance details.");
    const getResponse = await client.managedCCFOperations.get(rgName, ledgerId);
    console.log(getResponse.properties?.identityServiceUri);
    console.log(getResponse.properties?.nodeCount);

    // List mccf instances in the RG
    console.log("Listing the instances in the resource group.");
    const instancePages = await client.managedCCFOperations.listByResourceGroup(rgName).byPage();
    for await(const page of instancePages){
        for(const instance of page)
        {
            console.log(instance.name + "\t" + instance.location + "\t" + instance.properties?.nodeCount);
        }
    }

    console.log("Delete the instance.");
    await client.managedCCFOperations.beginDeleteAndWait(rgName, ledgerId);
    console.log("Deleted.");
}

(async () => {
    try {
        await main();
    } catch(err) {
        console.error(err);
    }
})();

A felügyelt CCF-erőforrás törlése

A következő kódrészlet törli a felügyelt CCF-erőforrást. Más felügyelt CCF-cikkek erre a rövid útmutatóra építhetnek. Ha további rövid útmutatókkal és oktatóanyagokkal szeretné folytatni a munkát, érdemes lehet ezeket az erőforrásokat a helyén hagyni.

import  { ConfidentialLedgerClient, ManagedCCFProperties, ManagedCCF, KnownLanguageRuntime, DeploymentType, MemberIdentityCertificate } from "@azure/arm-confidentialledger";
import { DefaultAzureCredential } from "@azure/identity";

const subscriptionId = "0000000-0000-0000-0000-000000000001"; // replace
const rgName = "myResourceGroup";
const ledgerId = "confidentialbillingapp";

async function deleteManagedCcfResource() {
    const client = new ConfidentialLedgerClient(new DefaultAzureCredential(), subscriptionId);

    console.log("Delete the instance.");
    await client.managedCCFOperations.beginDeleteAndWait(rgName, ledgerId);
    console.log("Deleted.");
}

(async () => {
    try {
        await deleteManagedCcfResource();
    } catch(err) {
        console.error(err);
    }
})();

Clean up resources

Más felügyelt CCF-cikkek erre a rövid útmutatóra építhetnek. Ha további rövid útmutatókkal és oktatóanyagokkal szeretné folytatni a munkát, érdemes lehet ezeket az erőforrásokat a helyén hagyni.

Ellenkező esetben, ha végzett a cikkben létrehozott erőforrásokkal, az Azure CLI az group delete paranccsal törölje az erőforráscsoportot és annak összes benne foglalt erőforrását.

az group delete --resource-group myResourceGroup

További lépések

Ebben a rövid útmutatóban létrehozott egy felügyelt CCF-erőforrást az Azure Python SDK for Confidential Ledger használatával. Ha többet szeretne megtudni az Azure Managed CCF-ről és arról, hogyan integrálható az alkalmazásokkal, folytassa az alábbi cikkekkel: