Delen via


Quickstart: Een Azure Managed CCF-resource maken met behulp van de Azure SDK voor .NET

Azure Managed CCF (Managed CCF) is een nieuwe en zeer veilige service voor het implementeren van vertrouwelijke toepassingen. Zie Over Azure Managed Confidential Consortium Framework voor meer informatie over Beheerde CCF en voor voorbeelden van use cases.

In deze quickstart leert u hoe u een beheerde CCF-resource maakt met behulp van de .NET-clientbeheerbibliotheek.

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

API-referentiedocumentatie | Broncode bibliotheek | Pakket (NuGet)

Vereisten

Instellingen

Nieuwe .NET-console-app maken

  1. Voer in een opdrachtshell de volgende opdracht uit om een project te maken met de naam managedccf-app:

    dotnet new console --name managedccf-app
    
  2. Ga naar de zojuist gemaakte map managedccf-app en voer de volgende opdracht uit om het project te bouwen:

    dotnet build
    

    De build-uitvoer mag geen waarschuwingen of fouten bevatten.

    Build succeeded.
     0 Warning(s)
     0 Error(s)
    

Het pakket installeren

Installeer de Azure Managed CCF-clientbibliotheek voor .NET met NuGet:

dotnet add package Azure.ResourceManager.ConfidentialLedger --version 1.1.0-beta.2

Voor deze quickstart moet u ook de Azure SDK-clientbibliotheek voor Azure Identity installeren:

dotnet add package Azure.Identity

Een brongroep maken

Een resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd. Gebruik de Azure PowerShell New-AzResourceGroup-cmdlet om een resourcegroep met de naam myResourceGroup te maken op de locatie southcentralus .

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

De resourceprovider registreren

Het azure managed CCF-resourcetype moet worden geregistreerd in het abonnement voordat u een resource maakt.

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

az provider register --namespace Microsoft.ConfidentialLedger

Leden maken

Genereer een sleutelpaar voor het lid. Nadat de volgende opdrachten zijn voltooid, wordt de openbare sleutel van het lid opgeslagen en member0_cert.pem wordt de persoonlijke sleutel opgeslagen in member0_privk.pem.

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"

De .NET-toepassing maken

De clientbibliotheek voor het beheervlak gebruiken

Met de Azure SDK voor .NET (azure/arm-confidentialledger) kunt u bewerkingen uitvoeren op beheerde CCF-resources, zoals het maken en verwijderen, het weergeven van de resources die zijn gekoppeld aan een abonnement en de details van een specifieke resource bekijken. In het volgende codefragment worden de eigenschappen van een beheerde CCF-resource gemaakt en weergegeven.

Voeg de volgende instructies toe aan het begin van Program.cs:

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Azure;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.ConfidentialLedger;
using Azure.ResourceManager.ConfidentialLedger.Models;
using Azure.ResourceManager.Resources;

Een client verifiëren en maken

In deze quickstart wordt de aangemelde gebruiker gebruikt om te verifiëren bij Azure Managed CCF. Dit is de voorkeursmethode voor lokale ontwikkeling. In dit voorbeeld wordt de klasse DefaultAzureCredential()van Azure Identity Library gebruikt, waarmee dezelfde code in verschillende omgevingen kan worden gebruikt met verschillende opties om identiteiten te bieden.

// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();

Maak een Azure Resource Manager-client en verifieer met behulp van de tokenreferentie.

// authenticate your client
ArmClient client = new ArmClient(cred);

Een beheerde CCF-resource maken

// this example assumes you already have this ResourceGroupResource created on azure
// for more information of creating ResourceGroupResource, please refer to the document of ResourceGroupResource
string subscriptionId = "0000000-0000-0000-0000-000000000001";
string resourceGroupName = "myResourceGroup";
ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = client.GetResourceGroupResource(resourceGroupResourceId);

// get the collection of this ManagedCcfResource
ManagedCcfCollection collection = resourceGroupResource.GetManagedCcfs();

// invoke the operation
string appName = "confidentialbillingapp";
ManagedCcfData data = new ManagedCcfData(new AzureLocation("SouthCentralUS"))
{
    Properties = new ManagedCcfProperties()
    {
        MemberIdentityCertificates =
        {
            new ConfidentialLedgerMemberIdentityCertificate()
            {
                Certificate = "-----BEGIN CERTIFICATE-----MIIBsjCCATigA...LjYAGDSGi7NJnSkA-----END CERTIFICATE-----",
                Encryptionkey = "",
                Tags = BinaryData.FromObjectAsJson(new Dictionary<string, object>()
                {
                    ["additionalProps1"] = "additional properties"
                }),
            }
        },
        DeploymentType = new ConfidentialLedgerDeploymentType()
        {
            LanguageRuntime = ConfidentialLedgerLanguageRuntime.JS,
            AppSourceUri = new Uri(""),
        },
        NodeCount = 3,
    },
    Tags =
    {
        ["additionalProps1"] = "additional properties",
    },
};

ArmOperation<ManagedCcfResource> lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, appName, data);
ManagedCcfResource result = lro.Value;

// the variable result is a resource, you could call other operations on this instance as well
// but just for demo, we get its data from this resource instance
ManagedCcfData resourceData = result.Data;
// for demo we just print out the id
Console.WriteLine($"Succeeded on id: {resourceData.Id}");

De eigenschappen van een beheerde CCF-resource weergeven

Met het volgende codefragment wordt de beheerde CCF-resource opgehaald en worden de eigenschappen ervan afgedrukt.

// this example assumes you already have this ResourceGroupResource created on azure
// for more information of creating ResourceGroupResource, please refer to the document of ResourceGroupResource
string subscriptionId = "0000000-0000-0000-0000-000000000001";
string resourceGroupName = "myResourceGroup";
ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = client.GetResourceGroupResource(resourceGroupResourceId);

// get the collection of this ManagedCcfResource
ManagedCcfCollection collection = resourceGroupResource.GetManagedCcfs();

// invoke the operation
string appName = "confidentialbillingapp";
ManagedCcfResource result = await collection.GetAsync(appName);

// the variable result is a resource, you could call other operations on this instance as well
// but just for demo, we get its data from this resource instance
ManagedCcfData resourceData = result.Data;
// for demo we just print out the id
Console.WriteLine($"Succeeded on id: {resourceData.Id}");

De beheerde CCF-resources in een resourcegroep weergeven

Met het volgende codefragment worden de beheerde CCF-resources in een resourcegroep opgehaald.

// this example assumes you already have this ResourceGroupResource created on azure
// for more information of creating ResourceGroupResource, please refer to the document of ResourceGroupResource
string subscriptionId = "0000000-0000-0000-0000-000000000001";
string resourceGroupName = "myResourceGroup";
ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = client.GetResourceGroupResource(resourceGroupResourceId);

// get the collection of this ManagedCcfResource
ManagedCcfCollection collection = resourceGroupResource.GetManagedCcfs();

// invoke the operation and iterate over the result
await foreach (ManagedCcfResource item in collection.GetAllAsync())
{
    // the variable item is a resource, you could call other operations on this instance as well
    // but just for demo, we get its data from this resource instance
    ManagedCcfData resourceData = item.Data;
    // for demo we just print out the id
    Console.WriteLine($"Succeeded on id: {resourceData.Id}");
}

Console.WriteLine($"Succeeded");

De beheerde CCF-resources in een abonnement weergeven

Met het volgende codefragment worden de beheerde CCF-resources in een abonnement opgehaald.

// this example assumes you already have this SubscriptionResource created on azure
// for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource
string subscriptionId = "0000000-0000-0000-0000-000000000001";
ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId);
SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId);

// invoke the operation and iterate over the result
await foreach (ManagedCcfResource item in subscriptionResource.GetManagedCcfsAsync())
{
    // the variable item is a resource, you could call other operations on this instance as well
    // but just for demo, we get its data from this resource instance
    ManagedCcfData resourceData = item.Data;
    // for demo we just print out the id
    Console.WriteLine($"Succeeded on id: {resourceData.Id}");
}

Console.WriteLine($"Succeeded");

Resources opschonen

Andere beheerde CCF-artikelen kunnen voortbouwen op deze quickstart. Als u van plan bent om door te gaan met de volgende quickstarts en zelfstudies, wilt u deze resources mogelijk behouden.

Als u klaar bent met de resources die in dit artikel zijn gemaakt, gebruikt u de opdracht Azure CLI az group delete om de resourcegroep en alle bijbehorende resources te verwijderen.

az group delete --resource-group myResourceGroup

Volgende stappen

In deze quickstart hebt u een beheerde CCF-resource gemaakt met behulp van de Azure Python SDK voor Confidential Ledger. Voor meer informatie over Azure Managed CCF en hoe u deze integreert met uw toepassingen, gaat u verder met deze artikelen: