Mulai Cepat: Membuat sumber daya Azure Managed CCF menggunakan Azure SDK for Go
Azure Managed CCF (Managed CCF) adalah layanan baru dan sangat aman untuk menyebarkan aplikasi rahasia. Untuk informasi selengkapnya tentang CCF Terkelola, lihat Tentang Azure Managed Confidential Consortium Framework.
Dalam mulai cepat ini, Anda mempelajari cara membuat sumber daya CCF Terkelola menggunakan pustaka Azure SDK for Go.
Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.
Dokumentasi | referensi API Paket kode | sumber pustaka (Go)
Prasyarat
- Langganan Azure - membuat secara gratis.
- Go 1.18 atau lebih tinggi.
- OpenSSL di komputer yang menjalankan Windows atau Linux.
Penyiapan
Membuat aplikasi Go baru
- Di shell perintah, jalankan perintah berikut untuk membuat folder bernama
managedccf-app
:
mkdir managedccf-app && cd managedccf-app
go mod init github.com/azure/resourcemanager/confidentialledger
Memasang modul
- Instal modul Azure Confidential Ledger.
go get -u github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/confidentialledger/armconfidentialledger@v1.2.0-beta.1
Untuk mulai cepat ini, Anda juga perlu menginstal modul Azure Identity untuk Go.
go get -u github.com/Azure/azure-sdk-for-go/sdk/azidentity
Buat grup sumber daya
Grup sumber daya adalah kontainer logis yang disebarkan dan dikelola oleh sumber daya Azure. Gunakan cmdlet Azure PowerShell New-AzResourceGroup untuk membuat grup sumber daya bernama myResourceGroup di lokasi southcentralus.
New-AzResourceGroup -Name "myResourceGroup" -Location "SouthCentralUS"
Mendaftarkan penyedia sumber
Jenis sumber daya Azure Managed CCF harus didaftarkan dalam langganan sebelum membuat sumber daya.
az feature registration create --namespace Microsoft.ConfidentialLedger --name ManagedCCF
az provider register --namespace Microsoft.ConfidentialLedger
Membuat anggota
Buat pasangan kunci untuk anggota. Setelah perintah berikut selesai, kunci umum anggota disimpan dan member0_cert.pem
kunci privat disimpan di 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"
Membuat aplikasi Go
Pustaka sarana manajemen memungkinkan operasi pada sumber daya CCF Terkelola, seperti pembuatan dan penghapusan, mencantumkan sumber daya yang terkait dengan langganan, dan melihat detail sumber daya tertentu. Bagian kode berikut membuat dan melihat properti sumber daya CCF Terkelola.
Tambahkan arahan berikut ke bagian atas main.go:
package main
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/confidentialledger/armconfidentialledger"
)
Mengautentikasi dan membuat pabrik klien
Dalam mulai cepat ini, pengguna yang masuk digunakan untuk mengautentikasi ke Azure Managed CCF, yang merupakan metode pilihan untuk pengembangan lokal. Contoh ini menggunakan kelas 'NewDefaultAzureCredential()' dari modul Azure Identity, yang memungkinkan untuk menggunakan kode yang sama di berbagai lingkungan dengan opsi yang berbeda untuk memberikan identitas.
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("Failed to obtain a credential: %v", err)
}
Buat pabrik klien Azure Resource Manager dan autentikasi menggunakan kredensial token.
ctx := context.Background()
clientFactory, err := armconfidentialledger.NewClientFactory("0000000-0000-0000-0000-000000000001", cred, nil)
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
Membuat sumber daya CCF Terkelola
appName := "confidentialbillingapp"
rgName := "myResourceGroup"
// Create a new resource
poller, err := clientFactory.NewManagedCCFClient().BeginCreate(ctx, rgName, appName, armconfidentialledger.ManagedCCF{
Location: to.Ptr("SouthCentralUS"),
Tags: map[string]*string{
"Department": to.Ptr("Contoso IT"),
},
Properties: &armconfidentialledger.ManagedCCFProperties{
DeploymentType: &armconfidentialledger.DeploymentType{
AppSourceURI: to.Ptr(""),
LanguageRuntime: to.Ptr(armconfidentialledger.LanguageRuntimeJS),
},
MemberIdentityCertificates: []*armconfidentialledger.MemberIdentityCertificate{
{
Certificate: to.Ptr("-----BEGIN CERTIFICATE-----\nMIIU4G0d7....1ZtULNWo\n-----END CERTIFICATE-----"),
Encryptionkey: to.Ptr(""),
Tags: map[string]any{
"owner": "IT Admin1",
},
}},
NodeCount: to.Ptr[int32](3),
},
}, nil)
if err != nil {
log.Fatalf("Failed to finish the request: %v", err)
}
_, err = poller.PollUntilDone(ctx, nil)
if err != nil {
log.Fatalf("Failed to pull the result: %v", err)
}
Mendapatkan properti sumber daya CCF Terkelola
Bagian kode berikut mengambil sumber daya CCF Terkelola yang dibuat pada langkah sebelumnya.
log.Println("Getting the Managed CCF resource.")
// Get the resource details and print it
getResponse, err := clientFactory.NewManagedCCFClient().Get(ctx, rgName, appName, nil)
if err != nil {
log.Fatalf("Failed to get details of mccf instance: %v", err)
}
// Print few properties of the Managed CCF resource
log.Println("Application name:", *getResponse.ManagedCCF.Properties.AppName)
log.Println("Node Count:", *getResponse.ManagedCCF.Properties.NodeCount)
Mencantumkan sumber daya CCF Terkelola dalam Grup Sumber Daya
Bagian kode berikut mengambil sumber daya CCF Terkelola dalam grup sumber daya.
pager := clientFactory.NewManagedCCFClient().NewListByResourceGroupPager(rgName, nil)
for pager.More() {
page, err := pager.NextPage(ctx)
if err != nil {
log.Fatalf("Failed to advance page: %v", err)
}
for _, v := range page.Value {
log.Println("Application Name:", *v.Name)
}
}
Menghapus sumber daya CCF Terkelola
Bagian kode berikut menghapus sumber daya CCF Terkelola. Artikel CCF Terkelola lainnya dapat dibuat berdasarkan mulai cepat ini. Jika Anda berencana untuk terus bekerja dengan mulai cepat dan tutorial berikutnya, Anda mungkin ingin meninggalkan sumber daya ini di tempat.
deletePoller, err := clientFactory.NewManagedCCFClient().BeginDelete(ctx, rgName, appName, nil)
if err != nil {
log.Fatalf("Failed to finish the delete request: %v", err)
}
_, err = deletePoller.PollUntilDone(ctx, nil)
if err != nil {
log.Fatalf("Failed to get the delete result: %v", err)
}
Membersihkan sumber daya
Artikel CCF Terkelola lainnya dapat dibuat berdasarkan mulai cepat ini. Jika Anda berencana untuk terus bekerja dengan mulai cepat dan tutorial berikutnya, Anda mungkin ingin meninggalkan sumber daya ini di tempat.
Jika tidak, setelah Anda selesai dengan sumber daya yang dibuat dalam artikel ini, gunakan perintah az group delete Azure CLI untuk menghapus grup sumber daya dan semua sumber daya yang terkandung.
az group delete --resource-group contoso-rg
Langkah berikutnya
Dalam mulai cepat ini, Anda membuat sumber daya CCF Terkelola dengan menggunakan Azure Python SDK untuk Confidential Ledger. Untuk mempelajari selengkapnya tentang Azure Managed CCF dan cara mengintegrasikannya dengan aplikasi Anda, lanjutkan ke artikel berikut: