Partager via


Démarrage rapide : Créer une ressource CCF managée Azure à l’aide du Kit de développement logiciel (SDK) Azure pour .NET

Azure Managed CCF (Managed CCF) est un service nouveau et hautement sécurisé pour le déploiement d’applications confidentielles. Pour plus d’informations sur Managed CCF et pour obtenir des exemples de cas d’usage, consultez About Azure Managed Confidential Consortium Framework.

Dans ce guide de démarrage rapide, vous allez apprendre à créer une ressource CCF managée à l’aide de la bibliothèque de gestion des clients .NET.

Si vous n’avez pas de compte Azure, créez un compte gratuit avant de commencer.

Documentation de | référence sur l’APICode | source de la bibliothèquePackage (NuGet)

Prerequisites

Coup monté

Créer une application console .NET

  1. Dans un interpréteur de commandes, exécutez la commande suivante pour créer un projet nommé managedccf-app:

    dotnet new console --name managedccf-app
    
  2. Accédez au répertoire managedccf-app nouvellement créé et exécutez la commande suivante pour générer le projet :

    dotnet build
    

    La sortie de build ne doit contenir aucun avertissement ou erreur.

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

Installer le package

Installez la bibliothèque de client Azure Managed CCF pour .NET avec NuGet :

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

Pour ce guide de démarrage rapide, vous devez également installer la bibliothèque de client du Kit de développement logiciel (SDK) Azure pour Azure Identity :

dotnet add package Azure.Identity

Créer un groupe de ressources

Un groupe de ressources est un conteneur logique dans lequel les ressources Azure sont déployées et gérées. Utilisez l’applet de commande Azure PowerShell New-AzResourceGroup pour créer un groupe de ressources nommé myResourceGroup à l’emplacement southcentralus .

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

Inscrire le fournisseur de ressources

Le type de ressource Azure Managed CCF doit être inscrit dans l’abonnement avant de créer une ressource.

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

az provider register --namespace Microsoft.ConfidentialLedger

Créer des membres

Générez une paire de clés pour le membre. Une fois les commandes suivantes terminées, la clé publique du membre est enregistrée member0_cert.pem et la clé privée est enregistrée dans 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"

Créer l’application .NET

Utiliser la bibliothèque cliente du plan de gestion

Le Kit de développement logiciel (SDK) Azure pour .NET (azure/arm-confidentialledger) permet des opérations sur des ressources CCF gérées, telles que la création et la suppression, la liste des ressources associées à un abonnement et l’affichage des détails d’une ressource spécifique. L’élément de code suivant crée et affiche les propriétés d’une ressource CCF managée.

Ajoutez les directives suivantes en haut de 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;

Authentifier et créer un client

Dans ce guide de démarrage rapide, l’utilisateur connecté est utilisé pour s’authentifier auprès d’Azure Managed CCF, qui est la méthode préférée pour le développement local. Cet exemple utilise la classe « DefaultAzureCredential() » de la bibliothèque d’identités Azure, qui permet d’utiliser le même code dans différents environnements avec différentes options pour fournir une identité.

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

Créez un client Azure Resource Manager et authentifiez-vous à l’aide des informations d’identification du jeton.

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

Créer une ressource CCF managée

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

Afficher les propriétés d’une ressource CCF gérée

L’élément de code suivant récupère la ressource CCF managée et imprime ses propriétés.

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

Répertorier les ressources CCF gérées dans un groupe de ressources

L’élément de code suivant récupère les ressources CCF gérées dans un groupe de ressources.

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

Répertorier les ressources CCF gérées dans un abonnement

L’élément de code suivant récupère les ressources CCF gérées dans un abonnement.

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

Nettoyer les ressources

D’autres articles de CCF managés peuvent s’appuyer sur ce guide de démarrage rapide. Si vous envisagez de continuer à travailler avec des guides de démarrage rapide et des didacticiels suivants, vous souhaiterez peut-être laisser ces ressources en place.

Sinon, lorsque vous avez terminé d’utiliser les ressources créées dans cet article, utilisez la commande Azure CLI az group delete pour supprimer le groupe de ressources et toutes ses ressources contenues.

az group delete --resource-group myResourceGroup

Étapes suivantes

Dans ce guide de démarrage rapide, vous avez créé une ressource CCF managée à l’aide du Kit de développement logiciel (SDK) Azure Python pour le registre confidentiel. Pour en savoir plus sur Azure Managed CCF et comment l’intégrer à vos applications, passez à ces articles :