Hızlı Başlangıç: .NET için Azure SDK'sını kullanarak Azure Yönetilen CCF kaynağı oluşturma
Azure Yönetilen CCF (Yönetilen CCF), gizli uygulamaları dağıtmak için yeni ve son derece güvenli bir hizmettir. Yönetilen CCF hakkında daha fazla bilgi edinmek ve örnek kullanım örnekleri için bkz . Azure Yönetilen Gizli Konsorsiyum Çerçevesi Hakkında.
Bu hızlı başlangıçta.NET istemci yönetim kitaplığını kullanarak Yönetilen CCF kaynağı oluşturmayı öğreneceksiniz.
Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
API başvuru belgeleri | Kitaplık kaynak kodu | Paketi (NuGet)
Ön koşullar
- Azure aboneliği - ücretsiz bir abonelik oluşturun.
- .NET için Azure SDK tarafından desteklenen .NET sürümleri.
- Windows veya Linux çalıştıran bir bilgisayarda OpenSSL .
Kurulum
Yeni .NET konsol uygulaması oluşturma
Komut kabuğunda aşağıdaki komutu çalıştırarak adlı
managedccf-app
bir proje oluşturun:dotnet new console --name managedccf-app
Yeni oluşturulan managedccf-app dizinine geçin ve projeyi oluşturmak için aşağıdaki komutu çalıştırın:
dotnet build
Derleme çıkışı hiçbir uyarı veya hata içermemelidir.
Build succeeded. 0 Warning(s) 0 Error(s)
paketini yükleyin
NuGet ile .NET için Azure Yönetilen CCF istemci kitaplığını yükleyin:
dotnet add package Azure.ResourceManager.ConfidentialLedger --version 1.1.0-beta.2
Bu hızlı başlangıç için Azure Identity için Azure SDK istemci kitaplığını da yüklemeniz gerekir:
dotnet add package Azure.Identity
Kaynak grubu oluşturma
Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. Southcentralus konumunda myResourceGroup adlı bir kaynak grubu oluşturmak için Azure PowerShell New-AzResourceGroup cmdlet'ini kullanın.
New-AzResourceGroup -Name "myResourceGroup" -Location "SouthCentralUS"
Kaynak sağlayıcısını kaydetme
Kaynak oluşturmadan önce Azure Yönetilen CCF kaynak türünün aboneliğe kaydedilmesi gerekir.
az feature registration create --namespace Microsoft.ConfidentialLedger --name ManagedCCF
az provider register --namespace Microsoft.ConfidentialLedger
Üye oluşturma
Üye için bir anahtar çifti oluşturun. Aşağıdaki komutlar tamamlandıktan sonra, üyenin ortak anahtarı öğesine member0_cert.pem
kaydedilir ve özel anahtar öğesine member0_privk.pem
kaydedilir.
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"
.NET uygulamasını oluşturma
Yönetim düzlemi istemci kitaplığını kullanma
.NET için Azure SDK (azure/arm-confidentialledger), Yönetilen CCF kaynakları üzerinde oluşturma ve silme, abonelikle ilişkili kaynakları listeleme ve belirli bir kaynağın ayrıntılarını görüntüleme gibi işlemlere olanak tanır. Aşağıdaki kod parçası, Yönetilen CCF kaynağının özelliklerini oluşturur ve görüntüler.
Aşağıdaki yönergeleri Program.cs dosyasının en üstüne ekleyin:
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;
Kimlik doğrulaması yapma ve istemci oluşturma
Bu hızlı başlangıçta oturum açmış kullanıcı, yerel geliştirme için tercih edilen yöntem olan Azure Yönetilen CCF'de kimlik doğrulaması yapmak için kullanılır. Bu örnekte Azure Kimlik Kitaplığı'ndan 'DefaultAzureCredential()' sınıfı kullanılmaktadır. Bu sınıf, kimlik sağlamak için farklı seçeneklerle farklı ortamlarda aynı kodun kullanılmasına olanak tanır.
// 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();
Azure Resource Manager istemcisi oluşturma ve belirteç kimlik bilgilerini kullanarak kimlik doğrulaması yapma.
// authenticate your client
ArmClient client = new ArmClient(cred);
Yönetilen CCF kaynağı oluşturma
// 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}");
Yönetilen CCF kaynağının özelliklerini görüntüleme
Aşağıdaki kod parçası Yönetilen CCF kaynağını alır ve özelliklerini yazdırır.
// 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}");
Bir Kaynak Grubundaki Yönetilen CCF kaynaklarını listeleme
Aşağıdaki kod parçası, bir kaynak grubundaki Yönetilen CCF kaynaklarını alır.
// 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");
Abonelikteki Yönetilen CCF kaynaklarını listeleme
Aşağıdaki kod parçası bir abonelikteki Yönetilen CCF kaynaklarını alır.
// 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");
Kaynakları temizleme
Diğer Yönetilen CCF makaleleri bu hızlı başlangıcı temel alabilir. Sonraki hızlı başlangıçlar ve öğreticilerle çalışmaya devam etmek istiyorsanız, bu kaynakları yerinde bırakmak isteyebilirsiniz.
Aksi takdirde, bu makalede oluşturulan kaynakları tamamladığınızda, kaynak grubunu ve içerdiği tüm kaynakları silmek için Azure CLI az group delete komutunu kullanın.
az group delete --resource-group myResourceGroup
Sonraki adımlar
Bu hızlı başlangıçta, Gizli Kayıt Defteri için Azure Python SDK'sını kullanarak bir Yönetilen CCF kaynağı oluşturdunuz. Azure Yönetilen CCF ve uygulamalarınızla tümleştirme hakkında daha fazla bilgi edinmek için şu makalelere geçin: