Rövid útmutató: Felügyelt Azure CCF-erőforrás létrehozása az Azure SDK for .NET használatával
Az Azure Managed CCF (Managed CCF) egy új és rendkívül biztonságos szolgáltatás a bizalmas alkalmazások üzembe helyezéséhez. A felügyelt CCF-ről és például a használati esetekről további információt az Azure Managed Confidential Consortium Frameworkről szóló cikkben talál.
Ebben a rövid útmutatóban megtudhatja, hogyan hozhat létre felügyelt CCF-erőforrást a .NET ügyfélkezelési kódtár használatával.
If you don't have an Azure subscription, create an Azure free account before you begin.
API-referenciadokumentáció Kódtár forráskódcsomagja | (NuGet) |
Előfeltételek
- Azure-előfizetés – hozzon létre egyet ingyenesen.
- A .NET-hez készült Azure SDK által támogatott .NET-verziók.
- OpenSSL windowsos vagy Linux rendszerű számítógépen.
Beállítás
Új .NET-konzolalkalmazás létrehozása
A parancshéjban futtassa a következő parancsot egy projekt
managedccf-app
létrehozásához:dotnet new console --name managedccf-app
Váltson az újonnan létrehozott managedccf-app könyvtárra, és futtassa a következő parancsot a projekt létrehozásához:
dotnet build
A buildkimenet nem tartalmazhat figyelmeztetést vagy hibát.
Build succeeded. 0 Warning(s) 0 Error(s)
Telepítse a(z) csomagot
Telepítse az Azure Managed CCF ügyfélkódtárat a .NET-hez a NuGettel:
dotnet add package Azure.ResourceManager.ConfidentialLedger --version 1.1.0-beta.2
Ehhez a rövid útmutatóhoz telepítenie kell az Azure Identityhez készült Azure SDK-ügyfélkódtárat is:
dotnet add package Azure.Identity
Erőforráscsoport létrehozása
Az erőforráscsoport olyan logikai tároló, amelybe a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat. Az Azure PowerShell New-AzResourceGroup parancsmaggal hozzon létre egy myResourceGroup nevű erőforráscsoportot a southcentralus helyén.
New-AzResourceGroup -Name "myResourceGroup" -Location "SouthCentralUS"
Az erőforrás-szolgáltató regisztrálása
Az azure-beli felügyelt CCF-erőforrástípust regisztrálni kell az előfizetésben, mielőtt létrehoz egy erőforrást.
az feature registration create --namespace Microsoft.ConfidentialLedger --name ManagedCCF
az provider register --namespace Microsoft.ConfidentialLedger
Tagok létrehozása
Hozzon létre egy kulcspárt a tag számára. A következő parancsok végrehajtása után a rendszer menti member0_cert.pem
a tag nyilvános kulcsát, és a titkos kulcsot a program a következőbe member0_privk.pem
menti:
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"
A .NET-alkalmazás létrehozása
A Felügyeleti sík ügyfélkódtárának használata
Az Azure SDK for .NET (azure/arm-confidentialledger) lehetővé teszi a felügyelt CCF-erőforrásokon végzett műveleteket, például a létrehozást és a törlést, az előfizetéshez társított erőforrások felsorolását és egy adott erőforrás részleteinek megtekintését. Az alábbi kódrészlet egy felügyelt CCF-erőforrás tulajdonságait hozza létre és tekinti meg.
Adja hozzá a következő irányelveket a Program.cs elejéhez:
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;
Ügyfél hitelesítése és létrehozása
Ebben a rövid útmutatóban a bejelentkezett felhasználóval hitelesíthető az Azure Managed CCF, amely a helyi fejlesztés előnyben részesített módszere. Ez a példa az Azure Identity Library DefaultAzureCredential()) osztályát használja, amely lehetővé teszi, hogy ugyanazt a kódot különböző környezetekben használja, és különböző lehetőségeket biztosítson az identitás biztosításához.
// 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();
Hozzon létre egy Azure Resource Manager-ügyfelet, és hitelesítse magát a jogkivonat hitelesítő adataival.
// authenticate your client
ArmClient client = new ArmClient(cred);
Felügyelt CCF-erőforrás létrehozása
// 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}");
Felügyelt CCF-erőforrás tulajdonságainak megtekintése
Az alábbi kódrészlet lekéri a felügyelt CCF-erőforrást, és kinyomtatja annak tulajdonságait.
// 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}");
Felügyelt CCF-erőforrások listázása erőforráscsoportban
Az alábbi kódrészlet lekéri a felügyelt CCF-erőforrásokat egy erőforráscsoportban.
// 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");
Az előfizetés felügyelt CCF-erőforrásainak listázása
Az alábbi kódrészlet lekéri a felügyelt CCF-erőforrásokat egy előfizetésben.
// 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");
Clean up resources
Más felügyelt CCF-cikkek erre a rövid útmutatóra építhetnek. Ha további rövid útmutatókkal és oktatóanyagokkal szeretné folytatni a munkát, érdemes lehet ezeket az erőforrásokat a helyén hagyni.
Ellenkező esetben, ha végzett a cikkben létrehozott erőforrásokkal, az Azure CLI az group delete paranccsal törölje az erőforráscsoportot és annak összes benne foglalt erőforrását.
az group delete --resource-group myResourceGroup
Következő lépések
Ebben a rövid útmutatóban létrehozott egy felügyelt CCF-erőforrást az Azure Python SDK for Confidential Ledger használatával. Ha többet szeretne megtudni az Azure Managed CCF-ről és arról, hogyan integrálható az alkalmazásokkal, folytassa az alábbi cikkekkel: