Quickstart: Een Azure Managed CCF-resource maken met behulp van de Azure SDK voor JavaScript en TypeScript
Microsoft Azure Managed CCF (Managed CCF) is een nieuwe en zeer veilige service voor het implementeren van vertrouwelijke toepassingen. Zie Over Azure Managed Confidential Consortium Framework voor meer informatie over Azure Managed CCF.
Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
API-referentiedocumentatie | Bibliotheekbroncode | Package (npm)
Vereisten
- Een Azure-abonnement (u kunt een gratis abonnement maken).
- Node.js-versies die worden ondersteund door de Azure SDK voor JavaScript.
- OpenSSL op een computer met Windows of Linux.
Instellingen
In deze quickstart wordt gebruikgemaakt van de Azure Identity-bibliotheek, samen met Azure CLI of Azure PowerShell, om de gebruiker te verifiëren bij Azure Services. Ontwikkelaars kunnen ook Visual Studio of Visual Studio Code gebruiken om hun aanroepen te verifiëren. Zie De client verifiëren met de Azure Identity-clientbibliotheek voor meer informatie.
Aanmelden bij Azure
Meld u aan bij Azure met behulp van de Azure CLI az login command of de Azure PowerShell Verbinding maken-AzAccount cmdlet.
az login
Als de CLI of PowerShell uw standaardbrowser kan openen, gebeurt dit en laadt u een Azure-aanmeldingspagina. Anders gaat u naar https://aka.ms/devicelogin en voert u de autorisatiecode in die wordt weergegeven in uw terminal.
Meld u aan met uw accountreferenties in de browser als u hierom wordt gevraagd.
Een nieuw NPM-project initialiseren
Maak in een terminal of opdrachtprompt een geschikte projectmap en initialiseer een npm
project. U kunt deze stap overslaan als u een bestaand knooppuntproject hebt.
cd <work folder>
npm init -y
De pakketten installeren
Installeer de Azure Active Directory-identiteitsclientbibliotheek.
npm install --save @azure/identity
Installeer de clientbibliotheek van het Azure Confidential Ledger-beheervlak.
npm install -save @azure/arm-confidentialledger@1.3.0-beta.1
De TypeScript-compiler en -hulpprogramma's globaal installeren
npm install -g typescript
Een brongroep maken
Een resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd. Gebruik de Azure PowerShell New-AzResourceGroup-cmdlet om een resourcegroep met de naam myResourceGroup te maken op de locatie southcentralus .
New-AzResourceGroup -Name "myResourceGroup" -Location "SouthCentralUS"
De resourceprovider registreren
Het azure managed CCF-resourcetype moet worden geregistreerd in het abonnement voordat u een resource maakt.
az feature registration create --namespace Microsoft.ConfidentialLedger --name ManagedCCF
az provider register --namespace Microsoft.ConfidentialLedger
Leden maken
Genereer een sleutelpaar voor het lid. Nadat de volgende opdrachten zijn voltooid, wordt de openbare sleutel van het lid opgeslagen en member0_cert.pem
wordt de persoonlijke sleutel opgeslagen in 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"
De JavaScript-toepassing maken
De clientbibliotheek voor het beheervlak gebruiken
Met de Azure SDK voor JavaScript- en TypeScript-bibliotheek azure/arm-confidentialledger kunt u bewerkingen uitvoeren op beheerde CCF-resources, zoals het maken en verwijderen, het weergeven van de resources die zijn gekoppeld aan een abonnement en de details van een specifieke resource bekijken.
Als u de onderstaande voorbeelden wilt uitvoeren, slaat u de codefragmenten op in een bestand met een .ts
extensie in uw projectmap en compileert u het als onderdeel van uw TypeScript-project of compileert u het script afzonderlijk in JavaScript door het volgende uit te voeren:
tsc <filename.ts>
Het gecompileerde JavaScript-bestand heeft dezelfde naam, maar een *.js
extensie. Voer vervolgens het script uit in nodeJS:
node <filename.js>
Met de volgende TypeScript-voorbeeldcode worden de eigenschappen van een beheerde CCF-resource gemaakt en weergegeven.
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);
}
})();
De beheerde CCF-resource verwijderen
Met het volgende codefragment wordt de beheerde CCF-resource verwijderd. Andere beheerde CCF-artikelen kunnen voortbouwen op deze quickstart. Als u van plan bent om door te gaan met de volgende quickstarts en zelfstudies, wilt u deze resources mogelijk behouden.
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);
}
})();
Resources opschonen
Andere beheerde CCF-artikelen kunnen voortbouwen op deze quickstart. Als u van plan bent om door te gaan met de volgende quickstarts en zelfstudies, wilt u deze resources mogelijk behouden.
Als u klaar bent met de resources die in dit artikel zijn gemaakt, gebruikt u de opdracht Azure CLI az group delete om de resourcegroep en alle bijbehorende resources te verwijderen.
az group delete --resource-group myResourceGroup
Volgende stappen
In deze quickstart hebt u een beheerde CCF-resource gemaakt met behulp van de Azure Python SDK voor Confidential Ledger. Voor meer informatie over Azure Managed CCF en hoe u deze integreert met uw toepassingen, gaat u verder met deze artikelen: