Démarrage rapide : Créer une ressource CCF managée Azure à l'aide du SDK Azure pour JavaScript et TypeScript
Microsoft Azure Managed CCF (Managed CCF) est un nouveau service hautement sécurisé pour le déploiement d'applications confidentielles. Pour plus d’informations sur Azure Managed CCF, consultez À propos d’Azure Managed Confidential Consortium Framework.
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
Documentation de référence sur les API | Code source de la bibliothèque | Package (npm)
Prérequis
- Un abonnement Azure - En créer un gratuitement
- Versions Node.js prises en charge par le SDK Azure pour JavaScript.
- OpenSSL sur un ordinateur exécutant Windows ou Linux.
Paramétrage
Ce guide de démarrage rapide utilise la bibliothèque Azure Identity ainsi qu’Azure CLI ou PowerShell pour authentifier l’utilisateur auprès des services Azure. Les développeurs peuvent également utiliser Visual Studio ou Visual Studio Code pour authentifier leurs appels. Pour plus d’informations, consultez Authentifier le client avec la bibliothèque cliente Azure Identity.
Connexion à Azure
Connectez-vous à Azure à l’aide de la commande Azure CLI az login ou de la cmdlet Azure PowerShell Connect-AzAccount.
az login
Si Azure CLI ou PowerShell peut ouvrir votre navigateur par défaut, il le fait et charge une page de connexion Azure. Sinon, visitez https://aka.ms/devicelogin et entrez le code d’autorisation affiché dans votre terminal.
Si on vous le demande, connectez-vous ensuite avec les informations d’identification de votre compte dans le navigateur.
Initialiser un nouveau projet npm
Dans un terminal ou une invite de commandes, créez un dossier de projet approprié et initialisez un npm
projet. Vous pouvez ignorer cette étape si vous avez un projet de nœud existant.
cd <work folder>
npm init -y
Installer les packages
Installez la bibliothèque cliente d'identité Azure Active Directory.
npm install --save @azure/identity
Installez la bibliothèque cliente du plan de gestion Azure Confidential Ledger.
npm install -save @azure/arm-confidentialledger@1.3.0-beta.1
Installer globalement le compilateur et les outils TypeScript
npm install -g typescript
Créer un groupe de ressources
Un groupe de ressources est un conteneur logique dans lequel les ressources Azure sont déployées et gérées. Utilisez l’applet de commande Azure PowerShell New-AzResourceGroup pour créer un groupe de ressources nommé myResourceGroup à l’emplacement southcentralus.
New-AzResourceGroup -Name "myResourceGroup" -Location "SouthCentralUS"
Inscrire le fournisseur de ressources
Le type de ressource Azure Managed CCF doit être enregistré dans l’abonnement avant de créer une ressource.
az feature registration create --namespace Microsoft.ConfidentialLedger --name ManagedCCF
az provider register --namespace Microsoft.ConfidentialLedger
Créer des membres
Générez une paire de clés pour le membre. Une fois la commande suivante terminée, la clé publique du membre est enregistrée dans member0_cert.pem
et la clé privée est enregistrée dans 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"
Créer l'application JavaScript
Utiliser la bibliothèque client du plan de gestion
Le Kit de développement logiciel (SDK) Azure pour JavaScript et la bibliothèque TypeScript azure/arm-confidentialledger autorise les opérations sur les ressources CCF gérées, telles que la création et la suppression, la liste des ressources associées à un abonnement et l’affichage des détails d’une ressource spécifique.
Pour exécuter les exemples ci-dessous, enregistrez les extraits de code dans un fichier avec une .ts
extension dans votre dossier de projet et compilez-le dans le cadre de votre projet TypeScript, ou compilez le script en JavaScript séparément en exécutant :
tsc <filename.ts>
Le fichier JavaScript compilé aura le même nom, mais une *.js
extension. Exécutez ensuite le script dans nodeJS :
node <filename.js>
L’exemple de code TypeScript suivant crée et affiche les propriétés d’une ressource CCF managée.
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);
}
})();
Supprimer la ressource Managed CCF
L’extrait de code suivant supprime la ressource Managed CCF. D’autres articles consacrés à Managed CCF peuvent s’appuyer sur ce guide de démarrage rapide. Si vous prévoyez d’utiliser d’autres guides de démarrage rapide et tutoriels, vous pouvez conserver ces ressources.
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);
}
})();
Nettoyer les ressources
D’autres articles sur Managed CCF peuvent s’appuyer sur ce démarrage rapide. Si vous envisagez de continuer à travailler avec les démarrages rapides et les didacticiels ultérieurs, vous souhaiterez peut-être laisser ces ressources en place.
Sinon, lorsque vous avez terminé avec les ressources créées dans cet article, utilisez la commande Azure CLI az group delete pour supprimer le groupe de ressources et toutes les ressources qu’il contient.
az group delete --resource-group myResourceGroup
Étapes suivantes
Dans ce démarrage rapide, vous avez créé une ressource CCF gérée à l’aide du SDK Azure Python pour Confidential Ledger. Pour en savoir plus sur Azure Managed CCF et comment l’intégrer à vos applications, continuez à consulter ces articles :