Mulai cepat: Membuat sumber daya Azure Managed CCF menggunakan Azure SDK untuk JavaScript dan TypeScript
Microsoft Azure Managed CCF (Managed CCF) adalah layanan baru dan sangat aman untuk menyebarkan aplikasi rahasia. Untuk informasi selengkapnya tentang Azure Managed CCF, lihat Tentang Azure Managed Confidential Consortium Framework.
Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.
Dokumentasi referensi API | Kode sumber pustaka | Paket (npm)
Prasyarat
- Langganan Azure - membuat secara gratis.
- Versi Node.js didukung oleh Azure SDK untuk JavaScript.
- OpenSSL di komputer yang menjalankan Windows atau Linux.
Penyiapan
Mulai cepat ini menggunakan pustaka Azure Identity dengan Azure CLI atau Azure PowerShell untuk mengautentikasi pengguna ke Azure Services. Pengembang juga dapat menggunakan Visual Studio atau Visual Studio Code untuk mengautentikasi panggilan. Untuk informasi selengkapnya, lihat Mengautentikasi klien dengan pustaka klien Azure Identity.
Masuk ke Azure
Masuk ke Azure menggunakan perintah login az Azure CLI atau cmdlet Connect-AzAccount Azure PowerShell.
az login
Jika CLI atau PowerShell dapat membuka browser default Anda, CLI atau PowerShell akan membuka browser dan memuat halaman masuk Azure. Jika tidak, buka https://aka.ms/devicelogin dan masukkan kode otorisasi yang ditampilkan di terminal Anda.
Jika diminta, masuk menggunakan info masuk akun Anda di browser.
Menginisialisasi proyek npm baru
Di terminal atau prompt perintah, buat folder proyek yang sesuai dan inisialisasi npm
proyek. Anda dapat melewati langkah ini jika Anda memiliki proyek simpul yang ada.
cd <work folder>
npm init -y
Menginstal paket
Instal pustaka klien identitas Azure Active Directory.
npm install --save @azure/identity
Instal pustaka klien sarana manajemen Azure Confidential Ledger.
npm install -save @azure/arm-confidentialledger@1.3.0-beta.1
Menginstal pengkompilasi dan alat TypeScript secara global
npm install -g typescript
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 JavaScript
Menggunakan pustaka klien bidang manajemen
Azure SDK untuk JavaScript dan pustaka TypeScript azure/arm-confidentialledger memungkinkan operasi pada sumber daya CCF Terkelola, seperti pembuatan dan penghapusan, mencantumkan sumber daya yang terkait dengan langganan, dan melihat detail sumber daya tertentu.
Untuk menjalankan sampel di bawah ini, simpan cuplikan kode ke dalam file dengan .ts
ekstensi ke folder proyek Anda dan kompilasi sebagai bagian dari proyek TypeScript Anda, atau kompilasi skrip ke JavaScript secara terpisah dengan menjalankan:
tsc <filename.ts>
File JavaScript yang dikompilasi akan memiliki nama yang sama tetapi *.js
ekstensi. Kemudian jalankan skrip di nodeJS:
node <filename.js>
Contoh kode TypeScript berikut membuat dan melihat properti sumber daya CCF Terkelola.
import { ConfidentialLedgerClient, ManagedCCFProperties, ManagedCCF, KnownLanguageRuntime, DeploymentType, MemberIdentityCertificate } from "@azure/arm-confidentialledger";
import { DefaultAzureCredential } from "@azure/identity";
// Please replace these variables with appropriate values for your project
const subscriptionId = "0000000-0000-0000-0000-000000000001";
const rgName = "myResourceGroup";
const ledgerId = "testApp";
const memberCert0 = "-----BEGIN CERTIFICATE-----\nMIIBvjCCAUSgAwIBAg...0d71ZtULNWo\n-----END CERTIFICATE-----";
const memberCert1 = "-----BEGIN CERTIFICATE-----\nMIIBwDCCAUagAwIBAgI...2FSyKIC+vY=\n-----END CERTIFICATE-----";
async function main() {
console.log("Creating a new instance.")
const client = new ConfidentialLedgerClient(new DefaultAzureCredential(), subscriptionId);
const properties = <ManagedCCFProperties> {
deploymentType: <DeploymentType> {
appSourceUri: "",
languageRuntime: KnownLanguageRuntime.JS
},
memberIdentityCertificates: [
<MemberIdentityCertificate>{
certificate: memberCert0,
encryptionkey: "",
tags: {
"owner":"member0"
}
},
<MemberIdentityCertificate>{
certificate: memberCert1,
encryptionkey: "",
tags: {
"owner":"member1"
}
},
],
nodeCount: 3,
};
const mccf = <ManagedCCF> {
location: "SouthCentralUS",
properties: properties,
}
const createResponse = await client.managedCCFOperations.beginCreateAndWait(rgName, ledgerId, mccf);
console.log("Created. Instance id: " + createResponse.id);
// Get details of the instance
console.log("Getting instance details.");
const getResponse = await client.managedCCFOperations.get(rgName, ledgerId);
console.log(getResponse.properties?.identityServiceUri);
console.log(getResponse.properties?.nodeCount);
// List mccf instances in the RG
console.log("Listing the instances in the resource group.");
const instancePages = await client.managedCCFOperations.listByResourceGroup(rgName).byPage();
for await(const page of instancePages){
for(const instance of page)
{
console.log(instance.name + "\t" + instance.location + "\t" + instance.properties?.nodeCount);
}
}
console.log("Delete the instance.");
await client.managedCCFOperations.beginDeleteAndWait(rgName, ledgerId);
console.log("Deleted.");
}
(async () => {
try {
await main();
} catch(err) {
console.error(err);
}
})();
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.
import { ConfidentialLedgerClient, ManagedCCFProperties, ManagedCCF, KnownLanguageRuntime, DeploymentType, MemberIdentityCertificate } from "@azure/arm-confidentialledger";
import { DefaultAzureCredential } from "@azure/identity";
const subscriptionId = "0000000-0000-0000-0000-000000000001"; // replace
const rgName = "myResourceGroup";
const ledgerId = "confidentialbillingapp";
async function deleteManagedCcfResource() {
const client = new ConfidentialLedgerClient(new DefaultAzureCredential(), subscriptionId);
console.log("Delete the instance.");
await client.managedCCFOperations.beginDeleteAndWait(rgName, ledgerId);
console.log("Deleted.");
}
(async () => {
try {
await deleteManagedCcfResource();
} catch(err) {
console.error(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 myResourceGroup
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: