Rychlý start: Vytvoření prostředku AZURE Managed CCF pomocí sady Azure SDK pro .NET
Azure Managed CCF (Managed CCF) je nová a vysoce zabezpečená služba pro nasazování důvěrných aplikací. Další informace o spravované službě CCF a příklady případů použití najdete v tématu Informace o platformě Azure Managed Confidential Consortium Framework.
V tomto rychlém startu se dozvíte, jak vytvořit spravovaný prostředek CCF pomocí klientské knihovny pro správu .NET.
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
Referenční dokumentace k | rozhraní API – Balíček zdrojového kódu | knihovny (NuGet)
Předpoklady
- Předplatné Azure – vytvořte si ho zdarma.
- Verze .NET podporované sadou Azure SDK pro .NET
- OpenSSL na počítači se systémem Windows nebo Linux.
Nastavení
Vytvoření nové konzolové aplikace .NET
Spuštěním následujícího příkazu v příkazovém prostředí vytvořte projekt s názvem
managedccf-app
:dotnet new console --name managedccf-app
Přejděte do nově vytvořeného adresáře managedccf-app a spuštěním následujícího příkazu sestavte projekt:
dotnet build
Výstup sestavení by neměl obsahovat žádná upozornění ani chyby.
Build succeeded. 0 Warning(s) 0 Error(s)
Nainstalujte balíček .
Nainstalujte klientskou knihovnu Azure Managed CCF pro .NET pomocí NuGetu:
dotnet add package Azure.ResourceManager.ConfidentialLedger --version 1.1.0-beta.2
Pro účely tohoto rychlého startu musíte také nainstalovat klientskou knihovnu Azure SDK pro identitu Azure:
dotnet add package Azure.Identity
Vytvoření skupiny zdrojů
Skupina prostředků je logický kontejner, ve kterém se nasazují a spravují prostředky Azure. Pomocí rutiny Azure PowerShell New-AzResourceGroup vytvořte skupinu prostředků myResourceGroup v umístění southcentralus.
New-AzResourceGroup -Name "myResourceGroup" -Location "SouthCentralUS"
Registrace poskytovatele prostředků
Před vytvořením prostředku musí být ve službě Azure Managed CCF zaregistrovaný v předplatném.
az feature registration create --namespace Microsoft.ConfidentialLedger --name ManagedCCF
az provider register --namespace Microsoft.ConfidentialLedger
Vytvoření členů
Vygenerujte dvojici klíčů pro člena. Po dokončení následujících příkazů se veřejný klíč člena uloží a member0_cert.pem
privátní klíč se uloží do member0_privk.pem
souboru .
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"
Vytvoření aplikace .NET
Použití klientské knihovny roviny správy
Sada Azure SDK pro .NET (azure/arm-confidentialledger) umožňuje operace se spravovanými prostředky CCF, jako je vytvoření a odstranění, výpis prostředků přidružených k předplatnému a zobrazení podrobností o konkrétním prostředku. Následující část kódu vytvoří a zobrazí vlastnosti spravovaného prostředku CCF.
Na začátek souboru Program.cs přidejte následující direktivy:
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;
Ověření a vytvoření klienta
V tomto rychlém startu se přihlášený uživatel používá k ověření ve službě Azure Managed CCF, což je upřednostňovaná metoda místního vývoje. V tomto příkladu se používá třída DefaultAzureCredential() z Knihovny identit Azure, která umožňuje použít stejný kód v různých prostředích s různými možnostmi pro poskytnutí identity.
// 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();
Vytvořte klienta Azure Resource Manageru a ověřte se pomocí přihlašovacích údajů tokenu.
// authenticate your client
ArmClient client = new ArmClient(cred);
Vytvoření spravovaného prostředku 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}");
Zobrazení vlastností spravovaného prostředku CCF
Následující část kódu načte spravovaný prostředek CCF a vytiskne jeho vlastnosti.
// 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}");
Výpis spravovaných prostředků CCF ve skupině prostředků
Následující část kódu načte spravované prostředky CCF ve skupině prostředků.
// 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");
Výpis spravovaných prostředků CCF v předplatném
Následující část kódu načte spravované prostředky CCF v předplatném.
// 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");
Vyčištění prostředků
Další články o spravovaných CCF můžou na tomto rychlém startu vycházet. Pokud chcete pokračovat v práci s dalšími rychlými starty a kurzy, možná budete chtít tyto prostředky ponechat na místě.
Jinak po dokončení práce s prostředky vytvořenými v tomto článku pomocí příkazu Az group delete v Azure CLI odstraňte skupinu prostředků a všechny její obsažené prostředky.
az group delete --resource-group myResourceGroup
Další kroky
V tomto rychlém startu jste vytvořili spravovaný prostředek CCF pomocí sady Azure Python SDK for Confidential Ledger. Další informace o službě Azure Managed CCF a o tom, jak ji integrovat s vašimi aplikacemi, najdete v těchto článcích: