Freigeben über


Schnellstart: Erstellen einer Azure Managed CCF-Ressource mithilfe des Azure SDK für .NET

Azure Managed CCF (Managed CCF) ist ein neuer und äußerst sicherer Dienst für die Bereitstellung vertraulicher Anwendungen. Unter Informationen zu Azure Managed Confidential Consortium Framework finden Sie weitere Informationen zu Managed CCF sowie Anwendungsfälle.

In diesem Schnellstart erfahren Sie, wie Sie mithilfe der .NET-Clientverwaltungsbibliothek eine Managed CFF-Ressource erstellen.

Sollten Sie über kein Azure-Abonnement verfügen, können Sie zunächst ein kostenloses Azure-Konto erstellen.

API-Referenzdokumentation | Quellcode der Bibliothek | Paket (NuGet)

Voraussetzungen

Setup

Erstellen einer neuen .NET-Konsolen-App

  1. Führen Sie in einer Befehlsshell den folgenden Befehl aus, um ein Projekt namens managedccf-app zu erstellen:

    dotnet new console --name managedccf-app
    
  2. Wechseln Sie zum neu erstellten Verzeichnis managedccf-app, und führen Sie den folgenden Befehl aus, um das Projekt zu erstellen:

    dotnet build
    

    Die Buildausgabe sollte keine Warnungen oder Fehler enthalten.

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

Installieren des Pakets

Installieren Sie die Azure Managed CCF-Clientbibliothek für .NET mit NuGet:

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

Für diesen Schnellstart müssen Sie auch die Azure SDK-Clientbibliothek für Azure Identity installieren:

dotnet add package Azure.Identity

Erstellen einer Ressourcengruppe

Eine Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden. Erstellen Sie mit dem Azure PowerShell-Cmdlet New-AzResourceGroup eine Ressourcengruppe mit dem Namen myResourceGroup am Standort southcentralus.

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

Registrieren des Ressourcenanbieters

Der Azure Managed CCF-Ressourcentyp muss im Abonnement registriert werden, bevor eine Ressource erstellt wird.

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

az provider register --namespace Microsoft.ConfidentialLedger

Erstellen von Membern

Generieren Sie ein Schlüsselpaar für das Element. Nach Abschluss der folgenden Befehle wird der öffentliche Schlüssel des Mitglieds in member0_cert.pem gespeichert, und der private Schlüssel wird in member0_privk.pem gespeichert.

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"

Erstellen der .NET-Anwendung

Verwenden der Clientbibliothek der Verwaltungsebene

Das Azure SDK für .NET (azure/arm-confidentialledger) ermöglicht Vorgänge mit Managed CCF-Ressourcen, z. B. das Erstellen und Löschen, das Auflisten der mit einem Abonnement verbundenen Ressourcen und das Anzeigen der Details einer bestimmten Ressource. Der folgende Codeabschnitt erstellt und zeigt die Eigenschaften einer Managed CCF-Ressource an.

Fügen Sie am Anfang von Program.cs die folgenden Anweisungen hinzu:

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;

Authentifizieren und Erstellen eines Clients

In diesem Schnellstart wird der angemeldete Benutzer zum Authentifizieren bei Azure Managed CCF verwendet. Dies ist die bevorzugte Methode für die lokale Entwicklung. In diesem Beispiel wird die Klasse DefaultAzureCredential() aus der Azure Identity-Bibliothek verwendet, wodurch der gleiche Code in verschiedenen Umgebungen mit verschiedenen Optionen für die Identitätsbereitstellung verwendet werden kann.

// 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();

Erstellen Sie einen Azure Resource Manager-Client, und authentifizieren Sie sich mithilfe der Tokenanmeldeinformationen.

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

Erstellen einer Managed CCF-Ressource

// 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}");

Anzeigen der Eigenschaften einer Managed CCF-Ressource

Der folgende Codeabschnitt ruft die Managed CCF-Ressource ab und gibt ihre Eigenschaften aus.

// 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}");

Auflisten der Managed CCF-Ressourcen in einer Ressourcengruppe

Der folgende Codeabschnitt ruft die Managed CCF-Ressourcen in einer Ressourcengruppe ab.

// 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");

Auflisten der Managed CCF-Ressourcen in einem Abonnement

Der folgende Codeabschnitt ruft die Managed CCF-Ressourcen in einem Abonnement ab.

// 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");

Bereinigen von Ressourcen

Andere Managed CCF-Artikel können auf diesem Schnellstart aufbauen. Wenn Sie vorhaben, mit späteren Schnellstarts und Tutorials weiterzuarbeiten, sollten Sie diese Ressourcen beibehalten.

Andernfalls, wenn Sie mit den in diesem Artikel erstellten Ressourcen fertig sind, verwenden Sie den Azure CLI-Befehl az group delete, um die Ressourcengruppe und alle darin enthaltenen Ressourcen zu löschen.

az group delete --resource-group myResourceGroup

Nächste Schritte

In diesem Schnellstart haben Sie eine verwaltete CCF-Ressource mithilfe des Azure Python SDK für Confidential Ledger erstellt. Wenn Sie mehr über Azure Managed CCF erfahren möchten und darüber, wie Sie es in Ihre Anwendungen integrieren können, lesen Sie diese Artikel weiter: