Udostępnij przez


Szybki start: tworzenie zasobu zarządzanego przez platformę Azure CCF przy użyciu zestawu Azure SDK dla platformy .NET

Azure Managed CCF (Managed CCF) to nowa i wysoce bezpieczna usługa do wdrażania aplikacji poufnych. Aby uzyskać więcej informacji na temat zarządzanej architektury CCF i przykładowych przypadków użycia, zobacz About Azure Managed Confidential Consortium Framework (Informacje o platformie Azure Managed Confidential Consortium Framework).

Z tego przewodnika Szybki start dowiesz się, jak utworzyć zasób zarządzanego programu CCF przy użyciu biblioteki zarządzania klientami platformy .NET.

Jeśli nie masz konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto .

Dokumentacja referencyjna interfejsu | APIKod | źródłowy bibliotekiPakiet (NuGet)

Wymagania wstępne

Konfiguracja

Tworzenie nowej aplikacji konsolowej platformy .NET

  1. W powłoce poleceń uruchom następujące polecenie, aby utworzyć projekt o nazwie managedccf-app:

    dotnet new console --name managedccf-app
    
  2. Przejdź do nowo utworzonego katalogu managedccf-app i uruchom następujące polecenie, aby skompilować projekt:

    dotnet build
    

    Dane wyjściowe kompilacji nie powinny zawierać żadnych ostrzeżeń ani błędów.

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

Instalowanie pakietu

Zainstaluj bibliotekę klienta programu Azure Managed CCF dla platformy .NET przy użyciu narzędzia NuGet:

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

W tym przewodniku Szybki start musisz również zainstalować bibliotekę klienta zestawu Azure SDK dla usługi Azure Identity:

dotnet add package Azure.Identity

Tworzenie grupy zasobów

Grupa zasobów to logiczny kontener, w którym są wdrażane i zarządzane zasoby platformy Azure. Użyj polecenia cmdlet New-AzResourceGroup programu Azure PowerShell, aby utworzyć grupę zasobów o nazwie myResourceGroup w lokalizacji southcentralus .

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

Rejestrowanie dostawcy zasobów

Przed utworzeniem zasobu należy zarejestrować typ zasobu CCF zarządzanego przez platformę Azure w ramach subskrypcji.

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

az provider register --namespace Microsoft.ConfidentialLedger

Tworzenie członków

Wygeneruj parę kluczy dla elementu członkowskiego. Po zakończeniu wykonywania poniższych poleceń klucz publiczny członka jest zapisywany w member0_cert.pem pliku i klucz prywatny jest zapisywany w pliku 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"

Tworzenie aplikacji .NET

Korzystanie z biblioteki klienta płaszczyzny zarządzania

Zestaw Azure SDK dla platformy .NET (azure/arm-confidentialledger) umożliwia operacje na zarządzanych zasobach CCF, takich jak tworzenie i usuwanie, wyświetlanie listy zasobów skojarzonych z subskrypcją i wyświetlanie szczegółów określonego zasobu. Poniższy fragment kodu tworzy i wyświetla właściwości zarządzanego zasobu CCF.

Dodaj następujące dyrektywy na początku 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;

Uwierzytelnianie i tworzenie klienta

W tym przewodniku Szybki start zalogowany użytkownik jest używany do uwierzytelniania w usłudze Azure Managed CCF, która jest preferowaną metodą programowania lokalnego. W tym przykładzie użyto klasy "DefaultAzureCredential()" z biblioteki tożsamości platformy Azure, która umożliwia używanie tego samego kodu w różnych środowiskach z różnymi opcjami w celu zapewnienia tożsamości.

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

Utwórz klienta usługi Azure Resource Manager i uwierzytelnij się przy użyciu poświadczeń tokenu.

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

Tworzenie zarządzanego zasobu CCF

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

Wyświetlanie właściwości zarządzanego zasobu CCF

Poniższy fragment kodu pobiera zasób managed CCF i drukuje jego właściwości.

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

Wyświetlanie listy zarządzanych zasobów CCF w grupie zasobów

Poniższy fragment kodu pobiera zarządzane zasoby CCF w grupie zasobów.

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

Wyświetlanie listy zarządzanych zasobów CCF w subskrypcji

Poniższy fragment kodu pobiera zasoby zarządzanego programu CCF w subskrypcji.

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

Czyszczenie zasobów

Inne artykuły dotyczące zarządzanego programu CCF mogą opierać się na tym przewodniku Szybki start. Jeśli planujesz kontynuować pracę z kolejnymi przewodnikami Szybki start i samouczkami, możesz pozostawić te zasoby na miejscu.

W przeciwnym razie po zakończeniu pracy z zasobami utworzonymi w tym artykule użyj polecenia az group delete interfejsu wiersza polecenia platformy Azure, aby usunąć grupę zasobów i wszystkie zawarte w niej zasoby.

az group delete --resource-group myResourceGroup

Dalsze kroki

W tym przewodniku Szybki start utworzono zasób zarządzanego programu CCF przy użyciu zestawu Azure Python SDK for Confidential Ledger. Aby dowiedzieć się więcej o usłudze Azure Managed CCF i sposobie jej integracji z aplikacjami, przejdź do następujących artykułów: